cutting plane separators in scip
play

Cutting Plane Separators in SCIP Kati Wolter Zuse Institute Berlin - PowerPoint PPT Presentation

Cutting Plane Separators in SCIP Kati Wolter Zuse Institute Berlin DFG Research Center M ATHEON Mathematics for key technologies 1 / 36 General Cutting Plane Method MIP X MIP := { x Z n R m : Ax b } min { c T x : x X MIP } , 2


  1. C-MIR Inequality Mixed knapsack set � X MK := { ( x , s ) ∈ Z n + × R + : a j x j ≤ a 0 + s , j ∈ N x j ≤ b j for all j ∈ N } MIR inequality F α ( d ) s � F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + 3 1 − f a 0 j ∈ N 2 1 d α − 1 1 2 3 12 / 36

  2. C-MIR Inequality Mixed knapsack set � X MK := { ( x , s ) ∈ Z n + × R + : a j x j ≤ a 0 + s , j ∈ N x j ≤ b j for all j ∈ N } MIR inequality F α ( d ) s � F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + 3 1 − f a 0 j ∈ N 2 C-MIR inequality 1 ⊲ Divide cons by δ ∈ Q + \{ 0 } ⊲ Complement int vars ( x j = b j − ¯ x j ) d α − 1 1 2 3 ⊲ MIR inequality 12 / 36

  3. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 13 / 36

  4. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 2 + s Bounds: x 1 , x 2 ≤ 2 13 / 36

  5. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 2 + s Bounds: x 1 , x 2 ≤ 2 For δ = 1 13 / 36

  6. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 2 + s Bounds: x 1 , x 2 ≤ 2 For δ = 1 � 11 � 2 = 11 = 1 2 − ⊲ f 11 2 2 13 / 36

  7. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 2 + s Bounds: x 1 , x 2 ≤ 2 F 1 2 ( d ) For δ = 1 2 � 11 � 2 = 11 = 1 2 − ⊲ f 11 1 2 2 d − 1 1 1 2 2 13 / 36

  8. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 F 1 2 ( d ) For δ = 1 2 � 11 � 2 = 11 = 1 2 − ⊲ f 11 1 2 2 d − 1 1 1 2 2 13 / 36

  9. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 For δ = 4 , x 1 = 2 − ¯ x 1 13 / 36

  10. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 For δ = 4 , x 1 = 2 − ¯ x 1 ⊲ − 1 x 1 + x 2 ≤ 7 8 + 1 4 ¯ 4 s 13 / 36

  11. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 For δ = 4 , x 1 = 2 − ¯ x 1 ⊲ − 1 x 1 + x 2 ≤ 7 8 + 1 4 ¯ 4 s � 7 � 8 = 7 = 7 ⊲ f 7 8 − 8 8 13 / 36

  12. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 F 7 8 ( d ) For δ = 4 , x 1 = 2 − ¯ x 1 2 ⊲ − 1 x 1 + x 2 ≤ 7 8 + 1 4 ¯ 4 s 1 � 7 � 8 = 7 = 7 ⊲ f 7 8 − 8 8 d − 1 7 1 2 8 13 / 36

  13. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 − 1 ¯ x 1 + 1 x 2 ≤ 0 + 2 s F 7 8 ( d ) For δ = 4 , x 1 = 2 − ¯ x 1 2 ⊲ − 1 x 1 + x 2 ≤ 7 8 + 1 4 ¯ 4 s 1 � 7 � 8 = 7 = 7 ⊲ f 7 8 − 8 8 d − 1 7 1 2 8 13 / 36

  14. Example � s � a j x j ≤ a 0 + s F f a 0 ( a j ) x j ≤ ⌊ a 0 ⌋ + � 1 − f a 0 j ∈ N j ∈ N 1 x 1 + 4 x 2 ≤ 11 1 x 1 + 4 x 2 ≤ 5 + 2 s 2 + s � Bounds: x 1 , x 2 ≤ 2 1 x 1 + 1 x 2 ≤ 2 + 2 s F 7 8 ( d ) For δ = 4 , x 1 = 2 − ¯ x 1 2 ⊲ − 1 x 1 + x 2 ≤ 7 8 + 1 4 ¯ 4 s 1 � 7 � 8 = 7 = 7 ⊲ f 7 8 − 8 8 d − 1 7 1 2 8 13 / 36

  15. Outline of the Separation Algorithm Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ Choose δ ∈ Q + \{ 0 } ⊲ Choose U ⊆ N ⇓ Violated c-MIR inequality 14 / 36

  16. Outline of the Separation Algorithm Mixed integer constraints (MIP) Aggregation heuristic ⇓ Aggregated mixed integer constraint Bound substitution heuristic ⇓ Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ Choose δ ∈ Q + \{ 0 } ⊲ Choose U ⊆ N ⇓ Violated c-MIR inequality 14 / 36

  17. Efficiency of the Separation Algorithm Aggregation heuristic ⊲ Prefer constraints with ◮ large LP solution value of the dual variable ◮ small density ◮ small slack and which ◮ have not been involved in an aggregation before 15 / 36

  18. Efficiency of the Separation Algorithm Aggregation heuristic ⊲ Prefer constraints with ◮ large LP solution value of the dual variable ◮ small density ◮ small slack and which ◮ have not been involved in an aggregation before Reducing the separation time ⊲ Limit the number of starting constraints ◮ Use the same criterion as in the aggregation heuristic MAXFAILS = 150 ◮ ⊲ In addition MAXCUTS = 100 and MAXROUNDS = 50 ◮ 15 / 36

  19. Outline Complemented Mixed Integer Rounding Cuts 1 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts 2 Implied Bound Cuts 3 Cuts for the 0-1 Knapsack Problem 4 5 Cuts for the 0-1 Single Node Flow Problem Cuts for the Stable Set Problem 6 16 / 36

  20. GMI and Strong CG cuts Gomory mixed integer (GMI) inequalities ⊲ Equivalent to MIR inequalities ⊲ Pure integer case: dominate CG inequalities 17 / 36

  21. GMI and Strong CG cuts Gomory mixed integer (GMI) inequalities ⊲ Equivalent to MIR inequalities ⊲ Pure integer case: dominate CG inequalities Strong Chvátal-Gomory (CG) inequalities ⊲ No dominance relation to MIR inequalities ⊲ Pure integer case: dominate CG inequalities 17 / 36

  22. GMI – Sepa Algo Mixed integer constraints (MIP) Aggregation heuristic ⇓ Aggregated mixed integer constraint Bound substitution heuristic ⇓ Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ Choose δ ∈ Q + \{ 0 } and U ⊆ N ⇓ Violated c-MIR inequality 18 / 36

  23. GMI – Sepa Algo Mixed integer constraints (MIP) Aggregation heuristic ⊲ Weights of A − 1 ⇓ B Row of the simplex tableau – for integer var with fractional LP val Bound substitution heuristic ⊲ Nearly turned off ⇓ Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ δ = 1 and U is nearly empty ⇓ Violated c-MIR inequality 18 / 36

  24. Strong CG – Sepa Algo Mixed integer constraints (MIP) Aggregation heuristic ⊲ Weights of A − 1 ⇓ B Row of the simplex tableau – no real vars with negative coeffs Bound substitution heuristic ⊲ Nearly turned off ⇓ Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ δ = 1 and U is nearly empty ⊲ Apply strong CG function ⇓ Violated strong CG inequality 19 / 36

  25. Outline Complemented Mixed Integer Rounding Cuts 1 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts 2 Implied Bound Cuts 3 Cuts for the 0-1 Knapsack Problem 4 5 Cuts for the 0-1 Single Node Flow Problem Cuts for the Stable Set Problem 6 20 / 36

  26. Implied Bound Cuts Extended in preprocessing and probing: Implication graph Represents logical implications of the form x = v → y ≤ b x = v → y ≥ b . ⊲ x is a binary variable and v ∈ { 0 , 1 } ⊲ y ∈ [ l , u ] is an arbitrary variable 21 / 36

  27. Implied Bound Cuts Extended in preprocessing and probing: Implication graph Represents logical implications of the form x = v → y ≤ b x = v → y ≥ b . ⊲ x is a binary variable and v ∈ { 0 , 1 } ⊲ y ∈ [ l , u ] is an arbitrary variable Used to separate implied bound cuts of the form ⊲ y ≤ cx + d (variable upper bounds) ⊲ y ≥ cx + d (variable lower bounds). 21 / 36

  28. Implied Bound Cuts Logical implication Implied bound cut � � b : x = 0 x = 0 → y ≤ b y ≤ ( u − b ) x + b = u : x = 1 22 / 36

  29. Implied Bound Cuts Logical implication Implied bound cut � � b : x = 0 x = 0 → y ≤ b y ≤ ( u − b ) x + b = u : x = 1 � � b : x = 0 x = 0 → y ≥ b y ≥ ( l − b ) x + b = l : x = 1 22 / 36

  30. Implied Bound Cuts Logical implication Implied bound cut � � b : x = 0 x = 0 → y ≤ b y ≤ ( u − b ) x + b = u : x = 1 � � b : x = 0 x = 0 → y ≥ b y ≥ ( l − b ) x + b = l : x = 1 � � u : x = 0 x = 1 → y ≤ b y ≤ ( b − u ) x + u = b : x = 1 22 / 36

  31. Implied Bound Cuts Logical implication Implied bound cut � � b : x = 0 x = 0 → y ≤ b y ≤ ( u − b ) x + b = u : x = 1 � � b : x = 0 x = 0 → y ≥ b y ≥ ( l − b ) x + b = l : x = 1 � � u : x = 0 x = 1 → y ≤ b y ≤ ( b − u ) x + u = b : x = 1 � l � : x = 0 x = 1 → y ≥ b y ≥ ( b − l ) x + l = : x = 1 b 22 / 36

  32. Outline Complemented Mixed Integer Rounding Cuts 1 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts 2 Implied Bound Cuts 3 Cuts for the 0-1 Knapsack Problem 4 5 Cuts for the 0-1 Single Node Flow Problem Cuts for the Stable Set Problem 6 23 / 36

  33. Cuts for the 0-1 Knapsack Problem 0-1 knapsack polytope � X BK := { x ∈ { 0 , 1 } n : conv ( X BK ) , a j x j ≤ a 0 } j ∈ N ⊲ N = { 1 , . . . , n } ⊲ a 0 and a j are integers for all j ∈ N ⊲ 0 ≤ a j ≤ a 0 for all j ∈ N 24 / 36

  34. Cuts for the 0-1 Knapsack Problem 0-1 knapsack polytope � X BK := { x ∈ { 0 , 1 } n : conv ( X BK ) , a j x j ≤ a 0 } j ∈ N Minimal cover : C ⊆ N with ⊲ � j ∈ C a j > a 0 ⊲ � j ∈ C \{ i } a j ≤ a 0 ∀ i ∈ C 24 / 36

  35. Cuts for the 0-1 Knapsack Problem 0-1 knapsack polytope � X BK := { x ∈ { 0 , 1 } n : conv ( X BK ) , a j x j ≤ a 0 } j ∈ N Minimal cover : ⊲ 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 C ⊆ N ⊲ Minimal cover: C = { 2 , 3 , 4 } with ⊲ � j ∈ C a j > a 0 ⊲ � j ∈ C \{ i } a j ≤ a 0 ∀ i ∈ C 24 / 36

  36. Cuts for the 0-1 Knapsack Problem 0-1 knapsack polytope � X BK := { x ∈ { 0 , 1 } n : conv ( X BK ) , a j x j ≤ a 0 } j ∈ N Minimal cover inequality: ⊲ 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 � x j ≤ | C | − 1 ⊲ Minimal cover: C = { 2 , 3 , 4 } j ∈ C defines a facet of conv ( X BK ∩ { x ∈ { 0 , 1 } n : x j = 0 ∀ j ∈ N \ C } ) 24 / 36

  37. Cuts for the 0-1 Knapsack Problem 0-1 knapsack polytope � X BK := { x ∈ { 0 , 1 } n : conv ( X BK ) , a j x j ≤ a 0 } j ∈ N Minimal cover inequality: ⊲ 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 � x j ≤ | C | − 1 ⊲ Minimal cover: C = { 2 , 3 , 4 } j ∈ C ⊲ x 2 + x 3 + x 4 ≤ 2 defines a facet of conv ( X BK ∩ defines a facet of { x ∈ { 0 , 1 } n : x j = 0 ∀ j ∈ N \ C } ) conv ( X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } ) 24 / 36

  38. Cuts for the 0-1 Knapsack Problem 0-1 knapsack polytope � X BK := { x ∈ { 0 , 1 } n : conv ( X BK ) , a j x j ≤ a 0 } j ∈ N Sequential up-lifting: ⊲ 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 ⊲ Used to strengthen minimal ⊲ Minimal cover: C = { 2 , 3 , 4 } cover inequalities ⊲ x 2 + x 3 + x 4 ≤ 2 defines a facet of conv ( X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } ) 24 / 36

  39. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C 25 / 36

  40. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C Case 1: Inequality (I) is valid for X 1 ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } � x j + α 1 · 0 ≤ 2 is valid for X 0 ⇔ j ∈ C 25 / 36

  41. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C Case 1: Inequality (I) is valid for X 1 ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } � x j + α 1 · 0 ≤ 2 is valid for X 0 ⇔ j ∈ C ⇔ α 1 ∈ [ −∞ , ∞ ] 25 / 36

  42. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C Case 2: Inequality (I) is valid for X 1 ∩ { x ∈ { 0 , 1 } 4 : x 1 = 1 } � ⇔ x j + α 1 · 1 ≤ 2 is valid for all x with 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 − 5 j ∈ C 25 / 36

  43. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C Case 2: Inequality (I) is valid for X 1 ∩ { x ∈ { 0 , 1 } 4 : x 1 = 1 } � ⇔ x j + α 1 · 1 ≤ 2 is valid for all x with 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 − 5 j ∈ C � 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 − 5 , x ∈ { 0 , 1 } 4 } + α 1 · 1 ≤ 2 ⇔ max { x j : j ∈ C 25 / 36

  44. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C Case 2: Inequality (I) is valid for X 1 ∩ { x ∈ { 0 , 1 } 4 : x 1 = 1 } � ⇔ x j + α 1 · 1 ≤ 2 is valid for all x with 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 − 5 j ∈ C � 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 − 5 , x ∈ { 0 , 1 } 4 } + α 1 · 1 ≤ 2 ⇔ max { x j : j ∈ C ⇔ α 1 ≤ 2 − 1 = 1 25 / 36

  45. Sequential Up-lifting ⊲ X BK = { x ∈ { 0 , 1 } 4 : 5 x 1 + 6 x 2 + 2 x 3 + 2 x 4 ≤ 8 } , ⊲ C = { 2 , 3 , 4 } � valid for X 0 := X BK ∩ { x ∈ { 0 , 1 } 4 : x 1 = 0 } x j ≤ 2 j ∈ C � valid for X 1 := X BK ≤ 2 ( I ) x j + α 1 x 1 j ∈ C Result: Inequality (I) is valid for X 1 for α 1 ≤ 1 25 / 36

  46. Sequential Up-lifting ⊲ ( j 1 , . . . , j t ) lifting sequence of the variables in N \ C ⊲ X i := X BK ∩ { x ∈ { 0 , 1 } n : x j i + 1 = . . . = x j t = 0 } � valid for X 0 ≤ | C | − 1 x j j ∈ C � valid for X 1 x j + α j 1 x j 1 ≤ | C | − 1 j ∈ C . . . t � � valid for X t = X BK x j + α j k x j k ≤ | C | − 1 j ∈ C k = 1 26 / 36

  47. Sequential Up-lifting ⊲ ( j 1 , . . . , j t ) lifting sequence of the variables in N \ C ⊲ X i := X BK ∩ { x ∈ { 0 , 1 } n : x j i + 1 = . . . = x j t = 0 } � valid for X 0 ≤ | C | − 1 x j j ∈ C � valid for X 1 x j + α j 1 x j 1 ≤ | C | − 1 j ∈ C . . . t � � valid for X t = X BK x j + α j k x j k ≤ | C | − 1 j ∈ C k = 1 ⊲ Different lifting sequences may lead to different inequalities! ⊲ Use sequential up- and down-lifting! 26 / 36

  48. Sequential Up- and Down-lifting Theorem If C ⊆ N is a minimal cover for X BK and ( C 1 , C 2 ) is any partition of C with C 1 � = ∅ , then inequality � x j ≤ | C 1 | − 1 j ∈ C 1 defines a facet of conv ( X BK ∩ { x ∈ { 0 , 1 } n : x j = 0 for all j ∈ N \ C , x j = 1 for all j ∈ C 2 } ) . 27 / 36

  49. Sequential Up- and Down-lifting Theorem If C ⊆ N is a minimal cover for X BK and ( C 1 , C 2 ) is any partition of C with C 1 � = ∅ , then inequality � x j ≤ | C 1 | − 1 j ∈ C 1 defines a facet of conv ( X BK ∩ { x ∈ { 0 , 1 } n : x j = 0 for all j ∈ N \ C , x j = 1 for all j ∈ C 2 } ) . ⊲ Up-lifting: variables in N \ C ⊲ Down-lifting: variables in C 2 27 / 36

  50. Outline of the Separation Algorithm Step 1 (Initial cover) ⊲ Determine an initial cover C for X BK Step 2 (Minimal cover and partition) ⊲ Make the initial cover minimal by removing vars from C ⊲ Find a partition ( C 1 , C 2 ) of C with C 1 � = ∅ Step 3 (Lifting) ⊲ Determine a lifting sequence of the variables in N \ C 1 ⊲ Lift the inequality � j ∈ C 1 x j ≤ | C 1 | − 1 using sequential up- and down-lifting 28 / 36

  51. Outline Complemented Mixed Integer Rounding Cuts 1 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts 2 Implied Bound Cuts 3 Cuts for the 0-1 Knapsack Problem 4 5 Cuts for the 0-1 Single Node Flow Problem Cuts for the Stable Set Problem 6 29 / 36

  52. Cuts for the 0-1 Single Node Flow Problem 0-1 single node flow set � � X SNF := { ( x , y ) ∈ { 0 , 1 } n × R n + : y j − y j ≤ b , j ∈ N 1 j ∈ N 2 y j ≤ u j x j for all j ∈ N } ⊲ N = { 1 , . . . , n } ⊲ ( N 1 , N 2 ) is a partition of N ⊲ b is a rational number ⊲ u j are nonnegative rational numbers for all j ∈ N 30 / 36

  53. Cuts for the 0-1 Single Node Flow Problem 0-1 single node flow set � � X SNF := { ( x , y ) ∈ { 0 , 1 } n × R n + : y j − y j ≤ b , j ∈ N 1 j ∈ N 2 y j ≤ u j x j for all j ∈ N } ⊲ External demand b y 1 ≤ 3 x 1 2 ⊲ Inflow arcs N 1 y 4 ≤ 1 x 4 ⊲ Outflow arcs N 2 y 2 ≤ 3 x 2 y 5 ≤ 1 x 5 ⊲ Capacities y 3 ≤ 3 x 3 ◮ u j , if j is open ( x j = 1) ◮ 0, if j is closed ( x j = 0) ⊲ Flow conservation constraint ◮ inflow − outflow ≤ demand 30 / 36

  54. Cuts for the 0-1 Single Node Flow Problem 0-1 single node flow set � � X SNF := { ( x , y ) ∈ { 0 , 1 } n × R n + : y j − y j ≤ b , j ∈ N 1 j ∈ N 2 y j ≤ u j x j for all j ∈ N } Flow cover : y 1 ≤ 3 x 1 2 ( C 1 , C 2 ) y 4 ≤ 1 x 4 y 2 ≤ 3 x 2 with y 5 ≤ 1 x 5 y 3 ≤ 3 x 3 ⊲ C 1 ⊆ N 1 and C 2 ⊆ N 2 � � ⊲ u j − u j = b + λ j ∈ C 1 j ∈ C 2 ⊲ λ > 0 30 / 36

  55. Cuts for the 0-1 Single Node Flow Problem 0-1 single node flow set � � X SNF := { ( x , y ) ∈ { 0 , 1 } n × R n + : y j − y j ≤ b , j ∈ N 1 j ∈ N 2 y j ≤ u j x j for all j ∈ N } Flow cover : y 1 ≤ 3 x 1 2 ( C 1 , C 2 ) y 4 ≤ 1 x 4 y 2 ≤ 3 x 2 with y 5 ≤ 1 x 5 y 3 ≤ 3 x 3 ⊲ C 1 ⊆ N 1 and C 2 ⊆ N 2 � � ⊲ u j − u j = b + λ j ∈ C 1 j ∈ C 2 ( C 1 , C 2 ) = ( { 1 , 2 } , { 4 , 5 } ) ⊲ λ > 0 6 − 2 = 2 + 2 30 / 36

  56. Cuts for the 0-1 Single Node Flow Problem 0-1 single node flow set � � X SNF := { ( x , y ) ∈ { 0 , 1 } n × R n + : y j − y j ≤ b , j ∈ N 1 j ∈ N 2 y j ≤ u j x j for all j ∈ N } Flow cover inequalities : y 1 ≤ 3 x 1 2 ⊲ SGFCI dominated by y 4 ≤ 1 x 4 ◮ LSGFCI y 2 ≤ 3 x 2 ◮ part. c-MIR inequ. for part. y 5 ≤ 1 x 5 mixed knapsack relaxation y 3 ≤ 3 x 3 ⊲ EGFCI dominated by ◮ LFCI ◮ part. c-MIR inequ. for part. ( C 1 , C 2 ) = ( { 1 , 2 } , { 4 , 5 } ) mixed knapsack relaxation 6 − 2 = 2 + 2 30 / 36

  57. Outline of the Separation Algorithm Mixed integer constraints (MIP) Aggregation heuristic ⇓ Aggregated mixed integer constraint Bound substitution heuristic ⇓ Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ Choose δ ∈ Q + \{ 0 } and U ⊆ N ⇓ Violated c-MIR inequality 31 / 36

  58. Outline of the Separation Algorithm Mixed integer constraints (MIP) Transformation ⇓ 0-1 single node flow constraint Bound substitution heuristic ⊲ C 1 , L 1 ⊆ N 1 \ C 1 : variable ub ⊲ C 2 , L 2 ⊆ N 2 \ C 2 : variable ub ⇓ Mixed knapsack constraint (relaxation of MIP) Cut generation heuristic ⊲ δ > λ ( → dom. SGFCI and EGFCI) ⊲ U = C 1 ∪ C 2 ⇓ Violated c-MIR inequality 31 / 36

  59. Efficiency of the Separation Algorithm Cut generation heuristic ⊲ Extend the candidate set for the value of δ (based on coefficients in 0-1 single node flow constraint) Extension ⊲ Separate c-MIR inequalities based on flow packs in addition Reducing the separation time ⊲ Use a similar strategy as in the separator for the c-MIR cut 32 / 36

  60. Outline Complemented Mixed Integer Rounding Cuts 1 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts 2 Implied Bound Cuts 3 Cuts for the 0-1 Knapsack Problem 4 5 Cuts for the 0-1 Single Node Flow Problem Cuts for the Stable Set Problem 6 33 / 36

  61. Cuts for the Stable Set Problem “Conflict graph” G = ( V , E ) ⊲ V contains a node for each binary variable x i and its complement ¯ x i ⊲ ( x i , x j ) ∈ E ⇔ In any feas sol, x i and x j cannot be 1 at the same time 34 / 36

  62. Cuts for the Stable Set Problem “Conflict graph” G = ( V , E ) x 1 ¯ x 1 x 2 x 3 ¯ ¯ x 2 x 3 ¯ x 4 x 4 34 / 36

  63. Cuts for the Stable Set Problem “Conflict graph” G = ( V , E ) Stable set : S ⊆ V x 1 ¯ x 1 with x 2 x 3 ⊲ u , v ∈ S ⇒ ( u , v ) / ∈ E Relaxation of the MIP: ¯ ¯ x 2 x 3 ⊲ Each feas sol corresponds to x 4 ¯ x 4 a stable set in the conflict graph ⇒ Stable set polytope is a relaxation of the feas region 34 / 36

  64. Cuts for the Stable Set Problem “Conflict graph” G = ( V , E ) Clique : C ⊆ V x 1 ¯ x 1 with x 2 x 3 ⊲ u , v ∈ S ⇒ ( u , v ) ∈ E Clique inequality : ¯ ¯ x 2 x 3 � x j ≤ 1 x 4 ¯ x 4 j ∈ C x 1 + x 2 + ¯ x 3 ≤ 1 34 / 36

  65. Cuts for the Stable Set Problem “Conflict graph” G = ( V , E ) Separation algo : x 1 ¯ x 1 ⊲ Branch-and-bound algo for the maximum weighted clique problem x 2 x 3 ¯ ¯ x 2 x 3 x 4 ¯ x 4 x 1 + x 2 + ¯ x 3 ≤ 1 34 / 36

  66. Two Classes of Cuts General cuts Problem specific cuts ⊲ Complemented mixed integer ⊲ 0-1 knapsack problem rounding cuts ⊲ 0-1 single node flow problem ⊲ Gomory mixed integer cuts ⊲ Stable set problem ⊲ Strong Chvátal-Gomory cuts ⊲ Implied bound cuts 35 / 36

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend