# Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis SCIP Workshop at ZIB October 2007.

## Presentation on theme: "Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis SCIP Workshop at ZIB October 2007."— Presentation transcript:

Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg achterberg@zib.de Conflict Analysis SCIP Workshop at ZIB October 2007

2 General 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 subproblem 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 subproblem 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  Implementation  Computational Results

6 Outline  Conflict Analysis in SAT  Conflict Analysis in MIP  Implementation  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  Implementation  Computational Results

36 Outline  Conflict Analysis in SAT  deductions lead to conflict  conflict graph  cut in conflict graph  conflict clause  Conflict Analysis in MIP  Implementation  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  Implementation  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  Implementation  Computational Results conflict graph

54 Implementation  Which pruned subproblems should be analyzed?  propagation conflictsyes  infeasible LP conflictsyes  bound-exceeding LP conflictsno  strong branching conflictsno  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

55 How to Support Conflict Analysis in User Plugins  affected plugin types  constraint handlers (propagation)  propagator  special bound inference methods for propagation  SCIPinferVarLbCons(), SCIPinferVarUbCons()  SCIPinferVarLbProp(), SCIPinferVarUbProp()  provide constraint and one additional integer („inferinfo“)  reverse propagation  must provide the „reason“ for a bound deduction  can use the inferinfo to help finding the reason

56 Reverse Propagation  input: constraint and tightened bound  deduced

57 Reverse Propagation  input: constraint and tightened bound  deduced  output: bounds that are reason for deduction  and

58 Reverse Propagation: Examples  set covering constraints  only one type of propagation  reverse propagation easy: all variables except the inferred variable are reason variables

59  set covering constraints  only one type of propagation  reverse propagation easy: all variables except the inferred variable are reason variables  linear constraints  propagation of left and right hand side  inferinfo: array position of inferred variable and lhs/rhs indicator  reverse propagation: find set of variables j  k with bounds that trigger the deduction Reverse Propagation: Examples

60 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  Implementation  Computational Results conflict graph

61 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  Implementation  Computational Results conflict graph

62 Computational Results 47 instancesCPLEX 10.0SCIPSCIP + ConfA Fails533 Nodes13 42918 19214 507 Node Winner(24)14 (7)27 (17) Time65.1134.7116.5 Time Winner(33)16 (4)25 (11)  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 nodes: -20%time: -14%

63 Computational Results 21 instancesCPLEX 10.0SCIPSCIP + ConfA Fails011 Nodes35 6576 272910 Node Winner(7)0 (3)16 (14) Time23.429.912.7 Time Winner(12)1 (4)16 (9)  ALU instances up to 8 bits  for which one of the three needed at least 1000 nodes  infeasible MIP instances nodes: -85%time: -58%

64 Computational Results 6 instancesCPLEX 10.0SCIPSCIP + ConfA Fails100 Nodes50 17670 21615 774 Node Winner006 Time22.232.313.1 Time Winner(4)0 (0)5 (2)  "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 nodes: -78%time: -59%

65 Computational Results SCIP + ConfA 1 857 512 5.2 hours  full conflict analysis (bound-exceeding LPs and strong branchings) SCIP Nodes5 054 427 Time11.4 hours  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

66 Computational Results

67 Computational Results

68 Computational Results SCIPSCIP + ConfA Nodes9 104 0844 139 860 Time20.0 hours10.3 hours  instance „roll3000" from MIPLIB 2003  SCIP:  using an insane amount of strong branching  moderate conflict analysis  3.2GHz Pentium-IV  Unfortunately...  XPressMP 2006B with tuned settings: 1 hour (3 GHz Athlon-64)  Reported by Alkis Vazacopoulos (ISMP 2006)  As far as I understood: lots of local cuts

Download ppt "Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis SCIP Workshop at ZIB October 2007."

Similar presentations