cutting plane separators in scip · cut selection strategy. efficacy, i.e., distance of the...
TRANSCRIPT
Cutting Plane Separators in SCIP
Kati WolterZuse Institute Berlin
DFG Research Center MATHEONMathematics for key technologies
1 / 36
General Cutting Plane Method
MIP
min{cT x : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b}
2 / 36
General Cutting Plane Method
MIP
min{cT x : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b}
Observation
. If the data are rational, then
I conv(X MIP) is a rational polyhedron
I we can formulate the MIP as
min{cT x : x ∈ conv(X MIP)}︸ ︷︷ ︸LP
2 / 36
General Cutting Plane Method
MIP
min{cT x : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b}
Problem (in general)
. Complete linear description of conv(X MIP)?
. Number of constraints needed to describeconv(X MIP) is extremely large
2 / 36
General Cutting Plane Method
MIP
min{cT x : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b}
Idea
. Construct a polyhedron Q with
I conv(X MIP) ⊆ Q ⊆ X LP
I min{cT x : x ∈ conv(X MIP)}=min{cT x : x ∈ Q}
Start with X LP andadd inequalities which are valid for X MIP
(but violated by the current LP solution)
2 / 36
General Cutting Plane Method
MIP
min{cT x : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b}
Idea
. Construct a polyhedron Q with
I conv(X MIP) ⊆ Q ⊆ X LP
I min{cT x : x ∈ conv(X MIP)}=min{cT x : x ∈ Q}
Start with X LP andadd inequalities which are valid for X MIP
(but violated by the current LP solution)
2 / 36
Main Solving Loop
Domain Propagation Solve LP
Pricing
Separation
Domain Propagation
LP Solving
Constraint Enforcement
3 / 36
Two Classes of Cuts
General cuts
. Complemented mixed integerrounding cuts
. Gomory mixed integer cuts
. Strong Chvátal-Gomory cuts
. Implied bound cuts
Problem specific cuts
. 0-1 knapsack problem
. 0-1 single node flow problem
. Stable set problem
4 / 36
Two Classes of Cuts
General cuts
. Complemented mixed integerrounding cuts
. Gomory mixed integer cuts
. Strong Chvátal-Gomory cuts
. Implied bound cuts
Problem specific cuts
. 0-1 knapsack problem
. 0-1 single node flow problem
. Stable set problem
4 / 36
Two Classes of Cuts
General cuts
. Complemented mixed integerrounding cuts
. Gomory mixed integer cuts
. Strong Chvátal-Gomory cuts
. Implied bound cuts
Problem specific cuts
. 0-1 knapsack problem
. 0-1 single node flow problem
. Stable set problem
I want to solve general MIPs!Why do I care about cutting planes for special problems?
4 / 36
Two Classes of Cuts
General cuts
. Complemented mixed integerrounding cuts
. Gomory mixed integer cuts
. Strong Chvátal-Gomory cuts
. Implied bound cuts
Problem specific cuts
. 0-1 knapsack problem
. 0-1 single node flow problem
. Stable set problem
Which plugins of SCIP generate cuts?
4 / 36
Constraint Handlers and Separators
Constraint Handlers
. Check a given solution for feasibility w.r.t. all constraints of their type
. Provide linear relaxations of their constraints (in advance or on the fly)
. Provide additional problem specific cuts
Separators
. Provide general cuts
5 / 36
Constraint Handlers and Separators
Constraint Handlers
. Check a given solution for feasibility w.r.t. all constraints of their type
. Provide linear relaxations of their constraints (in advance or on the fly)
. Provide additional problem specific cuts
Separators
. Provide general cuts
5 / 36
Constraint Handler or Separator?
Type of cuts?
Separator
GMI
Can your cons be expressed by a“small” nr. of existing cons types?
Can you represent and processyour cons in a more efficient way? Constraint handler
LOP
Separator
0-1 SNFP
Constraint handler
0-1 KP
General cuts Problem specific cuts
Yes No
No Yes
6 / 36
Constraint Handler or Separator?
Type of cuts?
Separator
GMI
Can your cons be expressed by a“small” nr. of existing cons types?
Can you represent and processyour cons in a more efficient way? Constraint handler
LOP
Separator
0-1 SNFP
Constraint handler
0-1 KP
General cuts Problem specific cuts
Yes No
No Yes
6 / 36
Constraint Handler or Separator?
Type of cuts?
Separator
GMI
Can your cons be expressed by a“small” nr. of existing cons types?
Can you represent and processyour cons in a more efficient way? Constraint handler
LOP
Separator
0-1 SNFP
Constraint handler
0-1 KP
General cuts Problem specific cuts
Yes No
No Yes
6 / 36
Some Remarks
. By default, only globally valid cuts are generated.
I FREQ = 0 and SEPAFREQ = 0
. Cuts are generated in rounds.
I MAXROUNDSROOT
. Cuts are first selected in a separation storage.
7 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
8 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
8 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
8 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
8 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
Consequence
. Cut as deep as possible into the current LP polyhedron
. Select cuts that are pairwise almost orthogonal
. Prefer cuts that are close to being parallel to the objective function
8 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
Weights of the criteria can be adjusted
. ORTHOFAC = 1.0
. OBJPARALFAC = 0.0001
8 / 36
Cut Selection Strategy
. Efficacy, i.e., distance of the hyperplane to the LP sol er
. Orthogonality with respect to the other cuts or
. Parallelism with respect to the objective function pr
⇒ Select cuts with largest value ofer + wo ∗ or + wp ∗ pr
Other useful parameters
. MINEFFICACYROOT = 0.01
. MAXCUTSROOT = 2000
8 / 36
Outline
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
9 / 36
Outline
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
10 / 36
MIR Inequality
Elementary mixed integer set
X := {(x , s) ∈ Z× R : x ≤ a0 + s (I)s ≥ 0 (II)}
x ≤ ba0c+s
1− fa0︸ ︷︷ ︸MIR inequality
(fa0 := a0 − ba0c)
s
x
a0
X
conv(X )
(I)
(II)
(III)
(IV )
MIR
11 / 36
MIR Inequality
Elementary mixed integer set
X := {(x , s) ∈ Z× R : x ≤ a0 + s (I)s ≥ 0 (II)}
Inequalities (I) and (II) do not suffice todescribe conv(X ).
x ≤ ba0c+s
1− fa0︸ ︷︷ ︸MIR inequality
(fa0 := a0 − ba0c)
s
x
a0
X
conv(X )
(I)
(II)
(III)
(IV )
MIR
11 / 36
MIR Inequality
Elementary mixed integer set
X := {(x , s) ∈ Z× R : x ≤ a0 + s (I)s ≥ 0 (II)}
Disjunctive argument
If an inequality is valid for X 1 and X 2 itis also valid for X 1 ∪ X 2.
x ≤ ba0c+s
1− fa0︸ ︷︷ ︸MIR inequality
(fa0 := a0 − ba0c)
s
x
a0
X
conv(X )
(I)
(II)
(III)
(IV )
MIR
11 / 36
MIR Inequality
Elementary mixed integer set
X := {(x , s) ∈ Z× R : x ≤ a0 + s (I)s ≥ 0 (II)}
HereX 1 := X ∩ {(x , s) : x ≥ da0e (III)}X 2 := X ∩ {(x , s) : x ≤ ba0c (IV )}
x ≤ ba0c+s
1− fa0︸ ︷︷ ︸MIR inequality
(fa0 := a0 − ba0c)
s
x
a0
Xconv(X )
(I)
(II)
(III)
(IV )
MIR
11 / 36
MIR Inequality
Elementary mixed integer set
X := {(x , s) ∈ Z× R : x ≤ a0 + s (I)s ≥ 0 (II)}
HereX 1 := X ∩ {(x , s) : x ≥ da0e (III)}X 2 := X ∩ {(x , s) : x ≤ ba0c (IV )}
Inequality valid for X 1 and X 2
x ≤ ba0c+s
1− fa0︸ ︷︷ ︸(I)+fa0 (III) and (II)+(1−fa0 )(IV )
(fa0 := a0 − ba0c)s
x
a0
Xconv(X )
(I)
(II)
(III)
(IV )
MIR
11 / 36
MIR Inequality
Elementary mixed integer set
X := {(x , s) ∈ Z× R : x ≤ a0 + s (I)s ≥ 0 (II)}
HereX 1 := X ∩ {(x , s) : x ≥ da0e (III)}X 2 := X ∩ {(x , s) : x ≤ ba0c (IV )}
Inequality valid for X 1 ∪ X 2 = X
x ≤ ba0c+s
1− fa0︸ ︷︷ ︸MIR inequality
(fa0 := a0 − ba0c)s
x
a0
X
conv(X )
(I)
(II)
(III)
(IV )
MIR
11 / 36
C-MIR InequalityMixed knapsack set
X MK := {(x , s) ∈ Zn+ × R+ :
∑j∈N
ajxj ≤ a0 + s,
xj ≤ bj for all j ∈ N}
. N = {1, . . . , n}
. a0 and aj are rational numbers for all j ∈ N
. bj are nonnegative rational numbers for all j ∈ N
d
Fα(d)
−1 1 2 3α
1
2
3
12 / 36
C-MIR Inequality
Mixed knapsack set
X MK := {(x , s) ∈ Zn+ × R+ :
∑j∈N
ajxj ≤ a0 + s,
xj ≤ bj for all j ∈ N}
MIR function
Fα : R → Rd 7→ Fα(d) := bdc+ (fd−α)+
1−α
. 0 ≤ α < 1
. fd := d − bdc
. d+ := max{d , 0} d
Fα(d)
−1 1 2 3α
1
2
3
12 / 36
C-MIR Inequality
Mixed knapsack set
X MK := {(x , s) ∈ Zn+ × R+ :
∑j∈N
ajxj ≤ a0 + s,
xj ≤ bj for all j ∈ N}
MIR inequality∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
C-MIR inequality
. Divide cons by δ ∈ Q+\{0}
. Complement int vars (xj = bj − x̄j )
. MIR inequality
d
Fα(d)
−1 1 2 3α
1
2
3
12 / 36
C-MIR Inequality
Mixed knapsack set
X MK := {(x , s) ∈ Zn+ × R+ :
∑j∈N
ajxj ≤ a0 + s,
xj ≤ bj for all j ∈ N}
MIR inequality∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
C-MIR inequality
. Divide cons by δ ∈ Q+\{0}
. Complement int vars (xj = bj − x̄j )
. MIR inequality
d
Fα(d)
−1 1 2 3α
1
2
3
12 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 1
. f 112
= 112 −
⌊ 112
⌋= 1
2
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 1
. f 112
= 112 −
⌊ 112
⌋= 1
2
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 1
. f 112
= 112 −
⌊ 112
⌋= 1
2
d
F 12(d)
−1 1 212
1
2
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 1
. f 112
= 112 −
⌊ 112
⌋= 1
2
d
F 12(d)
−1 1 212
1
2
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 4, x1 = 2 − x̄1
. − 14 x̄1 + x2 ≤ 7
8 + 14 s
. f 78
= 78 −
⌊ 78
⌋= 7
8
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 4, x1 = 2 − x̄1
. − 14 x̄1 + x2 ≤ 7
8 + 14 s
. f 78
= 78 −
⌊ 78
⌋= 7
8
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 4, x1 = 2 − x̄1
. − 14 x̄1 + x2 ≤ 7
8 + 14 s
. f 78
= 78 −
⌊ 78
⌋= 7
8
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 4, x1 = 2 − x̄1
. − 14 x̄1 + x2 ≤ 7
8 + 14 s
. f 78
= 78 −
⌊ 78
⌋= 7
8 d
F 78(d)
−1 1 278
1
2
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
−1x̄1 + 1x2 ≤ 0 + 2s
For δ = 4, x1 = 2 − x̄1
. − 14 x̄1 + x2 ≤ 7
8 + 14 s
. f 78
= 78 −
⌊ 78
⌋= 7
8 d
F 78(d)
−1 1 278
1
2
13 / 36
Example
∑j∈N
ajxj ≤ a0 + s ∑j∈N
Ffa0(aj)xj ≤ ba0c+
s1− fa0
1x1 + 4x2 ≤ 112 + s
Bounds: x1, x2 ≤ 2
1x1 + 4x2 ≤ 5 + 2s
1x1 + 1x2 ≤ 2 + 2s
For δ = 4, x1 = 2 − x̄1
. − 14 x̄1 + x2 ≤ 7
8 + 14 s
. f 78
= 78 −
⌊ 78
⌋= 7
8 d
F 78(d)
−1 1 278
1
2
13 / 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
Outline of the Separation AlgorithmMixed 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
I large LP solution value of the dual variableI small densityI small slack
and which
I have not been involved in an aggregation before
Reducing the separation time
. Limit the number of starting constraints
I Use the same criterion as in the aggregation heuristicI MAXFAILS = 150
. In addition
I MAXCUTS = 100 and MAXROUNDS = 50
15 / 36
Efficiency of the Separation Algorithm
Aggregation heuristic
. Prefer constraints with
I large LP solution value of the dual variableI small densityI small slack
and which
I have not been involved in an aggregation before
Reducing the separation time
. Limit the number of starting constraints
I Use the same criterion as in the aggregation heuristicI MAXFAILS = 150
. In addition
I MAXCUTS = 100 and MAXROUNDS = 50
15 / 36
Outline
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
16 / 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 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−1B
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 AlgoMixed integer constraints (MIP)
⇓
Aggregation heuristic
. Weights of A−1B
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
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
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
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
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
x = 0 → y ≤ b y ≤ (u − b)x + b =
{b : x = 0u : x = 1
}
x = 0 → y ≥ b y ≥ (l − b)x + b =
{b : x = 0l : x = 1
}
x = 1 → y ≤ b y ≤ (b − u)x + u =
{u : x = 0b : x = 1
}
x = 1 → y ≥ b y ≥ (b − l)x + l =
{l : x = 0b : x = 1
}
22 / 36
Implied Bound Cuts
Logical implication Implied bound cut
x = 0 → y ≤ b y ≤ (u − b)x + b =
{b : x = 0u : x = 1
}
x = 0 → y ≥ b y ≥ (l − b)x + b =
{b : x = 0l : x = 1
}
x = 1 → y ≤ b y ≤ (b − u)x + u =
{u : x = 0b : x = 1
}
x = 1 → y ≥ b y ≥ (b − l)x + l =
{l : x = 0b : x = 1
}
22 / 36
Implied Bound Cuts
Logical implication Implied bound cut
x = 0 → y ≤ b y ≤ (u − b)x + b =
{b : x = 0u : x = 1
}
x = 0 → y ≥ b y ≥ (l − b)x + b =
{b : x = 0l : x = 1
}
x = 1 → y ≤ b y ≤ (b − u)x + u =
{u : x = 0b : x = 1
}
x = 1 → y ≥ b y ≥ (b − l)x + l =
{l : x = 0b : x = 1
}
22 / 36
Implied Bound Cuts
Logical implication Implied bound cut
x = 0 → y ≤ b y ≤ (u − b)x + b =
{b : x = 0u : x = 1
}
x = 0 → y ≥ b y ≥ (l − b)x + b =
{b : x = 0l : x = 1
}
x = 1 → y ≤ b y ≤ (b − u)x + u =
{u : x = 0b : x = 1
}
x = 1 → y ≥ b y ≥ (b − l)x + l =
{l : x = 0b : x = 1
}
22 / 36
Outline
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
23 / 36
Cuts for the 0-1 Knapsack Problem0-1 knapsack polytope
conv(X BK ), X BK := {x ∈ {0, 1}n :∑j∈N
ajxj ≤ a0}
. N = {1, . . . , n}
. a0 and aj are integers for all j ∈ N
. 0 ≤ aj ≤ a0 for all j ∈ N
. 5x1 + 6x2 + 2x3 + 2x4 ≤ 8
. Minimal cover: C = {2, 3, 4}
. x2 + x3 + x4 ≤ 2defines a facet ofconv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})
24 / 36
Cuts for the 0-1 Knapsack Problem
0-1 knapsack polytope
conv(X BK ), X BK := {x ∈ {0, 1}n :∑j∈N
ajxj ≤ a0}
Minimal cover:
C ⊆ N
with
.∑
j∈C aj > a0
.∑
j∈C\{i} aj ≤ a0 ∀i ∈ C
. 5x1 + 6x2 + 2x3 + 2x4 ≤ 8
. Minimal cover: C = {2, 3, 4}
. x2 + x3 + x4 ≤ 2defines a facet ofconv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})
24 / 36
Cuts for the 0-1 Knapsack Problem
0-1 knapsack polytope
conv(X BK ), X BK := {x ∈ {0, 1}n :∑j∈N
ajxj ≤ a0}
Minimal cover:
C ⊆ N
with
.∑
j∈C aj > a0
.∑
j∈C\{i} aj ≤ a0 ∀i ∈ C
. 5x1 + 6x2 + 2x3 + 2x4 ≤ 8
. Minimal cover: C = {2, 3, 4}
. x2 + x3 + x4 ≤ 2defines a facet ofconv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})
24 / 36
Cuts for the 0-1 Knapsack Problem
0-1 knapsack polytope
conv(X BK ), X BK := {x ∈ {0, 1}n :∑j∈N
ajxj ≤ a0}
Minimal cover inequality:∑j∈C
xj ≤ |C| − 1
defines a facet of conv(X BK∩{x ∈ {0, 1}n : xj = 0 ∀j ∈ N\C})
. 5x1 + 6x2 + 2x3 + 2x4 ≤ 8
. Minimal cover: C = {2, 3, 4}
. x2 + x3 + x4 ≤ 2defines a facet ofconv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})
24 / 36
Cuts for the 0-1 Knapsack Problem
0-1 knapsack polytope
conv(X BK ), X BK := {x ∈ {0, 1}n :∑j∈N
ajxj ≤ a0}
Minimal cover inequality:∑j∈C
xj ≤ |C| − 1
defines a facet of conv(X BK∩{x ∈ {0, 1}n : xj = 0 ∀j ∈ N\C})
. 5x1 + 6x2 + 2x3 + 2x4 ≤ 8
. Minimal cover: C = {2, 3, 4}
. x2 + x3 + x4 ≤ 2defines a facet ofconv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})
24 / 36
Cuts for the 0-1 Knapsack Problem
0-1 knapsack polytope
conv(X BK ), X BK := {x ∈ {0, 1}n :∑j∈N
ajxj ≤ a0}
Sequential up-lifting:
. Used to strengthen minimalcover inequalities
. 5x1 + 6x2 + 2x3 + 2x4 ≤ 8
. Minimal cover: C = {2, 3, 4}
. x2 + x3 + x4 ≤ 2defines a facet ofconv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})
24 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
25 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
Case 1: Inequality (I) is valid for X 1 ∩ {x ∈ {0, 1}4 : x1 = 0}
⇔∑j∈C
xj + α1 · 0 ≤ 2 is valid for X 0
⇔ α1 ∈ [−∞,∞]
25 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
Case 1: Inequality (I) is valid for X 1 ∩ {x ∈ {0, 1}4 : x1 = 0}
⇔∑j∈C
xj + α1 · 0 ≤ 2 is valid for X 0
⇔ α1 ∈ [−∞,∞]
25 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
Case 2: Inequality (I) is valid for X 1 ∩ {x ∈ {0, 1}4 : x1 = 1}
⇔∑j∈C
xj + α1 · 1 ≤ 2 is valid for all x with 6x2 + 2x3 + 2x4 ≤ 8− 5
⇔ max{∑j∈C
xj : 6x2 + 2x3 + 2x4 ≤ 8− 5, x ∈ {0, 1}4 }+ α1 · 1 ≤ 2
⇔ α1 ≤ 2− 1 = 1
25 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
Case 2: Inequality (I) is valid for X 1 ∩ {x ∈ {0, 1}4 : x1 = 1}
⇔∑j∈C
xj + α1 · 1 ≤ 2 is valid for all x with 6x2 + 2x3 + 2x4 ≤ 8− 5
⇔ max{∑j∈C
xj : 6x2 + 2x3 + 2x4 ≤ 8− 5, x ∈ {0, 1}4 }+ α1 · 1 ≤ 2
⇔ α1 ≤ 2− 1 = 1
25 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
Case 2: Inequality (I) is valid for X 1 ∩ {x ∈ {0, 1}4 : x1 = 1}
⇔∑j∈C
xj + α1 · 1 ≤ 2 is valid for all x with 6x2 + 2x3 + 2x4 ≤ 8− 5
⇔ max{∑j∈C
xj : 6x2 + 2x3 + 2x4 ≤ 8− 5, x ∈ {0, 1}4 }+ α1 · 1 ≤ 2
⇔ α1 ≤ 2− 1 = 1
25 / 36
Sequential Up-lifting
. X BK = {x ∈ {0, 1}4 : 5x1 + 6x2 + 2x3 + 2x4 ≤ 8},
. C = {2, 3, 4}∑j∈C
xj ≤ 2 valid for X 0 := X BK ∩ {x ∈ {0, 1}4 : x1 = 0}
(I)∑j∈C
xj + α1x1 ≤ 2 valid for X 1 := X BK
Result: Inequality (I) is valid for X 1 for α1 ≤ 1
25 / 36
Sequential Up-lifting
. (j1, . . . , jt) lifting sequence of the variables in N\C
. X i := X BK ∩ {x ∈ {0, 1}n : xji+1 = . . . = xjt = 0}
∑j∈C
xj ≤ |C| − 1 valid for X 0
∑j∈C
xj + αj1xj1 ≤ |C| − 1 valid for X 1
...∑j∈C
xj +t∑
k=1
αjk xjk ≤ |C| − 1 valid for X t = X BK
. Different lifting sequences may lead to different inequalities!
. Use sequential up- and down-lifting!
26 / 36
Sequential Up-lifting
. (j1, . . . , jt) lifting sequence of the variables in N\C
. X i := X BK ∩ {x ∈ {0, 1}n : xji+1 = . . . = xjt = 0}
∑j∈C
xj ≤ |C| − 1 valid for X 0
∑j∈C
xj + αj1xj1 ≤ |C| − 1 valid for X 1
...∑j∈C
xj +t∑
k=1
αjk xjk ≤ |C| − 1 valid for X t = X BK
. Different lifting sequences may lead to different inequalities!
. Use sequential up- and down-lifting!
26 / 36
Sequential Up- and Down-lifting
TheoremIf C ⊆ N is a minimal cover for X BK and (C1, C2) is any partition of C withC1 6= ∅, then inequality ∑
j∈C1
xj ≤ |C1| − 1
defines a facet of
conv( X BK ∩ {x ∈ {0, 1}n : xj = 0 for all j ∈ N\C,xj = 1 for all j ∈ C2} ).
. Up-lifting: variables in N\C
. Down-lifting: variables in C2
27 / 36
Sequential Up- and Down-lifting
TheoremIf C ⊆ N is a minimal cover for X BK and (C1, C2) is any partition of C withC1 6= ∅, then inequality ∑
j∈C1
xj ≤ |C1| − 1
defines a facet of
conv( X BK ∩ {x ∈ {0, 1}n : xj = 0 for all j ∈ N\C,xj = 1 for all j ∈ C2} ).
. Up-lifting: variables in N\C
. Down-lifting: variables in C2
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 (C1, C2) of C with C1 6= ∅
Step 3 (Lifting)
. Determine a lifting sequence of the variables in N\C1
. Lift the inequality∑
j∈C1xj ≤ |C1| − 1 using sequential up- and down-lifting
28 / 36
Outline
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
29 / 36
Cuts for the 0-1 Single Node Flow Problem0-1 single node flow set
X SNF := {(x , y) ∈ {0, 1}n × Rn+ :
∑j∈N1
yj −∑j∈N2
yj ≤ b,
yj ≤ ujxj for all j ∈ N}
. N = {1, . . . , n}
. (N1, N2) is a partition of N
. b is a rational number
. uj are nonnegative rational numbers for all j ∈ N
y1 ≤ 3x1
y2 ≤ 3x2
y3≤ 3x3
y4 ≤1x4
y5 ≤ 1x5
2
(C1, C2) = ({1, 2}, {4, 5})
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 × Rn+ :
∑j∈N1
yj −∑j∈N2
yj ≤ b,
yj ≤ ujxj for all j ∈ N}
. External demand b
. Inflow arcs N1
. Outflow arcs N2
. Capacities
I uj , if j is open (xj = 1)I 0, if j is closed (xj = 0)
. Flow conservation constraint
I inflow − outflow ≤ demand
y1 ≤ 3x1
y2 ≤ 3x2
y3≤ 3x3
y4 ≤1x4
y5 ≤ 1x5
2
(C1, C2) = ({1, 2}, {4, 5})
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 × Rn+ :
∑j∈N1
yj −∑j∈N2
yj ≤ b,
yj ≤ ujxj for all j ∈ N}
Flow cover:
(C1, C2)
with
. C1 ⊆ N1 and C2 ⊆ N2
.∑j∈C1
uj −∑j∈C2
uj = b + λ
. λ > 0
y1 ≤ 3x1
y2 ≤ 3x2
y3≤ 3x3
y4 ≤1x4
y5 ≤ 1x5
2
(C1, C2) = ({1, 2}, {4, 5})
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 × Rn+ :
∑j∈N1
yj −∑j∈N2
yj ≤ b,
yj ≤ ujxj for all j ∈ N}
Flow cover:
(C1, C2)
with
. C1 ⊆ N1 and C2 ⊆ N2
.∑j∈C1
uj −∑j∈C2
uj = b + λ
. λ > 0
y1 ≤ 3x1
y2 ≤ 3x2
y3≤ 3x3
y4 ≤1x4
y5 ≤ 1x5
2
(C1, C2) = ({1, 2}, {4, 5})
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 × Rn+ :
∑j∈N1
yj −∑j∈N2
yj ≤ b,
yj ≤ ujxj for all j ∈ N}
Flow cover inequalities:
. SGFCI dominated by
I LSGFCII part. c-MIR inequ. for part.
mixed knapsack relaxation
. EGFCI dominated by
I LFCII part. c-MIR inequ. for part.
mixed knapsack relaxation
y1 ≤ 3x1
y2 ≤ 3x2
y3≤ 3x3
y4 ≤1x4
y5 ≤ 1x5
2
(C1, C2) = ({1, 2}, {4, 5})
6− 2 = 2 + 2
30 / 36
Outline of the Separation AlgorithmMixed 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 AlgorithmMixed integer constraints (MIP)
⇓ Transformation
0-1 single node flow constraint
⇓
Bound substitution heuristic
. C1, L1 ⊆ N1\C1: variable ub
. C2, L2 ⊆ N2\C2: variable ub
Mixed knapsack constraint (relaxation of MIP)
⇓
Cut generation heuristic
. δ > λ (→ dom. SGFCI and EGFCI)
. U = C1 ∪ C2
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
1 Complemented Mixed Integer Rounding Cuts
2 Gomory Mixed Integer and Strong Chvátal-Gomory Cuts
3 Implied Bound Cuts
4 Cuts for the 0-1 Knapsack Problem
5 Cuts for the 0-1 Single Node Flow Problem
6 Cuts for the Stable Set Problem
33 / 36
Cuts for the Stable Set Problem“Conflict graph”
G = (V , E)
. V contains a node for each binary variable xi and its complement x̄i
. (xi , xj) ∈ E ⇔ In any feas sol, xi and xj cannot be 1 at the same time
x1
x1
x̄1
x̄1
x2
x2x2
x̄2
x3
x̄3
x̄3
x4
x4
x̄4
x1 + x2 + x̄3 ≤ 1
34 / 36
Cuts for the Stable Set Problem
“Conflict graph”
G = (V , E)
x1
x1
x̄1
x̄1
x2
x2x2
x̄2
x3
x̄3
x̄3
x4
x4
x̄4
x1 + x2 + x̄3 ≤ 1
34 / 36
Cuts for the Stable Set Problem
“Conflict graph”
G = (V , E)
Stable set:S ⊆ V
with
. u, v ∈ S ⇒ (u, v) /∈ E
Relaxation of the MIP:
. Each feas sol corresponds toa stable set in the conflict graph
⇒ Stable set polytope isa relaxation of the feas region
x1
x1 x̄1
x̄1
x2
x2
x2
x̄2
x3
x̄3
x̄3
x4
x4 x̄4
x1 + x2 + x̄3 ≤ 1
34 / 36
Cuts for the Stable Set Problem
“Conflict graph”
G = (V , E)
Clique:C ⊆ V
with
. u, v ∈ S ⇒ (u, v) ∈ E
Clique inequality:∑j∈C
xj ≤ 1
x1
x1 x̄1
x̄1
x2x2
x2
x̄2
x3
x̄3
x̄3
x4
x4
x̄4
x1 + x2 + x̄3 ≤ 1
34 / 36
Cuts for the Stable Set Problem
“Conflict graph”
G = (V , E)
Separation algo:
. Branch-and-bound algo for themaximum weighted clique problem
x1
x1 x̄1
x̄1
x2x2
x2
x̄2
x3
x̄3
x̄3
x4
x4
x̄4
x1 + x2 + x̄3 ≤ 1
34 / 36
Two Classes of Cuts
General cuts
. Complemented mixed integerrounding cuts
. Gomory mixed integer cuts
. Strong Chvátal-Gomory cuts
. Implied bound cuts
Problem specific cuts
. 0-1 knapsack problem
. 0-1 single node flow problem
. Stable set problem
35 / 36
Cutting Plane Separators in SCIP
Kati WolterZuse Institute Berlin
DFG Research Center MATHEONMathematics for key technologies
36 / 36