cutting planes and branch and bound
play

Cutting Planes and Branch and Bound Marco Chiarandini Department - PowerPoint PPT Presentation

DM545 Linear and Integer Programming Lecture 13 Cutting Planes and Branch and Bound Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Cutting Plane Algorithms Outline Branch and Bound 1.


  1. DM545 Linear and Integer Programming Lecture 13 Cutting Planes and Branch and Bound Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark

  2. Cutting Plane Algorithms Outline Branch and Bound 1. Cutting Plane Algorithms 2. Branch and Bound 2

  3. Cutting Plane Algorithms Outline Branch and Bound 1. Cutting Plane Algorithms 2. Branch and Bound 3

  4. Cutting Plane Algorithms Valid Inequalities Branch and Bound • IP: z = max { c T x : x ∈ X } , X = { x : A x ≤ b , x ∈ Z n + } • Proposition: conv ( X ) = { x : ˜ A x ≤ ˜ b , x ≥ 0 } is a polyhedron • LP: z = max { c T x : ˜ A x ≤ ˜ b , x ≥ 0 } would be the best formulation • Key idea: try to approximate the best formulation. Definition (Valid inequalities) ax ≤ b is a valid inequality for X ⊆ R n if ax ≤ b ∀ x ∈ X Which are useful inequalities? and how can we find them? How can we use them? 4

  5. Cutting Plane Algorithms Example: Pre-processing Branch and Bound • X = { ( x , y ) : x ≤ 999 y ; 0 ≤ x ≤ 5 , y ∈ B 1 } x ≤ 5 y • X = { x ∈ Z n + : 13 x 1 + 20 x 2 + 11 x 3 + 6 x 4 ≥ 72 } 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 13 11 x 1 + 20 11 x 2 + x 3 + 6 11 x 4 ≥ 72 11 = 6 + 6 11 2 x 1 + 2 x 2 + x 3 + x 4 ≥ 7 • Capacitated facility location: � x ij ≤ b j y j ∀ j ∈ N x ij ≤ b j y j i ∈ M � x ij = a i ∀ i ∈ M x ij ≤ a i j ∈ N x ij ≥ 0 , y j ∈ B n x ij ≤ min { a i , b j } y j 5

  6. Cutting Plane Algorithms Chvátal-Gomory cuts Branch and Bound • X ∈ P ∩ Z n P = { x ∈ R n + : A x ≤ b } , A ∈ R m × n + , • u ∈ R m + , { a 1 , a 2 , . . . a n } columns of A CG procedure to construct valid inequalities n � 1 ) ua j x j ≤ ub valid: u ≥ 0 j = 1 n � � � 2 ) ⌊ ua j ⌋ x j ≤ ub valid: x ≥ 0 and ⌊ ua j ⌋ x j ≤ ua j x j j = 1 n � valid for X since x ∈ Z n 3 ) ⌊ ua j ⌋ x j ≤ ⌊ ub ⌋ j = 1 Theorem by applying this CG procedure a finite number of times every valid inequality for X can be obtained 6

  7. Cutting Plane Algorithms Cutting Plane Algorithms Branch and Bound • X ∈ P ∩ Z n + • a family of valid inequalities F : a T x ≤ b , ( a , b ) ∈ F for X • we do not find them all a priori, only interested in those close to optimum Cutting Plane Algorithm Init.: t = 0 , P 0 = P z t = max { c T x : x ∈ P t } Iter. t : Solve ¯ let x t be an optimal solution if x t ∈ Z n stop, x t is opt to the IP if x t �∈ Z n solve separation problem for x t and F if ( a t , b t ) is found with a t x t > b t that cuts off x t P t + 1 = P ∩ { x : a i x ≤ b i , i = 1 , . . . , t } else stop ( P t is in any case an improved formulation) 7

  8. Cutting Plane Algorithms Gomory’s fractional cutting plane algorithm Branch and Bound Cutting plane algorithm + Chvátal-Gomory cuts • max { c T x : A x = b , x ≥ 0 , x ∈ Z n } • Solve LPR to optimality   x u = ¯ b u − � ¯ a uj x j , u ∈ B ¯ ¯ A N = A − 1 0 I B A N b   j ∈ N   z = ¯ d + � c j x j ¯   − ¯ j ∈ N c B ¯ c N ( ≤ 0 ) ¯ 1 d • If basic optimal solution to LPR is not integer then ∃ some row u : ¯ b u �∈ Z 1 . The Chvatál-Gomory cut applied to this row is: � a uj ⌋ x j ≤ ⌊ ¯ ⌊ ¯ b u ⌋ x B u + j ∈ N ( B u is the index in the basis B corresponding to the row u ) (cntd) 8

  9. Cutting Plane Algorithms Branch and Bound • Eliminating x B u = ¯ b u − � ¯ a uj x j in the CG cut we obtain: j ∈ N � ) x j ≥ ¯ b u − ⌊ ¯ (¯ a uj − ⌊ ¯ a uj ⌋ b u ⌋ � �� � � �� � j ∈ N 0 ≤ f uj < 1 0 < f u < 1 � f uj x j ≥ f u j ∈ N f u > 0 or else u would not be row of fractional solution. It implies that x ∗ in which x ∗ N = 0 is cut out! • Moreover: when x is integer, since all coefficient in the CG cut are integer the slack variable of the cut is also integer: � s = − f u + f uj x j j ∈ N (theoretically it terminates after a finite number of iterations, but in practice not successful.) 9

  10. Cutting Plane Algorithms Example Branch and Bound max x 1 + 4 x 2 x 2 x 1 + 6 x 2 ≤ 18 ≤ 3 x 1 x 1 = 3 x 1 , x 2 ≥ 0 x 1 , x 2 integer x 1 + 6 x 2 = 18 x 1 x 1 + 4 x 2 = 2 | | x1 | x2 | x3 | x4 | -z | b | |---+----+----+----+----+----+----| | | 1 | 6 | 1 | 0 | 0 | 18 | | | 1 | 0 | 0 | 1 | 0 | 3 | |---+----+----+----+----+----+----| | | 1 | 4 | 0 | 0 | 1 | 0 | | | x1 | x2 | x3 | x4 | -z | b | |---+----+----+------+------+----+------| | | 0 | 1 | 1/6 | -1/6 | 0 | 15/6 | | | 1 | 0 | 0 | 1 | 0 | 3 | x 2 = 5 / 2 , x 1 = 3 |---+----+----+------+------+----+------| Optimum, not integer | | 0 | 0 | -2/3 | -1/3 | 1 | -13 | 10

  11. Cutting Plane Algorithms Branch and Bound • We take the first row: | | 0 | 1 | 1/6 | -1/6 | 0 | 15/6 | • CG cut � j ∈ N f uj x j ≥ f u � 1 6 x 3 + 5 6 x 4 ≥ 1 2 • Let’s see that it leaves out x ∗ : from the CG proof: 1 / 6 ( x 1 + 6 x 2 ≤ 18 ) 5 / 6 ( x 1 ≤ 3 ) x 1 + x 2 ≤ 3 + 5 / 2 = 5 . 5 since x 1 , x 2 are integer x 1 + x 2 ≤ 5 • Let’s see how it looks in the space of the original variables: from the first tableau: x 3 = 18 − 6 x 2 − x 1 x 4 = 3 − x 1 1 6 ( 18 − 6 x 2 − x 1 ) + 5 6 ( 3 − x 1 ) ≥ 1 x 1 + x 2 ≤ 5 � 2 11

  12. Cutting Plane Algorithms Branch and Bound • Graphically: x 2 x 1 = 3 x 1 + 6 x 2 = 18 x 1 + x 2 = 5 x 1 x 1 + 4 x 2 = 2 • Let’s continue: We need to apply dual-simplex | | x1 | x2 | x3 | x4 | x5 | -z | b | (will always be the case, why?) |---+----+----+------+------+----+----+------| | | 0 | 0 | -1/6 | -5/6 | 1 | 0 | -1/2 | c j | | 0 | 1 | 1/6 | -1/6 | 0 | 0 | 5/2 | ratio rule: min {| a ij | : a ij < 0 } | | 1 | 0 | 0 | 1 | 0 | 0 | 3 | |---+----+----+------+------+----+----+------| | | 0 | 0 | -2/3 | -1/3 | 0 | 1 | -13 | 12

  13. Cutting Plane Algorithms Branch and Bound • After the dual simplex iteration: We can choose any of the three | | x1 | x2 | x3 | x4 | x5 | -z | b | rows. |---+----+----+------+----+------+----+-------| | | 0 | 0 | 1/5 | 1 | -6/5 | 0 | 3/5 | | | 0 | 1 | 1/5 | 0 | -1/5 | 0 | 13/5 | Let’s take the third: CG cut: | | 1 | 0 | -1/5 | 0 | 6/5 | 0 | 12/5 | 5 x 3 + 1 4 5 x 5 ≥ 2 |---+----+----+------+----+------+----+-------| 5 | | 0 | 0 | -3/5 | 0 | -2/5 | 1 | -64/5 | • In the space of the original variables: x 2 4 ( 18 − x 1 − 6 x 2 ) + ( 5 − x 1 − x 2 ) ≥ 2 x 1 + 5 x 2 ≤ 15 x 1 • ... 13

  14. Cutting Plane Algorithms Outline Branch and Bound 1. Cutting Plane Algorithms 2. Branch and Bound 14

  15. Cutting Plane Algorithms Branch and Bound Branch and Bound • Consider the problem z = max { c T x : x ∈ S } • Divide and conquer: let S = S 1 ∪ . . . ∪ S k be a decomposition of S into smaller sets, and let z k = max { c T x : x ∈ S k } for k = 1 , . . . , K . Then z = max k z k For instance if S ⊆ { 0 , 1 } 3 the enumeration tree is: S x 1 = 0 x 1 = 1 S 0 S 1 x 2 = 0 S 00 S 01 S 10 S 11 x 3 = 0 S 000 S 001 S 010 S 011 S 100 S 101 S 110 S 111 15

  16. Cutting Plane Algorithms Bounding Branch and Bound Let’s consider a maximization problem (gurobi’s default is minimization) • Let z k be an upper bound on z k (dual bound) • Let z k be an lower bound on z k (primal bound) • ( z k ≤ z k ≤ z k ) • z = max k z k is a lower bound on z • z = max k z k is an upper bound on z 16

  17. Cutting Plane Algorithms Pruning Branch and Bound 27 z = 25 13 z = 20 pruned by optimality 20 25 20 15 27 z = 26 13 z = 21 pruned by bounding 20 26 18 21 40 z = 37 −∞ z = 13 nothing to prune 24 37 13 −∞ 17

  18. Cutting Plane Algorithms Pruning Branch and Bound 27 z = 26 13 z = 14 pruned by infeasibility 26 infeas. 14 18

  19. Cutting Plane Algorithms Example Branch and Bound max x 1 + 2 x 2 x 2 x 1 + 4 x 2 ≤ 8 4 x 1 + x 2 ≤ 8 x 1 , x 2 ≥ 0 , integer x 1 + 4 x 2 = 8 x 1 x 1 + 2 x 2 = 1 4 x 1 + x 2 = 8 • Solve LP | | x1 | x2 | x3 | x4 | -z | b | |---+----+----+----+----+----+---| | | 1 | 4 | 1 | 0 | 0 | 8 | | | 4 | 1 | 0 | 1 | 0 | 8 | |---+----+----+----+----+----+---| | | 1 | 2 | 0 | 0 | 1 | 0 | | | x1 | x2 | x3 | x4 | -z | b | |--------------+----+------+----+------+----+----| | I’=I-II’ | 0 | 15/4 | 1 | -1/4 | 0 | 6 | | II’=1/4II | 1 | 1/4 | 0 | 1/4 | 0 | 2 | |--------------+----+------+----+------+----+----| | III’=III-II’ | 0 | 7/4 | 0 | -1/4 | 0 | -2 | 19

  20. Cutting Plane Algorithms Branch and Bound • continuing x 2 = 1 + 3 / 5 = 1 . 6 | | x1 | x2 | x3 | x4 | -z | b | x 1 = 8 / 5 |----------------+----+----+-------+-------+----+---------| The optimal solution | I’=4/15I | 0 | 1 | 4/15 | -1/15 | 0 | 24/15 | | II’=II-1/4I’ | 1 | 0 | -1/15 | 4/15 | 0 | 24/15 | will not be more than |----------------+----+----+-------+-------+----+---------| 2 + 14 / 5 = 4 . 8 | III’=III-7/4I’ | 0 | 0 | -7/15 | -3/5 | 1 | -2-14/5 | • Both variables are fractional, we pick one of the two: x 2 4 . 8 x 1 = 1 x 1 ≤ 1 x 1 ≥ 2 x 1 + 4 x 2 = 8 x 1 x 1 + 2 x 2 = 1 4 x 1 + x 2 = 8 20

Recommend


More recommend