konrad-zuse-zentrum für informationstechnik berlin (zib) tobias achterberg [email protected]...
Post on 21-Dec-2015
218 views
TRANSCRIPT
[email protected] Achterberg
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB)
Conflict Analysisin 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
3
Example
a sub problem is infeasible
x1 = 1
x2 = 0
x3 = 0
c1: x1 – x2 – x3 0
c2: x1 + x2
– x3 1
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
5
Outline
Conflict Analysis in SAT
Conflict Analysis in MIP
Computational Results
6
Outline
Conflict Analysis in SAT
Conflict Analysis in MIP
Computational Results
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
8
Binary Constraint Propagation
clause: 6 7 9 10x x x x
9
Binary Constraint Propagation
clause:
fixings:
6x
7x
9x
6 7 9 10x x x x
6 7 90, 1, 0x x x
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
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
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
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
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
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
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
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
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
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
20
Conflict Analysis Algorithm (FUIP)
BCP detected a conflict
21
Conflict Analysis Algorithm (FUIP)
Initialize conflict queue with the variables involved in the conflict
13x
14x
15x
13 14 15x x x
22
Conflict Analysis Algorithm (FUIP)
Initialize conflict queue with the variables involved in the conflict
13x
14x
15x
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
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
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
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
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
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
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
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
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
32
Conflict Analysis Algorithm (FUIP)
If there is only one variable of the last depth level left, stop
3x
11x
12x
13x
14x
15x
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
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
35
Outline
Conflict Analysis in SAT deductions lead to conflict conflict graph
cut in conflict graph conflict clause
Conflict Analysis in MIP
Computational Results
36
Outline
Conflict Analysis in SAT deductions lead to conflict conflict graph
cut in conflict graph conflict clause
Conflict Analysis in MIP
Computational Results
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
38
Two main differences to SAT:
non-binary variables conflict graph: bound changes instead of fixings
conflict clause conflict constraint
Conflict Analysis for MIP
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
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
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
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
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
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
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
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
47
Infeasible LP: Dual Ray Heuristic
LP relaxation:max
cTx
s.t. Ax b
0 x u
local bounds
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
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
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
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
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
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
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
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
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
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
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