Title: Conflict Analysis in Mixed Integer Programming
1Conflict Analysisin Mixed Integer Programming
2General 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
3Example
x1 1
c1 x1 x2 x3 ? 0
c2 x1 x2 x3 ? 1
x2 0
x3 0
- a subproblem is infeasible
4Example
x1 1
c1 x1 x2 x3 ? 0
c2 x1 x2 x3 ? 1
x2 0
c3 x1 x3 ? 0
x3 0
- a subproblem is infeasible
- conflict analysis yields feasible constraint,
that cuts off other nodes in the tree
5Outline
- Conflict Analysis in SAT
- Conflict Analysis in MIP
- Implementation
- Computational Results
6Outline
- Conflict Analysis in SAT
- Conflict Analysis in MIP
- Implementation
- Computational Results
7Satisfiability Problem (SAT)
- Boolean variables x1,...,xn ? 0,1
- Clauses
- Task
- find assignment x ? 0,1n that satisfies all
clauses, or prove that no such assignment exists
C1 l11 ? ... ? l1k1
...
Cm ln1 ? ... ? lmkm
with literals lik xj or lik ?xj 1 xj
8Binary Constraint Propagation
9Binary Constraint Propagation
10Binary Constraint Propagation
11Conflict Graph
- decision variables
- deduced variables
- conflict
12Conflict Graph
conflict detecting clause
- decision variables
- deduced variables
- conflict
13Conflict Graph Conflict Cuts
- choose cut that separates decision variables from
conflict vertex
14Conflict Graph Conflict Cuts
reason side
conflict side
- choose cut that separates decision variables from
conflict vertex
15Conflict Graph Conflict Cuts
reason side
conflict side
- choose cut that separates decision variables from
conflict vertex - conflict clause
16Conflict Graph Trivial Cuts
17Conflict Graph First-UIP
- Unique Implication Point lies on all paths from
the last decision vertex to the conflict vertex
18Conflict 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)
19Conflict Graph First-UIP Cut
- Put all vertices fixed after First-UIP to the
conflict side, remaining vertices to the reason
side - First-UIP cut
20Conflict Analysis Algorithm (FUIP)
21Conflict Analysis Algorithm (FUIP)
- Initialize conflict queue with the variables
involved in the conflict
22Conflict Analysis Algorithm (FUIP)
- Initialize conflict queue with the variables
involved in the conflict
23Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
24Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
25Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
26Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
27Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
28Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
29Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
30Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
31Conflict Analysis Algorithm (FUIP)
- As long as there is more than one variable of the
last depth level in the queue, resolve the last
deduction
32Conflict Analysis Algorithm (FUIP)
- If there is only one variable of the last depth
level left, stop
33Conflict Analysis Algorithm (FUIP)
- If there is only one variable of the last depth
level left, stop - The remaining variables define the conflict set
34Conflict Analysis Algorithm (FUIP)
- The conflict clause consists of all (negated)
assignments in the conflict set
35Outline
- Conflict Analysis in SAT
- deductions lead to conflict ? conflict graph
- cut in conflict graph ? conflict clause
- Conflict Analysis in MIP
- Implementation
- Computational Results
36Outline
- Conflict Analysis in SAT
- deductions lead to conflict ? conflict graph
- cut in conflict graph ? conflict clause
- Conflict Analysis in MIP
- Implementation
- Computational Results
37Mixed Integer Program
max cTx
s.t. Ax ? b
x ? Rp?Zq
- linear objective function c
- linear constraints Ax ? b
- real or integer valued variables x
38Conflict Analysis for MIP
- Two main differences to SAT
- non-binary variables
- conflict graph bound changes instead of fixings
- conflict clause ? conflict constraint
39Conflict Analysis for MIP
- Two main differences to SAT
- non-binary variables
- conflict graph bound changes instead of fixings
- conflict clause ? conflict constraint
technical issue
40Conflict Analysis for MIP
- 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
technical issue
41Conflict Analysis for MIP
- 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
technical issue
42Back to SAT Conflict Graph
conflict detecting clause
- One clause detected theconflict
- Only a few variables linked to the conflict vertex
43Infeasible LP Conflict Graph
- The LP as a whole is responsible for the conflict
- All local bound changes are linked to the
conflict vertex
44Infeasible LP Conflict Graph
- LP analysis selects some of these local bounds
45Infeasible LP Conflict Graph
- LP analysis selects some of these bounds
- cut yields conflict constraint
46Conflict 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
47Infeasible LP Dual Ray Heuristic
max cTx
s.t. Ax ? b
0 ? x ? ? ? u
48Infeasible LP Dual Ray Heuristic
max cTx
s.t. Ax ? b
0 ? x ? ? ? u
local bounds
min bTy ?Tr
s.t. ATy r ? c
y, r ? 0
49Infeasible 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 lt 0
50Infeasible 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 lt 0
51Infeasible 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 lt 0
?i ui , s.t. still bTy ?Tr lt 0
52Outline
- 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
- Implementation
- Computational Results
conflict graph
53Outline
- 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
- Implementation
- Computational Results
conflict graph
54Implementation
- Which pruned subproblems should be analyzed?
- propagation conflicts yes
- infeasible LP conflicts yes
- bound-exceeding LP conflicts no
- strong branching conflicts no
- How many conflict constraints per conflict?
- all FUIP constraints 1-FUIP, 2-FUIP, ...
- How should conflict constraints be used?
- only for propagation, not as cutting planes
- How can useless conflict constraints be
identified? - "easy" for SAT due to depth-first-search
- open topic for best-first-search MIP, needs more
ideas! - currently aging mechanism
55Outline
- 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
- Implementation
- Computational Results
conflict graph
56Outline
- 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
- Implementation
- Computational Results
conflict graph
57Computational Results
- Instances of MIPLIB 2003 and Mittelmann
- that could be solved by one of the three in 1
hour - for which one of the three needed at least 1000
nodes
47 instances CPLEX 10.0 SCIP SCIP ConfA
Fails 5 3 3
Nodes 13 429 18 192 14 507
Node Winner (24) 14 (7) 27 (17)
Time 65.1 134.7 116.5
Time Winner (33) 16 (4) 25 (11)
nodes -20 time -14
58Computational Results
- ALU instances up to 8 bits
- for which one of the three needed at least 1000
nodes - infeasible MIP instances
21 instances CPLEX 10.0 SCIP SCIP ConfA
Fails 0 1 1
Nodes 35 657 6 272 910
Node Winner (7) 0 (3) 16 (14)
Time 23.4 29.9 12.7
Time Winner (12) 1 (4) 16 (9)
nodes -85 time -58
59Computational Results
- "Enlight" instances up to board size 10 ? 10
- for which one of the three needed at least 1000
nodes - 2 infeasible and 4 feasible MIP instances
6 instances CPLEX 10.0 SCIP SCIP ConfA
Fails 1 0 0
Nodes 50 176 70 216 15 774
Node Winner 0 0 6
Time 22.2 32.3 13.1
Time Winner (4) 0 (0) 5 (2)
nodes -78 time -59
60Computational Results
- instance "arki001" from MIPLIB 3.0 / MIPLIB 2003
- first solved by Balas and Saxena (Dec 2005)
- "Optimizing over the Split Closure"
- 54 hours rank-1 split cut generation 11 hours
CPLEX 9.0 - Bob-tuned CPLEX
- "using a lot of strong branching"
- 628 hours, 103 million nodes
- SCIP
- using an insane amount of strong branching
- full conflict analysis (bound-exceeding LPs and
strong branchings)
SCIP ConfA
1 857 512
5.2 hours
SCIP
Nodes 5 054 427
Time 11.4 hours
61Computational Results
62Computational Results
63Computational Results
- instance roll3000" from MIPLIB 2003
- SCIP
- using an insane amount of strong branching
- moderate conflict analysis
- 3.2GHz Pentium-IV
SCIP SCIP ConfA
Nodes 9 104 084 4 139 860
Time 20.0 hours 10.3 hours
- Unfortunately...
- XPressMP 2006B with tuned settings 1 hour (3 GHz
Athlon-64) - Reported yesterday by Alkis Vazacopoulos
- As far as I understood lots of local cuts