Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg 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
3 Example a sub problem is infeasible x 1 = 1 x 2 = 0 x 3 = 0 c1:c1: x1x1 – x 2 – x 3 0 c2:c2: x1x1 + x 2 – x 3 1
4 Example a sub problem is infeasible conflict analysis yields feasible constraint, that cuts off other nodes in the tree x 1 = 1 x 2 = 0 x 3 = 0 c1:c1: x1x1 – x 2 – x 3 0 c2:c2: x1x1 + x 2 – x 3 1 c3:c3: x1x1 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 x 1,...,x n {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:C1: l 11 ... l 1k 1... Cm:Cm:l n1 ... l mk m with literals l ik = x j or l ik = x j = 1 – x j
8 Binary Constraint Propagation clause:
9 Binary Constraint Propagation clause: fixings:
10 Binary Constraint Propagation clause: fixings: deduction:
11 Conflict Graph decision variables deduced variables conflict
12 Conflict Graph decision variables deduced variables conflict conflict detecting clause
13 Conflict Graph – Conflict Cuts choose cut that separates decision variables from conflict vertex
14 Conflict Graph – Conflict Cuts reason sideconflict side choose cut that separates decision variables from conflict vertex
15 Conflict Graph – Conflict Cuts reason sideconflict side choose cut that separates decision variables from conflict vertex conflict clause:
16 Conflict Graph – Trivial Cuts -cut: decision cut:
17 Conflict Graph – First-UIP Unique Implication Point: lies on all paths from the last decision vertex to the conflict vertex
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)
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:
20 Conflict Analysis Algorithm (FUIP) BCP detected a conflict
21 Conflict Analysis Algorithm (FUIP) Initialize conflict queue with the variables involved in the conflict
22 Conflict Analysis Algorithm (FUIP) Initialize conflict queue with the variables involved in the conflict
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
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
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
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
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
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
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
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
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
32 Conflict Analysis Algorithm (FUIP) If there is only one variable of the last depth level left, stop
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
34 Conflict Analysis Algorithm (FUIP) The conflict clause consists of all (negated) assignments in the conflict set:
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 maxcTxcTx s.t. Ax b x R p Z q
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 the conflict Only a few variables linked to the conflict vertex 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
44 Infeasible LP: Conflict Graph LP analysis selects some of these local bounds
45 Infeasible LP: Conflict Graph LP analysis selects some of these bounds cut yields conflict constraint
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: maxcTxcTx s.t. Ax b 0 x u local bounds
48 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0
49 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: dual ray: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0 (y *, r * ) 0, A T y * + r * = 0, b T y * + T r * < 0
50 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: dual ray: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0 (y *, r * ) 0, A T y * + r * = 0, b T y * + T r * < 0
51 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: dual ray: relax bounds: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0 (y *, r * ) 0, A T y * + r * = 0, b T y * + T r * < 0 i := u i, s.t. still b T y * + T r * < 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/MittelCPLEX 9.03SCIPSCIP + ConfA Nodes Node Winner5517 Time Time Winner11126 Infeas. ALUCPLEX 9.03SCIPSCIP + ConfA Nodes Node Winner4015 Time Time Winner7012
55 Computational Results MIPLIB/MittelSCIPSCIP + ConfA Nodes Node Winner522 Time – Basic – Switching – Conflict–40.7 Time Winner1711
56 Computational Results ALU Prop #1 NodesTime SCIP+ CASCIP+ CA 4 Bits Bits Bits Bits Bits Bits Bits
57 Computational Results ALU Prop #7 NodesTime SCIP+ CASCIP+ CA 4 Bits Bits Bits Bits Bits Bits> > Bits> > >3600.0
58 Computational Results (new) MIPLIB/MittelSCIPSCIP + ConfA Nodes Node Winner819 Time – Basic – Switching – Conflict–8.2 Time Winner1513