Chapter 6 Integer Linear Programming
Chapter 6 Integer Linear Programming
OPTIMIZATION
Integer Linear Programming
CONTENT
• Relaxation and Bound
• Branch and Bound
• Cutting plan
• Gomory Cut
• Branch and Cut
Relaxation and Bound
𝑧ഥ0
P0
𝑧0
𝑧ഥ01 𝑧ഥ02
P1 P2
𝑧01 𝑧02
Branch and Bound
𝑧ഥ0 = 30 𝑧ഥ0 = 20
𝑧0 = 10 𝑧0 = 15
𝑧ഥ0 = 30 𝑧ഥ0 = 25
𝑧0 = 10 𝑧0 = 13
Feasible points
Example, consider a MIP with X x2
= {(x1,x2): x1 ≤ 10x2, 0 ≤ x1 ≤ 14, .
x2 𝑍+1 } . Valid inequality
Red lines represent X
.
x1 ≤ 6 + 4x2 is a valid inequality
(dashed line) x1 ≤ 10x2
3
14
Example Integer Rounding
• Difference between the left-hand side (LHS) and right-hand side (RHS)
of (1) is integral (as x is integral) → the difference between LHS and
RHS of (2) is also integral
→ rewrite (2) in the form s = σ𝑗∈𝐽𝑁 𝑓𝑢, 𝑗 𝑥𝑗 - 𝑓𝑢, 0 where the slack variable s is
nonnegative integer
Gomory Cut
We obtain an equivalent IP
f(x1, x2, x3, x4, x5,x6,x7,x8) = x1 + x2 → max
2x1 + x2 + x3 = 8
3x1 + 4x2 + x4 = 24
x1 - x2 + x5 =2
0.8x3 + 0.8x4 – x6 = 0.6
0.4x3 + 0.4x4 – x7 = 0.8
0.6x3 + 0.6x4 – x8 = 0.2
x1, x2, x3, x4, x5, x6, x7, x8 0 and integer
Gomory Cut
CUT Iteration k. Try to cut off xi,k. If not cuts found, goto PRUNE Else add
cuts to Pi,k giving Pi,k+1. Increase k by 1, and goto LP RELAXATION
BRANCHING Create two or more new problems and add them to the Nodelist