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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GMI and Strong CG cuts Gomory mixed integer (GMI) inequalities ⊲ Equivalent to MIR inequalities ⊲ Pure integer case: dominate CG inequalities 17 / 36
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Recommend
More recommend