Back
Dantzig-Wolfe decomposition
We consider linear programming problems of the form
where for some positive integer ,
and for , is a positive integer,
,
,
and is a pointed polyhedron.
For each ,
let , be the extreme points of
and let , give a complete
set of extreme rays of where and are nonnegative
integers.
By Theorem 12.1,
can be written as
for some
, and
, where
.
Then can be reformulated as
where for
we have
for , and
for .
Example.
Consider
where
and
Solving this directly gives an optimal solution
with optimal value .
Now, has extreme points
and
and a complete set of extreme rays
where as
has one extreme point
and a complete set of extreme rays
.
Hence, can be reformulated as
Now, solving this directly gives an optimal solution
,
,
and the remainder of the variables equal to 0.
The optimal value is again and
the solution gives the point
in and
in .
Note that is a linear programming problem in standard form.
But it might have too many variables compared to .
To solve , we will use the simplex method with column generation.
We illustrate the concepts on the problem
Suppose that is a basis determining a basic feasible solution.
Recall that the only part of that is needed to compute the
associated basic feasible solution is the submatrix .
To determine if the basic feasible solution is optimal, we solve
for in
and check if it is feasible to the dual; i.e. if
for all .
If not, we have a such that
and is the entering variable.
The leaving variable can be obtained knowing only
, , and .
Therefore, the only step that involves knowledge of the entire
is in finding .
In the case of , the check can be performed
without the explicit knowledge of the entire .
To see this, let such for the dual of be given by
.
We therefore need to check for each
if there exists such that
or if there exists such that
These inequalities can be rewritten as
and
respectively.
We can handle both sets of inequalities for a particular
by solving the subproblem
Suppose that it has an optimal solution. By Theorem 8.7 there is one that is an extreme point
of .
If the optimal value is less than , then
and so we have found an entering variable for .
Suppose that it is unbounded.
By Theorem 10.5
there is an extreme ray of so that
Again, we have found an entering variable for .
If none of the above applies for all , then
has been solved to optimality.
The computational advantage of the above method for solving
instead of solving directly is that if is large,
the problem has many constraints.
So in the case when is small and each of the subproblem is easy
to solve, each iteration of the simplex method has only modest memory
requirements, making it possible to solve very large instances of .