Notes on Dantzig-Wolfe decomposition and column generation
Notes on Dantzig-Wolfe decomposition and column generation
Notes on Dantzig-Wolfe decomposition and column generation
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