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

cutting plane separators in scip
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Cutting Plane Separators in SCIP

Kati Wolter

Zuse Institute Berlin

DFG Research Center MATHEON Mathematics for key technologies

1 / 36

slide-2
SLIDE 2

General Cutting Plane Method

MIP

min{cTx : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b}

2 / 36

slide-3
SLIDE 3

General Cutting Plane Method

MIP

min{cTx : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b} Observation ⊲ If the data are rational, then

◮ conv(X MIP) is a rational polyhedron ◮ we can formulate the MIP as

min{cTx : x ∈ conv(X MIP)}

  • LP

2 / 36

slide-4
SLIDE 4

General Cutting Plane Method

MIP

min{cTx : 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 describe conv(X MIP) is extremely large

2 / 36

slide-5
SLIDE 5

General Cutting Plane Method

MIP

min{cTx : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b} Idea ⊲ Construct a polyhedron Q with

◮ conv(X MIP) ⊆ Q ⊆ X LP ◮ min{cTx : x ∈ conv(X MIP)}

= min{cTx : x ∈ Q}

2 / 36

slide-6
SLIDE 6

General Cutting Plane Method

MIP

min{cTx : x ∈ X MIP}, X MIP := {x ∈ Zn × Rm : Ax ≤ b} Idea ⊲ Construct a polyhedron Q with

◮ conv(X MIP) ⊆ Q ⊆ X LP ◮ min{cTx : x ∈ conv(X MIP)}

= min{cTx : x ∈ Q} Start with X LP and add inequalities which are valid for X MIP (but violated by the current LP solution)

2 / 36

slide-7
SLIDE 7

Main Solving Loop

Domain Propagation Solve LP Pricing Separation Domain Propagation LP Solving Constraint Enforcement

3 / 36

slide-8
SLIDE 8

Two Classes of Cuts

General cuts

⊲ Complemented mixed integer rounding 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

slide-9
SLIDE 9

Two Classes of Cuts

General cuts

⊲ Complemented mixed integer rounding 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

slide-10
SLIDE 10

Two Classes of Cuts

General cuts

⊲ Complemented mixed integer rounding 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

slide-11
SLIDE 11

Two Classes of Cuts

General cuts

⊲ Complemented mixed integer rounding 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

slide-12
SLIDE 12

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

5 / 36

slide-13
SLIDE 13

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

slide-14
SLIDE 14

Constraint Handler or Separator?

Type of cuts? Separator GMI Can your cons be expressed by a “small” nr. of existing cons types? General cuts Problem specific cuts

6 / 36

slide-15
SLIDE 15

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 process your cons in a more efficient way? Constraint handler LOP General cuts Problem specific cuts Yes No

6 / 36

slide-16
SLIDE 16

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 process your 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

slide-17
SLIDE 17

Some Remarks

⊲ By default, only globally valid cuts are generated.

FREQ = 0 and SEPAFREQ = 0

⊲ Cuts are generated in rounds.

MAXROUNDSROOT

⊲ Cuts are first selected in a separation storage.

7 / 36

slide-18
SLIDE 18

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er

8 / 36

slide-19
SLIDE 19

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er ⊲ Orthogonality with respect to the other cuts

  • r

8 / 36

slide-20
SLIDE 20

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er ⊲ Orthogonality with respect to the other cuts

  • r

⊲ Parallelism with respect to the objective function pr

8 / 36

slide-21
SLIDE 21

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er ⊲ Orthogonality with respect to the other cuts

  • r

⊲ Parallelism with respect to the objective function pr ⇒ Select cuts with largest value of er + wo ∗ or + wp ∗ pr

8 / 36

slide-22
SLIDE 22

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er ⊲ Orthogonality with respect to the other cuts

  • r

⊲ Parallelism with respect to the objective function pr ⇒ Select cuts with largest value of er + 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

slide-23
SLIDE 23

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er ⊲ Orthogonality with respect to the other cuts

  • r

⊲ Parallelism with respect to the objective function pr ⇒ Select cuts with largest value of er + wo ∗ or + wp ∗ pr Weights of the criteria can be adjusted ⊲ ORTHOFAC = 1.0 ⊲ OBJPARALFAC = 0.0001

8 / 36

slide-24
SLIDE 24

Cut Selection Strategy

⊲ Efficacy, i.e., distance of the hyperplane to the LP sol er ⊲ Orthogonality with respect to the other cuts

  • r

⊲ Parallelism with respect to the objective function pr ⇒ Select cuts with largest value of er + wo ∗ or + wp ∗ pr Other useful parameters ⊲ MINEFFICACYROOT = 0.01 ⊲ MAXCUTSROOT = 2000

8 / 36

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

MIR Inequality

Elementary mixed integer set

X := {(x, s) ∈ Z × R : x ≤ a0 + s (I) s ≥ 0 (II)} s x a0 X (I) (II)

11 / 36

slide-28
SLIDE 28

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 to describe conv(X). s x a0 conv(X) (I) (II)

11 / 36

slide-29
SLIDE 29

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 it is also valid for X 1 ∪ X 2. s x a0 conv(X) (I) (II)

11 / 36

slide-30
SLIDE 30

MIR Inequality

Elementary mixed integer set

X := {(x, s) ∈ Z × R : x ≤ a0 + s (I) s ≥ 0 (II)} Here X 1 := X ∩ {(x, s) : x ≥ ⌈a0⌉ (III)} X 2 := X ∩ {(x, s) : x ≤ ⌊a0⌋ (IV)} s x a0 (I) (II) (III) (IV)

11 / 36

slide-31
SLIDE 31

MIR Inequality

Elementary mixed integer set

X := {(x, s) ∈ Z × R : x ≤ a0 + s (I) s ≥ 0 (II)} Here X 1 := X ∩ {(x, s) : x ≥ ⌈a0⌉ (III)} X 2 := X ∩ {(x, s) : x ≤ ⌊a0⌋ (IV)} Inequality valid for X 1 and X 2 x ≤ ⌊a0⌋ + s 1 − fa0

  • (I)+fa0(III) and (II)+(1−fa0)(IV)

(fa0 := a0 − ⌊a0⌋) s x a0 (I) (II) (III) (IV)

11 / 36

slide-32
SLIDE 32

MIR Inequality

Elementary mixed integer set

X := {(x, s) ∈ Z × R : x ≤ a0 + s (I) s ≥ 0 (II)} Here X 1 := X ∩ {(x, s) : x ≥ ⌈a0⌉ (III)} X 2 := X ∩ {(x, s) : x ≤ ⌊a0⌋ (IV)} Inequality valid for X 1 ∪ X 2 = X x ≤ ⌊a0⌋ + s 1 − fa0

  • MIR inequality

(fa0 := a0 − ⌊a0⌋) s x a0 conv(X) (I) (II) MIR

11 / 36

slide-33
SLIDE 33

C-MIR Inequality

Mixed 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

12 / 36

slide-34
SLIDE 34

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 → R d → Fα(d) := ⌊d⌋ + (fd−α)+

1−α

⊲ 0 ≤ α < 1 ⊲ fd := d − ⌊d⌋ ⊲ d+ := max{d, 0} d Fα(d) −1 1 2 3 α 1 2 3

12 / 36

slide-35
SLIDE 35

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 ≤ ⌊a0⌋ + s 1 − fa0 d Fα(d) −1 1 2 3 α 1 2 3

12 / 36

slide-36
SLIDE 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 ≤ ⌊a0⌋ + s 1 − fa0 C-MIR inequality ⊲ Divide cons by δ ∈ Q+\{0} ⊲ Complement int vars (xj = bj − ¯ xj) ⊲ MIR inequality d Fα(d) −1 1 2 3 α 1 2 3

12 / 36

slide-37
SLIDE 37

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0

13 / 36

slide-38
SLIDE 38

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

13 / 36

slide-39
SLIDE 39

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2 For δ = 1

13 / 36

slide-40
SLIDE 40

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2 For δ = 1 ⊲ f 11

2 = 11

2 −

11

2

  • = 1

2

13 / 36

slide-41
SLIDE 41

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2 For δ = 1 ⊲ f 11

2 = 11

2 −

11

2

  • = 1

2

d F 1

2 (d)

−1 1 2

1 2

1 2

13 / 36

slide-42
SLIDE 42

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

For δ = 1 ⊲ f 11

2 = 11

2 −

11

2

  • = 1

2

d F 1

2 (d)

−1 1 2

1 2

1 2

13 / 36

slide-43
SLIDE 43

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

For δ = 4, x1 = 2 − ¯ x1

13 / 36

slide-44
SLIDE 44

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

For δ = 4, x1 = 2 − ¯ x1 ⊲ − 1

4 ¯

x1 + x2 ≤ 7

8 + 1 4s

13 / 36

slide-45
SLIDE 45

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

For δ = 4, x1 = 2 − ¯ x1 ⊲ − 1

4 ¯

x1 + x2 ≤ 7

8 + 1 4s

⊲ f 7

8 = 7

8 −

7

8

  • = 7

8

13 / 36

slide-46
SLIDE 46

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

For δ = 4, x1 = 2 − ¯ x1 ⊲ − 1

4 ¯

x1 + x2 ≤ 7

8 + 1 4s

⊲ f 7

8 = 7

8 −

7

8

  • = 7

8

d F 7

8 (d)

−1 1 2

7 8

1 2

13 / 36

slide-47
SLIDE 47

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

−1¯ x1 + 1x2 ≤ 0 + 2s For δ = 4, x1 = 2 − ¯ x1 ⊲ − 1

4 ¯

x1 + x2 ≤ 7

8 + 1 4s

⊲ f 7

8 = 7

8 −

7

8

  • = 7

8

d F 7

8 (d)

−1 1 2

7 8

1 2

13 / 36

slide-48
SLIDE 48

Example

  • j∈N

ajxj ≤ a0 + s

  • j∈N

Ffa0 (aj)xj ≤ ⌊a0⌋ + s 1 − fa0 1x1 + 4x2 ≤ 11

2 + s

Bounds: x1, x2 ≤ 2

  • 1x1 + 4x2 ≤ 5 + 2s

1x1 + 1x2 ≤ 2 + 2s For δ = 4, x1 = 2 − ¯ x1 ⊲ − 1

4 ¯

x1 + x2 ≤ 7

8 + 1 4s

⊲ f 7

8 = 7

8 −

7

8

  • = 7

8

d F 7

8 (d)

−1 1 2

7 8

1 2

13 / 36

slide-49
SLIDE 49

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

slide-50
SLIDE 50

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

slide-51
SLIDE 51

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

slide-52
SLIDE 52

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

slide-53
SLIDE 53

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

slide-54
SLIDE 54

GMI and Strong CG cuts

Gomory mixed integer (GMI) inequalities

⊲ Equivalent to MIR inequalities ⊲ Pure integer case: dominate CG inequalities

17 / 36

slide-55
SLIDE 55

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

slide-56
SLIDE 56

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

slide-57
SLIDE 57

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

slide-58
SLIDE 58

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

slide-59
SLIDE 59

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

slide-60
SLIDE 60

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

slide-61
SLIDE 61

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

slide-62
SLIDE 62

Implied Bound Cuts

Logical implication Implied bound cut x = 0 → y ≤ b y ≤ (u − b)x + b =

  • b

: x = 0 u : x = 1

  • 22 / 36
slide-63
SLIDE 63

Implied Bound Cuts

Logical implication Implied bound cut x = 0 → y ≤ b y ≤ (u − b)x + b =

  • b

: x = 0 u : x = 1

  • x = 0 → y ≥ b

y ≥ (l − b)x + b =

  • b

: x = 0 l : x = 1

  • 22 / 36
slide-64
SLIDE 64

Implied Bound Cuts

Logical implication Implied bound cut x = 0 → y ≤ b y ≤ (u − b)x + b =

  • b

: x = 0 u : x = 1

  • x = 0 → y ≥ b

y ≥ (l − b)x + b =

  • b

: x = 0 l : x = 1

  • x = 1 → y ≤ b

y ≤ (b − u)x + u =

  • u

: x = 0 b : x = 1

  • 22 / 36
slide-65
SLIDE 65

Implied Bound Cuts

Logical implication Implied bound cut x = 0 → y ≤ b y ≤ (u − b)x + b =

  • b

: x = 0 u : x = 1

  • x = 0 → y ≥ b

y ≥ (l − b)x + b =

  • b

: x = 0 l : x = 1

  • x = 1 → y ≤ b

y ≤ (b − u)x + u =

  • u

: x = 0 b : x = 1

  • x = 1 → y ≥ b

y ≥ (b − l)x + l = l : x = 0 b : x = 1

  • 22 / 36
slide-66
SLIDE 66

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

slide-67
SLIDE 67

Cuts for the 0-1 Knapsack Problem

0-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

24 / 36

slide-68
SLIDE 68

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

24 / 36

slide-69
SLIDE 69

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}

24 / 36

slide-70
SLIDE 70

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}

24 / 36

slide-71
SLIDE 71

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 ≤ 2 defines a facet of conv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})

24 / 36

slide-72
SLIDE 72

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 minimal cover inequalities ⊲ 5x1 + 6x2 + 2x3 + 2x4 ≤ 8 ⊲ Minimal cover: C = {2, 3, 4} ⊲ x2 + x3 + x4 ≤ 2 defines a facet of conv(X BK ∩ {x ∈ {0, 1}4 : x1 = 0})

24 / 36

slide-73
SLIDE 73

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

slide-74
SLIDE 74

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

25 / 36

slide-75
SLIDE 75

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

slide-76
SLIDE 76

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

25 / 36

slide-77
SLIDE 77

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

25 / 36

slide-78
SLIDE 78

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

slide-79
SLIDE 79

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

slide-80
SLIDE 80

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

26 / 36

slide-81
SLIDE 81

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

slide-82
SLIDE 82

Sequential Up- and Down-lifting

Theorem

If C ⊆ N is a minimal cover for X BK and (C1, C2) is any partition of C with C1 = ∅, 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} ).

27 / 36

slide-83
SLIDE 83

Sequential Up- and Down-lifting

Theorem

If C ⊆ N is a minimal cover for X BK and (C1, C2) is any partition of C with C1 = ∅, 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

slide-84
SLIDE 84

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 = ∅ Step 3 (Lifting) ⊲ Determine a lifting sequence of the variables in N\C1 ⊲ Lift the inequality

j∈C1 xj ≤ |C1| − 1 using sequential up- and down-lifting

28 / 36

slide-85
SLIDE 85

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

slide-86
SLIDE 86

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} ⊲ N = {1, . . . , n} ⊲ (N1, N2) is a partition of N ⊲ b is a rational number ⊲ uj are nonnegative rational numbers for all j ∈ N

30 / 36

slide-87
SLIDE 87

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

◮ uj, if j is open (xj = 1) ◮ 0, if j is closed (xj = 0)

⊲ Flow conservation constraint

◮ inflow − outflow ≤ demand

y1 ≤ 3x1 y2 ≤ 3x2 y3 ≤ 3x3 y4 ≤ 1x4 y5 ≤ 1x5 2

30 / 36

slide-88
SLIDE 88

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

30 / 36

slide-89
SLIDE 89

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

slide-90
SLIDE 90

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

◮ LSGFCI ◮ part. c-MIR inequ. for part.

mixed knapsack relaxation ⊲ EGFCI dominated by

◮ LFCI ◮ 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

slide-91
SLIDE 91

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

slide-92
SLIDE 92

Outline of the Separation Algorithm

Mixed 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

slide-93
SLIDE 93

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

slide-94
SLIDE 94

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

slide-95
SLIDE 95

Cuts for the Stable Set Problem

“Conflict graph”

G = (V, E) ⊲ V contains a node for each binary variable xi and its complement ¯ xi ⊲ (xi, xj) ∈ E ⇔ In any feas sol, xi and xj cannot be 1 at the same time

34 / 36

slide-96
SLIDE 96

Cuts for the Stable Set Problem

“Conflict graph”

G = (V, E) x1 ¯ x1 x2 ¯ x2 x3 ¯ x3 x4 ¯ x4

34 / 36

slide-97
SLIDE 97

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 to a stable set in the conflict graph ⇒ Stable set polytope is a relaxation of the feas region x1 ¯ x1 x2 ¯ x2 x3 ¯ x3 x4 ¯ x4

34 / 36

slide-98
SLIDE 98

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 x2 ¯ x2 x3 ¯ x3 x4 ¯ x4 x1 + x2 + ¯ x3 ≤ 1

34 / 36

slide-99
SLIDE 99

Cuts for the Stable Set Problem

“Conflict graph”

G = (V, E) Separation algo: ⊲ Branch-and-bound algo for the maximum weighted clique problem x1 ¯ x1 x2 ¯ x2 x3 ¯ x3 x4 ¯ x4 x1 + x2 + ¯ x3 ≤ 1

34 / 36

slide-100
SLIDE 100

Two Classes of Cuts

General cuts

⊲ Complemented mixed integer rounding 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

slide-101
SLIDE 101

Cutting Plane Separators in SCIP

Kati Wolter

Zuse Institute Berlin

DFG Research Center MATHEON Mathematics for key technologies

36 / 36