conflict analysis in mixed integer programming

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

Upload: tyson

Post on 01-Feb-2016

24 views

Category:

Documents


0 download

DESCRIPTION

Conflict Analysis in Mixed Integer Programming. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Conflict Analysis in Mixed Integer Programming

[email protected] Achterberg

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

Conflict Analysisin Mixed Integer

Programming

Page 2: 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: 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: 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: Conflict Analysis in Mixed Integer Programming

5

Outline

Conflict Analysis in SAT

Conflict Analysis in MIP

Computational Results

Page 6: Conflict Analysis in Mixed Integer Programming

6

Outline

Conflict Analysis in SAT

Conflict Analysis in MIP

Computational Results

Page 7: 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: Conflict Analysis in Mixed Integer Programming

8

Binary Constraint Propagation

clause: 6 7 9 10x x x x

Page 9: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: Conflict Analysis in Mixed Integer Programming

20

Conflict Analysis Algorithm (FUIP)

BCP detected a conflict

Page 21: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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