Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
4 views

Chap3 Integer Linear Programming

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Chap3 Integer Linear Programming

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

FUNDAMENTALS OF

OPTIMIZATION
Integer Linear Programming

3
CONTENT

• Relaxation and Bound


• Branch and Bound
• Cutting plane
• Gomory Cut
• Branch and Cut

4
RELAXATION AND BOUND

• Given an Integer Program (IP)


• Find decreasing sequence of upper bounds
𝑧ഥ1 > 𝑧ഥ1 > . . . > 𝑧ഥ𝑠  z
• Find increasing sequence of lower bounds
𝑧 1 < 𝑧1 < . . . < 𝑧𝑡 ≤ z
• Algorithm stop when 𝑧ഥ𝑠 - 𝑧𝑡 ≤ 

5
RELAXATION AND BOUND

• Primal bounds
• Every feasible solution x*  X provides a lower bound of the maximization problem: 𝑧 = cx* ≤ z
• Example: in TSP, every closed tour is a upper bound of the objective function (as TSP is a
minimization problem)

6
RELAXATION AND BOUND

• Dual bounds
• Finding upper bounds for a maximization problem (or lower bounds for a minimization problem)
gives dual bounds of the objective
• Definition A problem (RP) zR = max{f(x): xT Rn} is a relaxation of (IP) z = max{cTx: xX  Zn} if:
• XT
• f(x)  cTx,  xX

7
RELAXATION AND BOUND

• Linear Relaxation
• ZLP = max{cTx: x P} with P = {x Rn: Ax ≤ b} is a linear relaxation program of the (IP) max{cTx: x
 P  Zn}

8
BRANCH AND BOUND

• Feasible region of P0 is divided into feasible regions of P1 and P2: X(P0) = X(P1)  X(P2)
𝑧ഥ0
P0
𝑧0

𝑧ഥ01 𝑧ഥ02
P1 P2
𝑧01 𝑧02

9
BRANCH AND BOUND

• Feasible region of P0 is divided into feasible regions of P1 and P2: X(P0) = X(P1)  X(P2)

𝑧ഥ0 = 30 𝑧ഥ0 = 20

𝑧0 = 10 𝑧0 = 15

𝑧ഥ01 = 15 𝑧ഥ02 = 20 𝑧ഥ01 = 15 𝑧ഥ02 = 20

𝑧01 = 15 𝑧02 = 13 𝑧01 = 15 𝑧02 = 13

10
BRANCH AND BOUND

• Feasible region of P0 is divided into feasible regions of P1 and P2: X(P0) = X(P1)  X(P2)

𝑧ഥ0 = 30 𝑧ഥ0 = 25

𝑧0 = 10 𝑧0 = 23

𝑧ഥ01 = 20 𝑧ഥ02 = 25 𝑧ഥ01 = 20 𝑧ഥ02 = 25

𝑧01 = 15 𝑧02 = 23 𝑧01 = 15 𝑧02 = 23

11
BRANCH AND BOUND

• Branch and Bound schema Initial problem S with formulation P on a list L;


Incumbent x* is initialized with primal bound z = -INF;
while L not empty do {
Select a problem Si with formulation Pi from L;
Solve LP relaxation over Pi got dual bound 𝒛ഥ𝒊 and solution xi(LP);
if 𝒛ഥ𝒊 ≤ z then continue; // prune by dual bound;
if xi(LP) integer then{
z = 𝒛ഥ𝒊 ;
x* = xi(LP);
}else{
select a component xi of xi(LP) whose value i is fractional;
𝑷𝒊𝟏 = Pi  (xi ≤ i), 𝑷𝒊𝟐 = Pi  (xi  i);
add 𝑷𝒊𝟏 and 𝑷𝒊𝟐 to L;
}
}
return x*;

12
CUTTING PLANE

• Given a (MIP) max{cTz: z X}


• Inequality z ≤ 0 is called a valid inequality if z ≤ 0 is true for all z  X
• Finding valid inequalities allows us to narrow the search space, transform the (MIP) to a
corresponding (LP) in which an optimal solution to (LP) is an optimal solution to the original (MIP)

13
CUTTING PLANE

• Example, consider a MIP with X = {(x1,x2): x1 ≤ 10x2, 0 ≤ x1 ≤ 14, x2  𝑍+1 }


• Red lines represent X
• x1 ≤ 6 + 4x2 is a valid inequality (dashed line) x2 Feasible points

.
. Valid inequality

.
x1 ≤ 10x2
3

1
x1
0 14

14
CUTTING PLANE

• Example: Integer Rounding


• Consider feasible region X = P  Z3 where P = {x𝑅+3 : 5x1 + 9x2 + 13x3  19}
9 13 19
• From 5x1 + 9x2 + 13x3  19 we have x1 + x2 + x 
5 5 3 5
19
→ x1 + 2x2 + 3x3 
5
• As x1, x2, x3 are integers, so we have
19
x1 + 2x2 + 3x3    = 4 (this is a valid inequality for X)
5

15
GOMORY CUT

• (IP) max {cx: Ax = b, x  0 and integer}


• Solve corresponding linear programming relaxation (LP) max {cx: Ax = b, x  0}
• Suppose with an optimal basis, the (LP) is rewritten in the form
𝑎00 + σ𝑗∈𝐽𝑁 𝑎0𝑗𝑥𝑗 → max
𝑥𝐵𝑢 + σ𝑗∈𝐽𝑁 𝑎𝑢𝑗𝑥𝑗 = 𝑎𝑢0, u = 1, 2,…, m
x  0 and integer
with 𝑎0𝑗 ≤ 0 (as these coefficients corresponds to a maximizer), and 𝑎𝑢0  0

16
GOMORY CUT

• (IP) max {cx: Ax = b, x  0 and integer}


• Solve corresponding linear programming relaxation (LP) max {cx: Ax = b, x  0}
• Suppose with an optimal basis, the (LP) is rewritten in the form
𝑎00 + σ𝑗∈𝐽𝑁 𝑎0𝑗𝑥𝑗 → max
𝑥𝐵𝑢 + σ𝑗∈𝐽𝑁 𝑎𝑢𝑗𝑥𝑗 = 𝑎𝑢0, u = 1, 2,…, m
x  0 and integer
with 𝑎0𝑗 ≤ 0 (as these coefficients corresponds to a maximizer), and 𝑎𝑢0  0
• If the basic optimal solution x* is not integer, then there exists some row u with 𝑎𝑢0 is not integer
→ Create a Gomory cut 𝑥𝐵𝑢 + σ𝑗∈𝐽𝑁 𝑎𝑢𝑗𝑥𝑗 ≤ 𝑎𝑢0 (1)

17
GOMORY CUT

• Example. Consider the Integer Linear Program (ILP)


f(x1, x2, x3, x4, x5) = x1 + x2 → max
2x1 + x2 + x3 = 8
3x1 + 4x2 + x4 = 24
x1 - x2 + x5 = 2
x1, x2, x3, x4, x5  0 and integer

18
GOMORY CUT

• Solve the corresponding (LP)


f(x1, x2, x3, x4, x5) = x1 + x2 → max
2x1 + x2 + x3 = 8
3x1 + 4x2 + x4 = 24
x1 - x2 + x5 = 2
x1, x2, x3, x4, x5  0
→ Optimal solution (1.6, 4.8, 0, 0, 5.2) with JB = (1,2,5) and JN = (3, 4)
Rewrite the original (ILP)
f(x1, x2, x3, x4, x5) = 6.4 – 0.2x3 – 0.2x4 → max
x1 + 0.8x3 – 0.2x4 = 1.6
x2 – 0.6x3 + 0.4 x4 = 4.8
x5 – 1.4x3 + 0.6x4 = 5.2
x1, x2, x3, x4, x5  0 and integer

19
GOMORY CUT

• Add gomory cut


• x1 + 0.8x3 – 0.2x4 = 1.6 → add gomory cut: x1 + 0x3 – x4 ≤ 1
• x2 – 0.6x3 + 0.4 x4 = 4.8 → add gomory cut: x2 – x3 + 0x4 ≤ 4
• x5 – 1.4x3 + 0.6x4 = 5.2 → add gomory cut: x5 – 2x3 + 0x4 ≤ 5

20
THANK YOU !

21

You might also like