Professional Documents
Culture Documents
Programming
Taufik Djatna, Dr.Eng.
Integer programming ::
Methods
• Relaxation
• Branch and Bound
• Cutting planes
• Column generation
• Heuristics
Goal:
Find x in Zn which:
1. maximizes f(x)
2. satisfies gi(x) <= bi
Area of Application
• Binary Integer Model:: Plant Expansion decision
1 if decision j is YES subject to
xj j 1, 2,3, 4
0 if decision j is NO 6 x1 3 x2 5 x3 2 x4 10
let : x3 + x 4 1
Z total Net Present Value= 9x1 5 x2 6 x3 4 x4 x1 +x 3 0
xj
Z=41.25
2 5x1 + 9x2 = 45
1
Z=20
0 1 2 3 4 5 6 7 8 9
x2
Utilizing the information about the
optimal solution of the LP-relaxation
Fact: If LP-relaxation has integral optimal solution x*,
then x* is optimal for IP too.
In our case, (x1, x2) = (2.25, 3.75) is the optimal solution of the
LP-relaxation. But, unfortunately, it is not integral.
3 (3, 3)
2
Subproblem 1
1
Z=20 Z=39
0 1 2 3 4 5 6 7 8
Solution tree
S1: x2 3
For each subproblem, we record
All
(3, 3) int.
• the restriction that creates the subproblem Z=39
(2.25, 3.75)
• the optimal LP solution
Z=41.25 S2: x2 ≥ 4
• the LP optimum value
(1.8, 4)
Z=41
The optimal solution for Subproblem 1 is integral: (3, 3).
If further branching on a subproblem will yield no useful
information, then we can fathom (dismiss) the subproblem.
In our case, we can fathom Subproblem 1 because its solution is integral.
The best integer solution found so far is stored as incumbent.
The value of the incumbent is denoted by Z*.
In our case, the first incumbent is (3, 3), and Z*=39.
Z* is a lower bound for OPT(IP): OPT(IP) ≥ Z* .
In our case, OPT(IP) ≥ 39. The upper bound is 41: OPT(IP) 41.
Next branching step (graphically)
- Fathom Subproblem 1.
5 - Branch Subproblem 2 on x1 :
(1, 4.44)
Subpr. 4
Subpr. 3 Subproblem 3: New restriction is x1 1.
4 Opt. solution (1, 4.44) with value 40.55
Subproblem 4: New restriction is x1 ≥ 2.
The subproblem is infeasible
3
Z=40.55
1
Z=20
0 1 2 3 4 5 6 7 8
Solution tree (cont.)
S1: x2 3
int.
All (3, 3) S3: x1 1
(2.25, 3.75) Z=39
(1, 4.44)
Z=41.25
S2: x2 ≥ 4 Z=40.55
(1.8, 4)
Z=41 S4: x1 ≥ 2
infeasible
1
Z=20
0 1 2 3 4 5 6 7 8
Solution tree (final)
S1: x2 3 S5: x2 4
int.
All (3, 3) S3: x1 1 (1, 4) int.
(2.25, 3.75) Z=39 Z=37
(1, 4.44)
Z=41.25
S2: x2 ≥ 4 Z=40.55 S6: x2 ≥ 5
(1.8, 4) (0, 5)
int.
Z=41 S4: x1 ≥ 2 Z=40
infeasible
If the optimal value of a subproblem is Z*, then it is fathomed.
• In our case, Subproblem 5 is fathomed because 37 39 = Z*.
If a subproblem has integral optimal solution x*,
and its value > Z*, then x* replaces the current incumbent.
• In our case, Subproblem 5 has integral optimal solution, and its value
40>39=Z*. Thus, (0,5) is the new incumbent, and new Z*=40.
If there are no unfathomed subproblems left, then the current
incumbent is an optimal solution for (IP).
• In our case, (0, 5) is an optimal solution with optimal value 40.
y objective
optimum of
LP relaxation
IP optimum
feasible rounding down optimum
solutions = of LP relaxation
x
Integer Program
Solving MIPs: Branch and Bound
Consider the following integer program:
Maximize x + y + 2z
Subject to 7x + 2y + 3z 36 (IP0)
5x + 4y + 7z 42
2x + 3y + 5z 28
x, y, z 0, integer
Branch & Bound: Example
3
x 1
11
obj 11
5 IP0
y 0 11
z 5 1
11
x 1 x2
Best IP
value
/ 10/ 11
1
0 obj 11.4 obj 10 2 1
5.2 IP2 IP1 2 0 0
0 Best IP
4 4 5
solution
z 5 z6 Integral
1
1 1
obj 11 IP4 IP3
3 3
5
y0 y 1 Infeasible
LP constraints
Nutritional requirements
LP constraints
Minimize Cost
0.3x1 + 2.40x2 + 1.30x3 + 0.90x4 + 2.0x5 + 1.9x6
Nutritional requirements
Solution
Weak Duality:
Cost of any feas. diet Price of any feas. pills
MORAL:
The values of the dual variables, which are
always available as part of LP solution, equal
the marginal value of corresponding
resources.
Summary
Summary of branch-and-bound for integer programs
• Which variable to branch on?
• Which open subproblem to solve first?
• Updating the bounds (lower and upper) on OPT(IP)
• Summary of fathoming criteria
• Optimality test
Branch-and-bound applied to
• binary integer programs
• mixed integer programs