Initializing help system before first use

Benders decomposition: working with several different submodels

Benders decomposition is a decomposition method for solving large Mixed Integer Programming problems. Instead of solving a MIP problem that may be too large for standard solution methods all-in-one, we work with a sequence of linear and pure integer subproblems (the latter with a smaller number of constraints than the original problem). The description of the decomposition algorithm below is taken from [Hu69] where the interested reader will also find proofs of its finiteness and of the statement that it always results in the optimal solution.

Consider the following standard form of a mixed-integer programming problem (problem I).

minimize z = Cx + Dy
Ax + Byb
x, y0, y integer

In the above, and all through this section, we use bold letters for vectors and matrices. For instance, Cx + Dy stands for

NCTVAR
i=1
Ci·xi + ∑
NINTVAR
i=1
Di·yi
, where NCTVAR denotes the number of continuous variables and NINTVAR the number of integer variables.

For given values y' of y the problem above is reduced to a linear program (problem II)—we leave out the constant term in the objective:

minimize Cx
Axb - By'
x0

The dual program of problem II is given by problem IId:

maximize u(b - By')
uAC
u0

An interesting feature of the dual problem IId is that the feasible region of u is independent of y. Furthermore, from duality theory it follows that if problem IId is infeasible or has no finite optimum solution, then the original problem I has no finite optimum solution. Again from duality theory we know that if problem IId has a finite optimum solution u* then this solution has the same value as the optimum solution to the primal problem (that is, u*(b - By') = Cx*), and for a solution up (at a vertex p of the feasible region) we have up(b - By')Cx*. Substituting the latter into the objective of the original MIP problem we obtain a constraint of the form

z ≥ up(b - By) + Dy

To obtain the optimum solution z* of the original MIP problem (problem I) we may use the following partitioning algorithm that is known as Benders decomposition algorithm:

Step 0
Find a u' that satisfies u'AC
if no such u' exists
then the original problem (I) has no feasible solution
else continue with Step 1
end-if
Step 1
Solve the pure integer program
minimize z
z ≥ u'(b - By) + Dy
y0, y integer
If z is unbounded from below, take a z to be any small value z'.
Step 2
With the solution y' of Step 1, solve the linear program
maximize u(b - By')
uAC
u0
If u goes to inifinity with u(b - By')
then add the constraint iui ≤ M, where M is a large positive constant, and resolve the problem
end-if
Let the solution of this program be u''.
if z' - Dy' ≤ u''(b - By')
then continue with Step 3
else return to Step 1 and add the constraint z' ≥ Dy + u''(b - By)
end-if
Step 3
With the solution y' of Step 1, solve the linear program
minimize Cx
Axb - By'
x0
x' and y' are the optimum solution z* = Cx' + Dy'

This algorithm is provably finite. It results in the optimum solution and at any time during its execution lower and upper bounds on the optimum solution z* can be obtained.

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.