Lably
Skip to content

Dantzig–Wolfe decomposition

Algorithm for solving linear programming problems with special structure

  • 3 min read
  • 3 chapters

Related on Lably

Through Integer, Linear programming and Polyhedron

Explanation using column generation

The Dantzig-Wolfe decomposition considers the following initial linear program.

mincTxsubject toAx≤aBx≤bx∈R

The decomposition starts by reformulating the problem. the constraint Bx≤b is equivalently reformulating by writing x as a convex combination of points satisfying Bx≤b. This leads to the following linear program.

mincTxsubject toAx≤ax=∑iλixi∑iλi=1x∈R,λi∈R+or equivalently mincT∑iλixisubject toA∑iλixi≤a∑iλi=1λi∈R+

Here the new variables λi represent the coefficient in the convex combination, and the coefficients xirepresent the points satisfying Bx≤b. In order to be exact, the formulation needs to contain one variable λi for each extreme point of the polyhedron induced by Bx≤b. This is because every point of a non-empty, bounded convex polyhedron can be represented as a convex combination of its extreme points. This leads to an intractable number of variables.

In order to be able to solve this new formulation containing an intractable number of variables, one use the column generation algorithm. This leads to an iterative algorithm where a couple (λi,xi) is generated at every iteration.

Remarque: if the initial problem contains several constraints Ax≤a, Bx≤b, Cx≤c ... each of these constraints can be independently reformulated with the Dantzig-Wolfe method. This leads to independent sub-problems in the column generation algorithm. This fact is especially useful when the matrix constraint of the initial problem has a form of block diagonal structure.

The whole algorithm can be summarized as follows.

  1. Initialize the reformulated problem (P) with a small subset of the points xi and their corresponding variables λi;
  2. Find an optimal solution x∗of (P);
  3. Search for a point xi satisfying Bx≤b whose addition to (P) may improve the value of the optimal solution x∗;
  4. If such a point exists, add it to (P) and go to Step 2;
  5. Otherwise x∗is optimal : stop.

It can be visualized as follows.

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Computing and communication