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

Slides:



Advertisements
Similar presentations
Mixed integer linear programming
Advertisements

DMOR Branch and bound. Integer programming Modelling logical constraints and making them linear: – Conjuction – Disjunction – Implication – Logical constraints.
Max Cut Problem Daniel Natapov.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View SAT.
EE 553 Integer Programming
Abstract Answer Set Solver. Todolist Print the rules of Fig 1.
Lecture 10: Integer Programming & Branch-and-Bound
Progress in Linear Programming Based Branch-and-Bound Algorithms
CSC5160 Topics in Algorithms Tutorial 2 Introduction to NP-Complete Problems Feb Jerry Le
Integer Programming and Branch and Bound Brian C. Williams November 15 th, 17 th, 2004 Adapted from slides by Eric Feron, , 2002.
Nikolaj Bjørner Microsoft Research Lecture 3. DayTopicsLab 1Overview of SMT and applications. SAT solving, Z3 Encoding combinatorial problems with Z3.
1 Introduction to Linear and Integer Programming Lecture 9: Feb 14.
1 Optimisation Although Constraint Logic Programming is somehow focussed in constraint satisfaction (closer to a “logical” view), constraint optimisation.
Implicit Hitting Set Problems Richard M. Karp Harvard University August 29, 2011.
Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis
Computational Methods for Management and Economics Carla Gomes
Constraint Satisfaction Problems
GRASP-an efficient SAT solver Pankaj Chauhan. 6/19/ : GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment.
1 Maximum matching Max Flow Shortest paths Min Cost Flow Linear Programming Mixed Integer Linear Programming Worst case polynomial time by Local Search.
GRASP SAT solver Presented by Constantinos Bartzis Slides borrowed from Pankaj Chauhan J. Marques-Silva and K. Sakallah.
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis in Mixed Integer Programming.
Job Scheduling Lecture 19: March 19. Job Scheduling: Unrelated Multiple Machines There are n jobs, each job has: a processing time p(i,j) (the time to.
Integer Programming Difference from linear programming –Variables x i must take on integral values, not real values Lots of interesting problems can be.
Branch and Bound Algorithm for Solving Integer Linear Programming
Chapter 5 Outline Formal definition of CSP CSP Examples
Linear Programming and Parameterized Algorithms. Linear Programming n real-valued variables, x 1, x 2, …, x n. Linear objective function. Linear (in)equality.
1 Contents college 3 en 4 Book: Appendix A.1, A.3, A.4, §3.4, §3.5, §4.1, §4.2, §4.4, §4.6 (not: §3.6 - §3.8, §4.2 - §4.3) Extra literature on resource.
SAT Solving Presented by Avi Yadgar. The SAT Problem Given a Boolean formula, look for assignment A for such that.  A is a solution for. A partial assignment.
Lift-and-Project cuts: an efficient solution method for mixed-integer programs Sebastian Ceria Graduate School of Business and Computational Optimization.
LP formulation of Economic Dispatch
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding ILPs with Branch & Bound ILP References: ‘Integer Programming’
Integer programming Branch & bound algorithm ( B&B )
Decision Procedures An Algorithmic Point of View
1 Decision Procedures for Linear Arithmetic Presented By Omer Katz 01/04/14 Based on slides by Ofer Strichman.
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 TexPoint fonts used in EMF. Read the TexPoint manual before you.
Midterm Review Prateek Tandon, John Dickerson. Basic Uninformed Search (Summary) b = branching factor d = depth of shallowest goal state m = depth of.
MILP algorithms: branch-and-bound and branch-and-cut
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
Tobias Achterberg Konrad-Zuse-Zentrum für Informationstechnik Berlin Branching SCIP Workshop at ZIB October 2007.
CSE332: Data Abstractions Lecture 24.5: Interlude on Intractability Dan Grossman Spring 2012.
WOOD 492 MODELLING FOR DECISION SUPPORT
Chap 10. Integer Prog. Formulations
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.
Branch-and-Cut Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation.
SAT 2009 Ashish Sabharwal Backdoors in the Context of Learning (short paper) Bistra Dilkina, Carla P. Gomes, Ashish Sabharwal Cornell University SAT-09.
Branch and Bound Algorithms Present by Tina Yang Qianmei Feng.
FATCOP: A Mixed Integer Program Solver Michael FerrisQun Chen University of Wisconsin-Madison Jeffrey Linderoth Argonne National Laboratories.
Chapter 2. Optimal Trees and Paths Combinatorial Optimization
SAT Solving As implemented in - DPLL solvers: GRASP, Chaff and
Common Intersection of Half-Planes in R 2 2 PROBLEM (Common Intersection of half- planes in R 2 ) Given n half-planes H 1, H 2,..., H n in R 2 compute.
Constraint Programming for the Diameter Constrained Minimum Spanning Tree Problem Thiago F. Noronha Celso C. Ribeiro Andréa C. Santos.
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis in Mixed Integer Programming.
Discrete Optimization MA2827 Fondements de l’optimisation discrète Material from P. Van Hentenryck’s course.
Sebastian Ceria Graduate School of Business and
Integer Programming An integer linear program (ILP) is defined exactly as a linear program except that values of variables in a feasible solution have.
Lecture 11: Tree Search © J. Christopher Beck 2008.
The CPLEX Library: Mixed Integer Programming
6.5 Stochastic Prog. and Benders’ decomposition
1.3 Modeling with exponentially many constr.
MIP Tools Branch and Cut with Callbacks Lazy Constraint Callback
Integer Linear Programming
Linear Programming Duality, Reductions, and Bipartite Matching
Chapter 5: General search strategies: Look-ahead
6.5 Stochastic Prog. and Benders’ decomposition
Graphical solution A Graphical Solution Procedure (LPs with 2 decision variables can be solved/viewed this way.) 1. Plot each constraint as an equation.
Branch-and-Bound Algorithm for Integer Program
GRASP-an efficient SAT solver
Discrete Optimization
Presentation transcript:

Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg 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 Nodes Node Winner(24)14 (7)27 (17) Time 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 Nodes Node Winner(7)0 (3)16 (14) Time 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 Nodes Node Winner006 Time 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 hours  full conflict analysis (bound-exceeding LPs and strong branchings) SCIP Nodes 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 Nodes 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