Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg [email protected]...

58
[email protected] Tobias Achterberg Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Conflict Analysis in Mixed Integer Programming
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg [email protected]...

Page 1: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

[email protected] Achterberg

Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB)

Conflict Analysisin Mixed Integer

Programming

Page 2: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

2

Main Idea

Problem is divided into smaller subproblems branching tree

Some subproblems are infeasible

Analyzing the infeasibilities can yield information about the problem

Information can be used at other subproblems to prune the search tree

Page 3: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

3

Example

a sub problem is infeasible

x1 = 1

x2 = 0

x3 = 0

c1: x1 – x2 – x3 0

c2: x1 + x2

– x3 1

Page 4: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

4

Example

a sub problem is infeasible

conflict analysis yields feasible constraint, that cuts off other nodes in the tree

x1 = 1

x2 = 0

x3 = 0

c1: x1 – x2 – x3 0

c2: x1 + x2

– x3 1

c3: x1 – x3 0

Page 5: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

5

Outline

Conflict Analysis in SAT

Conflict Analysis in MIP

Computational Results

Page 6: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

6

Outline

Conflict Analysis in SAT

Conflict Analysis in MIP

Computational Results

Page 7: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

7

Boolean variables x1,...,xn {0,1}

Clauses

Task: find assignment x* {0,1}n that satisfies all

clauses, or prove that no such assignment exists

Satisfiability Problem (SAT)

C1: l11 ... l1k1

...

Cm: ln1 ... lmkm

with literalslik = xj or lik =xj = 1 – xj

Page 8: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

8

Binary Constraint Propagation

clause: 6 7 9 10x x x x

Page 9: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

9

Binary Constraint Propagation

clause:

fixings:

6x

7x

9x

6 7 9 10x x x x

6 7 90, 1, 0x x x

Page 10: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

10

Binary Constraint Propagation

clause:

fixings:

deduction:

6x

7x

9x

10x

6 7 9 10x x x x

6 7 90, 1, 0x x x

6 7 9 10x x x x

Page 11: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

11

Conflict Graph

decision variables

deduced variables

conflict

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

6 7 9 10x x x x

Page 12: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

12

Conflict Graph

decision variables

deduced variables

conflict

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

13 14 15x x x conflict detecting clause

Page 13: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

13

Conflict Graph – Conflict Cuts

choose cut that separates decision variables from conflict vertex

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

Page 14: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

14

Conflict Graph – Conflict Cuts

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

reason side conflict side

choose cut that separates decision variables from conflict vertex

Page 15: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

15

Conflict Graph – Conflict Cuts

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

reason side conflict side

choose cut that separates decision variables from conflict vertex

conflict clause: 6 7 8 12x x x x

Page 16: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

16

Conflict Graph – Trivial Cuts

-cut:

decision cut:

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

13 14 15x x x

1 4 6 8x x x x

Page 17: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

17

Conflict Graph – First-UIP

Unique Implication Point: lies on all paths from the last decision vertex to the conflict vertex

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

Page 18: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

18

Conflict Graph – First-UIP

Unique Implication Point: lies on all paths from the last decision vertex to the conflict vertex

First UIP: the UIP closest to (except itself)

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

Page 19: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

19

Conflict Graph – First-UIP Cut

Put all vertices fixed after First-UIP to the conflict side, remaining vertices to the reason side

First-UIP cut:

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

3 11x x

Page 20: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

20

Conflict Analysis Algorithm (FUIP)

BCP detected a conflict

Page 21: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

21

Conflict Analysis Algorithm (FUIP)

Initialize conflict queue with the variables involved in the conflict

13x

14x

15x

13 14 15x x x

Page 22: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

22

Conflict Analysis Algorithm (FUIP)

Initialize conflict queue with the variables involved in the conflict

13x

14x

15x

Page 23: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

23

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

13x

14x

15x

Page 24: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

24

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

12x

13x

14x

15x

12 15x x

Page 25: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

25

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

12x

13x

14x

15x

Page 26: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

26

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

11x

12x

13x

14x

15x

11 14x x

Page 27: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

27

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

11x

12x

13x

14x

15x

Page 28: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

28

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

11x

12x

13x

14x

15x

11 14x x

Page 29: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

29

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

11x

12x

13x

14x

15x

Page 30: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

30

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

3x

11x

12x

13x

14x

15x

3 11 12x x x

Page 31: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

31

Conflict Analysis Algorithm (FUIP)

As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

3x

11x

12x

13x

14x

15x

Page 32: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

32

Conflict Analysis Algorithm (FUIP)

If there is only one variable of the last depth level left, stop

3x

11x

12x

13x

14x

15x

Page 33: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

33

Conflict Analysis Algorithm (FUIP)

If there is only one variable of the last depth level left, stop

The remaining variables define the conflict set

3x

11x

12x

13x

14x

15x

Page 34: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

34

Conflict Analysis Algorithm (FUIP)

The conflict clause consists of all (negated) assignments in the conflict set:

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

113xx

Page 35: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

35

Outline

Conflict Analysis in SAT deductions lead to conflict conflict graph

cut in conflict graph conflict clause

Conflict Analysis in MIP

Computational Results

Page 36: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

36

Outline

Conflict Analysis in SAT deductions lead to conflict conflict graph

cut in conflict graph conflict clause

Conflict Analysis in MIP

Computational Results

Page 37: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

37

linear objective function c

linear constraints Ax b

real or integer valued variables x

Mixed Integer Program

max

cTx

s.t. Ax b

x RpZq

Page 38: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

38

Two main differences to SAT:

non-binary variables conflict graph: bound changes instead of fixings

conflict clause conflict constraint

Conflict Analysis for MIP

Page 39: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

39

Two main differences to SAT:

non-binary variables conflict graph: bound changes instead of fixings

conflict clause conflict constraint

Conflict Analysis for MIP

technical issue

Page 40: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

40

Two main differences to SAT:

non-binary variables conflict graph: bound changes instead of fixings

conflict clause conflict constraint

main reason for infeasibility: LP relaxation conflict graph has no link from the decision and

deduction vertices to the conflict vertex

Conflict Analysis for MIP

technical issue

Page 41: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

41

Two main differences to SAT:

non-binary variables conflict graph: bound changes instead of fixings

conflict clause conflict constraint

main reason for infeasibility: LP relaxation conflict graph has no link from the decision and

deduction vertices to the conflict vertex

Conflict Analysis for MIP

technical issue

analyze LP

Page 42: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

42

Back to SAT: Conflict Graph

One clause detected theconflict

Only a few variables linked to the conflict vertex

1x

2x

3x

6x

5x

4x

7x

8x

9x

10x

11x

12x

13x

14x

15x

13 14 15x x x conflict detecting clause

Page 43: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

43

Infeasible LP: Conflict Graph

The LP as a whole is responsible for the conflict

All local bound changes are linked to the conflict vertex

1x

2x

3x

6x

5x

4 5x

7 3x

8x

9x

10x

11 4x

12x

13x

14x

15x

Page 44: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

44

Infeasible LP: Conflict Graph

LP analysis selects some of these local bounds

1x

2x

3x

6x

5x

4 5x

7 3x

8x

9x

10x

11 4x

12x

13x

14x

15x

Page 45: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

45

Infeasible LP: Conflict Graph

LP analysis selects some of these bounds

cut yields conflict constraint

1x

2x

3x

6x

5x

4 5x

7 3x

8x

9x

10x

11 4x

12x

13x

14x

15x

3 5 11( 1) ( 1) ( 3)x x x

Page 46: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

46

Conflict Analysis for infeasible LPs

if the LP relaxation is infeasible, the whole relaxation is involved in the conflict all constraints

all global bounds

all local bounds

try to find a small subset of the local bounds that still leads to an infeasible LP relaxation variant of minimal infeasible subsystem problem

(see Amaldi, Pfetsch, Trotter)

heuristic: use dual ray to relax local bounds

Page 47: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

47

Infeasible LP: Dual Ray Heuristic

LP relaxation:max

cTx

s.t. Ax b

0 x u

local bounds

Page 48: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

48

Infeasible LP: Dual Ray Heuristic

LP relaxation:

dual LP:

max

cTx

s.t. Ax b

0 x u

local bounds

min bTy + Tr

s.t. ATy + r c

y, r 0

Page 49: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

49

Infeasible LP: Dual Ray Heuristic

LP relaxation:

dual LP:

dual ray:

max

cTx

s.t. Ax b

0 x u

local bounds

min bTy + Tr

s.t. ATy + r c

y, r 0

(y*, r*) 0, ATy* + r* = 0, bTy* + Tr* < 0

Page 50: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

50

Infeasible LP: Dual Ray Heuristic

LP relaxation:

dual LP:

dual ray:

max

cTx

s.t. Ax b

0 x u

local bounds

min bTy + Tr

s.t. ATy + r c

y, r 0

(y*, r*) 0, ATy* + r* = 0, bTy* + Tr* < 0

Page 51: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

51

Infeasible LP: Dual Ray Heuristic

LP relaxation:

dual LP:

dual ray:

relax bounds:

max

cTx

s.t. Ax b

0 x u

local bounds

min bTy + Tr

s.t. ATy + r c

y, r 0

(y*, r*) 0, ATy* + r* = 0, bTy* + Tr* < 0

i := ui , s.t. still bTy* + Tr* <

0

Page 52: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

52

Outline

Conflict Analysis in SAT deductions lead to conflict conflict graph

cut in conflict graph conflict clause

Conflict Analysis in MIP deductions lead to infeasible LP

LP analysis links conflict vertex

cut in conflict graph conflict constraint

Computational Results

conflict graph

Page 53: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

53

Outline

Conflict Analysis in SAT deductions lead to conflict conflict graph

cut in conflict graph conflict clause

Conflict Analysis in MIP deductions lead to infeasible LP

LP analysis links conflict vertex

cut in conflict graph conflict constraint

Computational Results

conflict graph

Page 54: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

54

Computational Results

MIPLIB/Mittel

CPLEX 9.03 SCIP SCIP + ConfA

Nodes 41268 29633 15441

Node Winner

5 5 17

Time 202.0 257.2 297.8

Time Winner

11 12 6Infeas. ALU CPLEX 9.03 SCIP SCIP + ConfA

Nodes 322700 110033 12478

Node Winner

4 0 15

Time 157.3 143.1 59.3

Time Winner

7 0 12

Page 55: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

55

Computational Results

MIPLIB/Mittel

SCIP SCIP + ConfA

Nodes 29633 15441

Node Winner

5 22

Time 257.2 297.8

– Basic 246.6 193.7

– Switching 6.2 11.5

– Conflict – 40.7

Time Winner

17 11

Page 56: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

56

Computational Results

ALU Prop #1

Nodes Time

SCIP + CA SCIP + CA

4 Bits 931 82 7.2 5.5

5 Bits 239 33 4.4 3.4

6 Bits 37153 88 48.4 5.7

7 Bits 67555 48 89.0 3.4

8 Bits 24397 31 36.4 3.2

9 Bits 507 51 6.2 4.6

10 Bits 1141285

129 1454.8 6.6

Page 57: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

57

Computational Results

ALU Prop #7

Nodes Time

SCIP + CA SCIP + CA

4 Bits 8033 3384 7.8 5.8

5 Bits 62221 35387 39.0 32.8

6 Bits 280971 142361 160.4 125.2

7 Bits 646307 191595 375.4 166.8

8 Bits 2086829 361196 1304.1 336.6

9 Bits >5209565

2023471 >3600.0

2171.4

10 Bits >3926913

>2789887

>3600.0

>3600.0

Page 58: Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis in Mixed Integer Programming.

58

Computational Results (new)

MIPLIB/Mittel

SCIP SCIP + ConfA

Nodes 31949 21599

Node Winner

8 19

Time 291.5 296.1

– Basic 279.4 234.8

– Switching 7.0 13.9

– Conflict – 8.2

Time Winner

15 13