26.01.2014 Views

Notes on Dantzig-Wolfe decomposition and column generation

Notes on Dantzig-Wolfe decomposition and column generation

Notes on Dantzig-Wolfe decomposition and column generation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<str<strong>on</strong>g>Notes</str<strong>on</strong>g> <strong>on</strong> <strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong> <strong>and</strong><br />

<strong>column</strong> generati<strong>on</strong><br />

Mette Gamst<br />

November 11, 2010<br />

1 Introducti<strong>on</strong><br />

This note introduces an exact soluti<strong>on</strong> method for mathematical programming<br />

problems. The method is based <strong>on</strong> <strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong> <strong>and</strong><br />

delayed <strong>column</strong> generati<strong>on</strong>. The note c<strong>on</strong>cerns mathematical programming<br />

where a problem is represented by an objective functi<strong>on</strong> <strong>and</strong> a set of c<strong>on</strong>straints,<br />

e.g.:<br />

min<br />

cX<br />

s. t. AX ≥ b<br />

X ∈ S<br />

Here X is a vector of variables, all lying in the set S. The cost vector is<br />

denoted c. A is a matrix, b a vector, <strong>and</strong> together they form the c<strong>on</strong>straints<br />

<strong>on</strong> the variables. When S is the set of real numbers, the mathematical model<br />

is said to be a linear program (LP). If S is a binary set or the set of integers,<br />

the problem is an integer program (IP). If some variables in X bel<strong>on</strong>g to the<br />

set of real numbers <strong>and</strong> others to the set of binaries or integers, the model<br />

is said to be a mixed integer program (MIP).<br />

Let X ∈ R : x ≥ 0, x ∈ X in the above formulati<strong>on</strong> <strong>and</strong> denote this<br />

the primal problem. The dual model is found by transposing the primal<br />

problem:<br />

max<br />

b T Y<br />

s. t. A T Y ≤ c T<br />

Y ≥ 0<br />

where b T is the transpose of b, A T is the transpose of A, <strong>and</strong> c T is the<br />

transpose of c. The dual variables are denoted Y . The optimal soluti<strong>on</strong><br />

value for the dual problem equals the optimal soluti<strong>on</strong> value for the primal<br />

problem.<br />

1


<strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong> transforms the original mathematical problem<br />

into a master problem, where the number of <strong>column</strong>s may be large but<br />

the number of rows is reduced. To make the new model more tractable,<br />

<strong>column</strong>s are generated iteratively in the hopes of <strong>on</strong>ly having to include a<br />

subset of the <strong>column</strong>s in the model. This is denoted delayed <strong>column</strong> generati<strong>on</strong><br />

<strong>and</strong> c<strong>on</strong>sists of solving a pricing problem in each iterati<strong>on</strong>.<br />

This note introduces <strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong> <strong>and</strong> delayed <strong>column</strong>s<br />

generati<strong>on</strong> <strong>and</strong> is not meant to be an in-depth survey but more a guide<br />

for underst<strong>and</strong>ing the basics of the approaches. For details <strong>on</strong> the methods<br />

<strong>and</strong> examples of applicati<strong>on</strong>s, see e.g. Desaulniers et al. [3], Lübbecke <strong>and</strong><br />

Desrosiers [4], <strong>and</strong> Nemhauser <strong>and</strong> Wolsey [5].<br />

2 <strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong><br />

<strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong> was introduced by <strong>Dantzig</strong> <strong>and</strong> <strong>Wolfe</strong> [2] <strong>and</strong><br />

c<strong>on</strong>sists of reformulating a problem into a master problem <strong>and</strong> a pricing<br />

problem for improving the tractability of large-scale problems. The master<br />

problem typically has fewer c<strong>on</strong>straints than the original problem, but<br />

the number of <strong>column</strong>s may be very large. The pricing problem generates<br />

<strong>column</strong>s, which have the potential to improve the current soluti<strong>on</strong>.<br />

In order to <strong>Dantzig</strong>-<strong>Wolfe</strong> decompose a problem, the c<strong>on</strong>straint matrix<br />

should take <strong>on</strong> a certain structure <strong>and</strong> c<strong>on</strong>sist of a number of independent<br />

c<strong>on</strong>straints <strong>and</strong> a number of c<strong>on</strong>necting c<strong>on</strong>straints. The c<strong>on</strong>straint matrix<br />

is block-angular, i.e., the matrix can be divided into blocks with n<strong>on</strong>-zero coecients.<br />

These blocks c<strong>on</strong>stitute the independent c<strong>on</strong>straints. C<strong>on</strong>necting<br />

c<strong>on</strong>straints bind the <strong>column</strong>s together. C<strong>on</strong>sider the problem:<br />

∑<br />

min c k x k (1)<br />

s. t.<br />

k∈K<br />

∑<br />

A k x k ≤ b (2)<br />

k∈K<br />

D k x k ≤ d k ∀k ∈ K (3)<br />

x k ∈ Z nk<br />

+ ∀k ∈ K (4)<br />

where K is the set of blocks <strong>and</strong> A k <strong>and</strong> D k c<strong>on</strong>stitute the c<strong>on</strong>straint matrices.<br />

C<strong>on</strong>straints A k are the c<strong>on</strong>necting block, <strong>and</strong> D k the independent<br />

block.<br />

Figure 1 illustrates this matrix c<strong>on</strong>sisting of c<strong>on</strong>necting <strong>and</strong> independent<br />

c<strong>on</strong>straints as blocks A k <strong>and</strong> D k , respectively. Now, we dene the domains<br />

2


A 1 A 2 . . . A n<br />

D 1 D 2 . . .<br />

D n<br />

Figure 1: The desired matrix structure for <strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong>.<br />

The blocks A 1 , A 2 , . . . , A n are c<strong>on</strong>necting c<strong>on</strong>straints <strong>and</strong> the blocks<br />

D 1 , D 2 , . . . , D n are independent c<strong>on</strong>straints.<br />

X k as X k = {x k ∈ Z nk<br />

+ , D k x k ≤ d k } <strong>and</strong> we can rewrite our problem into:<br />

∑<br />

min c k x k (5)<br />

s. t.<br />

k∈K<br />

∑<br />

A k x k ≤ b (6)<br />

k∈K<br />

x k ∈ X k ∀k ∈ K (7)<br />

Note that this problem <strong>on</strong>ly c<strong>on</strong>tains the c<strong>on</strong>necting c<strong>on</strong>straints. The variables<br />

x k must satisfy the independent c<strong>on</strong>straints, which thus are left out.<br />

The model holds fewer c<strong>on</strong>straints than the original formulati<strong>on</strong>, but the<br />

number of <strong>column</strong>s may be very large. How to deal with the large number<br />

of variables is discussed in the next secti<strong>on</strong>.<br />

Example: C<strong>on</strong>sider the Minimum Cost Multi-Commodity unsplittable<br />

Flow Problem (MCMCuFP), which c<strong>on</strong>sists of sending a number of<br />

commodities through a capacitated network such that the total routing<br />

cost is minimized <strong>and</strong> such that each commodity uses exactly <strong>on</strong>e path.<br />

The network is represented as a graph with nodes <strong>and</strong> edges G =<br />

(V, E). Commodities are represented by the set L <strong>and</strong> each commodity<br />

l ∈ L c<strong>on</strong>sists of a source node, a target node, <strong>and</strong> a quantity q l to<br />

route. Let c ij ≥ 0 be the cost of routing <strong>on</strong>e unit of ow <strong>on</strong> edge<br />

(ij) ∈ E <strong>and</strong> let d ij be the capacity of edge (ij) ∈ E. Finally, let<br />

∈ {0, 1} be a binary variable indicating whether or not commodity<br />

x l ij<br />

3


l ∈ L visits edge (ij) ∈ E. Now MCMCuFP can be formulated as:<br />

∑ ∑<br />

min<br />

c ij q l x l ij (8)<br />

s. t.<br />

∑<br />

(ij)∈E<br />

l∈L (ij)∈E<br />

∑<br />

q l x l ij ≤ d ij ∀(ij) ∈ E (9)<br />

l∈L<br />

x l ij − ∑<br />

x l ij<br />

(ji)∈E<br />

x l ji = b l i ∀i ∈ V, ∀l ∈ L (10)<br />

∈ {0, 1} ∀(ij) ∈ E, ∀l ∈ L (11)<br />

The objective (8) minimizes the total cost of routing all commodities.<br />

The rst c<strong>on</strong>straint (9) ensures that edge capacities are not violated.<br />

In c<strong>on</strong>straint (10) let b l i = 1 if i is the source node of commodity<br />

l, let b l i = −1 if i is the target node of commodity l, <strong>and</strong> let bl i = 0<br />

otherwise. C<strong>on</strong>straint (10) ensures that each commodity is routed from<br />

its source node to its target node. Finally the bound (11) makes sure<br />

that variables take <strong>on</strong> binary values.<br />

Barnhart et al. [1] <strong>Dantzig</strong>-<strong>Wolfe</strong> decomposed MCMCuFP such that<br />

the pricing problem generates a path for each commodity <strong>and</strong> the master<br />

problem merges the paths into an overall feasible soluti<strong>on</strong>. Let P<br />

be the set of paths <strong>and</strong> let the cost c p of each path be dened as the<br />

sum of visited edges ∑ (ij)∈p c ij. The binary variable x l p ∈ {0, 1} indicates<br />

whether or not commodity l ∈ L uses path p ∈ P . Also, let<br />

δ p ij<br />

be a c<strong>on</strong>stant denoting whether or not path p visits edge (ij) ∈ E.<br />

The master problem is:<br />

∑ ∑<br />

min c p q l x l p (12)<br />

s. t.<br />

l∈L p∈P<br />

∑<br />

q l δ p ij xl p ≤ d ij ∀(ij) ∈ E (13)<br />

l∈L<br />

∑<br />

x l p = 1 ∀l ∈ L (14)<br />

p∈P<br />

x l p ∈ {0, 1} ∀p ∈ P, ∀l ∈ L (15)<br />

The objective (12) still minimizes the total cost of routing the commodities<br />

<strong>and</strong> the rst c<strong>on</strong>straint (13) makes sure that edge capacities<br />

are satised. C<strong>on</strong>straint (14) says that each commodity can use exactly<br />

<strong>on</strong>e path <strong>and</strong> the bound (15) ensures that variables take <strong>on</strong> feasible values.<br />

3 Delayed <strong>column</strong> generati<strong>on</strong><br />

When applying <strong>Dantzig</strong>-<strong>Wolfe</strong> decompositi<strong>on</strong> <strong>on</strong> an mathematical formulati<strong>on</strong>,<br />

the number of <strong>column</strong>s may be very large. An idea is thus to <strong>on</strong>ly<br />

4


include a subset of the <strong>column</strong>s. In this case we denote (5)-(7) the restricted<br />

master problem, because <strong>on</strong>ly a subset of <strong>column</strong>s are included. Columns are<br />

generated iteratively by solving the pricing problem. Only <strong>column</strong>s, which<br />

have the potential to improve the current soluti<strong>on</strong> to the restricted master<br />

problem, are added. This procedure is denoted delayed <strong>column</strong> generati<strong>on</strong>,<br />

or simply <strong>column</strong> generati<strong>on</strong>.<br />

To decide whether or not a <strong>column</strong> has potential to improve the current<br />

soluti<strong>on</strong> to the restricted master problem, the dual variables of the current<br />

soluti<strong>on</strong> are c<strong>on</strong>sidered. C<strong>on</strong>sider the restricted master problem:<br />

∑<br />

min c j x j<br />

s. t.<br />

j∈J<br />

∑<br />

a j x j ≥ b (16)<br />

j∈J<br />

x j ∈ X<br />

The reduced cost for a <strong>column</strong> j ∈ J is dened as c j − ya j where y is<br />

the dual cost vector. In minimizati<strong>on</strong> problems, a generated <strong>column</strong> has<br />

potential to improve the current soluti<strong>on</strong> to the restricted master problem if<br />

its reduced cost is negative; in maximizati<strong>on</strong> problems positive reduced costs<br />

are sought. Now, the objective of the pricing problem is the reduced cost<br />

<strong>and</strong> the c<strong>on</strong>straints are the independent c<strong>on</strong>straints of the original problem:<br />

min (c j − ya j )x j<br />

s. t. Dx j ≤ d (17)<br />

x j ∈ Z n +<br />

A pricing problem is generated for each block k ∈ K of the original problem.<br />

The pricing problems for dierent blocks may thus dier. Columns<br />

generated by the pricing problem, are not necessarily part of the soluti<strong>on</strong><br />

in the following iterati<strong>on</strong> even though they had negative reduced costs. If<br />

<strong>on</strong>e generated <strong>column</strong> becomes part of the next soluti<strong>on</strong> then the remaining<br />

generated <strong>column</strong>s may become uninteresting. Also, even if a <strong>column</strong> is part<br />

of the soluti<strong>on</strong> in the iterati<strong>on</strong> just after its generati<strong>on</strong>, the <strong>column</strong> is not<br />

necessarily part of an optimal soluti<strong>on</strong>.<br />

The overall <strong>column</strong> generati<strong>on</strong> procedure can now be stated as:<br />

1. Solve the restricted master problem (16)<br />

2. Generate <strong>column</strong>s with the most negative reduced costs by solving the<br />

corresp<strong>on</strong>ding pricing problems (17)<br />

3. If new <strong>column</strong>s are generated go to step 1, otherwise stop<br />

Often it is <strong>on</strong>ly slightly more expensive to generate several <strong>column</strong>s at a<br />

time. Hence this may be benecial, for instance when the pricing problem<br />

5


is dicult to solve, e.g. N P-hard. In this case, the pricing problem can<br />

also be solved heuristically. However, when the heuristic cannot generate a<br />

<strong>column</strong> with negative reduced cost, then the pricing problem must be solved<br />

to optimality to ensure that the <strong>column</strong> generati<strong>on</strong> procedure eventually<br />

gives an optimal soluti<strong>on</strong>.<br />

Example (c<strong>on</strong>t). C<strong>on</strong>sider the Minimum Cost Multi-Commodity<br />

unsplittable Flow Problem from the previous example <strong>and</strong> how the<br />

problem was <strong>Dantzig</strong>-<strong>Wolfe</strong> decomposed. This example shows how to<br />

generate <strong>column</strong>s for the master problem according to Barnhart et al.<br />

[1]. The restricted master problem became:<br />

∑ ∑<br />

min c p q l x l p (18)<br />

s. t.<br />

l∈L p∈P<br />

∑<br />

q l δ p ij xl p ≤ d ij ∀(ij) ∈ E (19)<br />

l∈L<br />

∑<br />

x l p = 1 ∀l ∈ L (20)<br />

p∈P<br />

x l p ∈ {0, 1} ∀p ∈ P, ∀l ∈ L (21)<br />

Let π ij ≤ 0 be the dual of c<strong>on</strong>straint (19) <strong>and</strong> σ l ∈ R be the dual of<br />

c<strong>on</strong>straint (20). The reduced cost for a <strong>column</strong> p for a commodity l is:<br />

¯c l p = ∑<br />

q l (c ij − π ij ) − σ l<br />

(ij)∈E<br />

The pricing problem for each <strong>column</strong> p <strong>and</strong> commodity l seeks to nd<br />

<strong>column</strong>s with negative reduced cost. Now, σ l is known for each commodity<br />

<strong>and</strong> the reduced cost can be rewritten as:<br />

∑<br />

q l (c ij − π ij ) < σ l<br />

(ij)∈E<br />

Let the cost of each edge (ij) ∈ E in the graph be replaced by (c ij −<br />

π ij ), which is n<strong>on</strong>-negative because c ij ≥ 0 <strong>and</strong> π ij ≤ 0. The pricing<br />

problem c<strong>on</strong>sists of nding the shortest path from the source node<br />

to the target node of the commodity, such that the total (reduced)<br />

cost is minimized. Because edge weights are n<strong>on</strong>-negative, the pricing<br />

problem is polynomially solvable. If the pricing problem nds a path<br />

with total cost less than σ l then the corresp<strong>on</strong>ding <strong>column</strong> is priced<br />

into the master problem.<br />

References<br />

[1] C. Barnhart, C. A. Hane, <strong>and</strong> P. H. Vance. Using branch-<strong>and</strong>-price-<strong>and</strong>cut<br />

to solve origin-destinati<strong>on</strong> integer multicommodity ow problems.<br />

Operati<strong>on</strong>s Research, 48(2):318326, 2000.<br />

6


[2] G. B. <strong>Dantzig</strong> <strong>and</strong> P. <strong>Wolfe</strong>. Decompositi<strong>on</strong> principle for linear programs.<br />

Operati<strong>on</strong>s Research, 8:101111, 1960.<br />

[3] G. Desaulniers, J. Desrosiers, <strong>and</strong> M. M. Solom<strong>on</strong>, editors. Column Generati<strong>on</strong>.<br />

Springer Science+Media Business, Inc., 2005.<br />

[4] M. E. Lübbecke <strong>and</strong> J. Desrosiers. Selected topics in <strong>column</strong> generati<strong>on</strong>.<br />

Operati<strong>on</strong>s Research, 53(6):10071023, 2005.<br />

[5] G. L. Nemhauser <strong>and</strong> L. A. Wolsey. Integer <strong>and</strong> combinatorial optimizati<strong>on</strong>.<br />

John Wiley & S<strong>on</strong>s, Inc., 1999.<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!