Tobias Achterberg Konrad-Zuse-Zentrum für Informationstechnik Berlin Branching SCIP Workshop at ZIB October 2007.

Slides:



Advertisements
Similar presentations
Primal Dual Combinatorial Algorithms Qihui Zhu May 11, 2009.
Advertisements

IEOR 4004 Final Review part II.
Branch-and-Bound Technique for Solving Integer Programs
Branch and Bound See Beale paper. Example: Maximize z=x1+x2 x2 x1.
1 Chapter 11 Here we see cases where the basic LP model can not be used.
Pure, Mixed-Integer, Zero-One Models
Branch-and-Bound In this handout,  Summary of branch-and-bound for integer programs Updating the lower and upper bounds for OPT(IP) Summary of fathoming.
© Imperial College London Eplex: Harnessing Mathematical Programming Solvers for Constraint Logic Programming Kish Shen and Joachim Schimpf IC-Parc.
Hybridisation Solver Cooperation in ECLiPSe. 2 Introduction  Motivation  Sending Constraints to Different Solvers  Probing  Column Generation  Motivation.
Types of Algorithms.
Algorithms + L. Grewe.
EE 553 Integer Programming
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis SCIP Workshop at ZIB October 2007.
Water Resources Development and Management Optimization (Integer Programming) CVEN 5393 Mar 11, 2013.
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
1 Optimisation Although Constraint Logic Programming is somehow focussed in constraint satisfaction (closer to a “logical” view), constraint optimisation.
Dealing with NP-Complete Problems
Implicit Hitting Set Problems Richard M. Karp Harvard University August 29, 2011.
Computational Methods for Management and Economics Carla Gomes
Linear Programming Integer Linear Models. When Variables Have To Be Integers Example – one time production decisions –Fractional values make no sense.
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis in Mixed Integer Programming.
Integer Programming Difference from linear programming –Variables x i must take on integral values, not real values Lots of interesting problems can be.
Distributed Combinatorial Optimization
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.
1 Combinatorial Problems in Cooperative Control: Complexity and Scalability Carla Gomes and Bart Selman Cornell University Muri Meeting March 2002.
Lift-and-Project cuts: an efficient solution method for mixed-integer programs Sebastian Ceria Graduate School of Business and Computational Optimization.
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
Chapter 12 Discrete Optimization Methods
An Online Auction Framework for Dynamic Resource Provisioning in Cloud Computing Weijie Shi*, Linquan Zhang +, Chuan Wu*, Zongpeng Li +, Francis C.M. Lau*
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
Types of IP Models All-integer linear programs Mixed integer linear programs (MILP) Binary integer linear programs, mixed or all integer: some or all of.
MILP algorithms: branch-and-bound and branch-and-cut
1 Chapter 4: Integer and Mixed-Integer Linear Programming Problems 4.1 Introduction to Integer and Mixed-Integer Linear Programming 4.2 Solving Integer.
WOOD 492 MODELLING FOR DECISION SUPPORT
15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.
Column Generation By Soumitra Pal Under the guidance of Prof. A. G. Ranade.
Integer Programming Li Xiaolei. Introduction to Integer Programming An IP in which all variables are required to be integers is called a pure integer.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Gomory Cuts Updated 25 March Example ILP Example taken from “Operations Research: An Introduction” by Hamdy A. Taha (8 th Edition)“Operations Research:
Divide and Conquer Optimization problem: z = max{cx : x  S}
M Tech Project – First Stage Improving Branch-And-Price Algorithms For Solving 1D Cutting Stock Problem Soumitra Pal [ ]
Heuristics for Efficient SAT Solving As implemented in GRASP, Chaff and GSAT.
Integer Programming, Branch & Bound Method
Constraint Programming for the Diameter Constrained Minimum Spanning Tree Problem Thiago F. Noronha Celso C. Ribeiro Andréa C. Santos.
1 Chapter 5 Branch-and-bound Framework and Its Applications.
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
Water Resources Development and Management Optimization (Integer and Mixed Integer Programming) CVEN 5393 Mar 28, 2011.
Integer Programming An integer linear program (ILP) is defined exactly as a linear program except that values of variables in a feasible solution have.
5.3 Mixed-Integer Nonlinear Programming (MINLP) Models
Lecture 11: Tree Search © J. Christopher Beck 2008.
The CPLEX Library: Mixed Integer Programming
Instructor: Vincent Conitzer
Analysis and design of algorithm
MILP algorithms: branch-and-bound and branch-and-cut
Gomory Cuts Updated 25 March 2009.
LPSAT: A Unified Approach to RTL Satisfiability
Chapter 6. Large Scale Optimization
MIP Tools Branch and Cut with Callbacks Lazy Constraint Callback
Linear Programming Integer Linear Models.
Intersection Cuts from Bilinear Disjunctions
Branch-and-Bound Algorithm for Integer Program
Integer LP: Algorithms
Chapter 6. Large Scale Optimization
Branch-and-Bound Technique for Solving Integer Programs
Intersection Cuts for Quadratic Mixed-Integer Optimization
Presentation transcript:

Tobias Achterberg Konrad-Zuse-Zentrum für Informationstechnik Berlin Branching SCIP Workshop at ZIB October 2007

2 Branching  current solution is infeasible

3 Branching on Variables  split problems into sub problems to cut off current solution

4 Branching  current solution is infeasible

5 Branching on Constraints  split problems into subproblems to cut off current solution

6 Branching in SCIP  in constraint handlers and branching rules  „last resort“ for dealing with infeasible node solutions  no domain propagation or cuts available/desired  split current problem into any number of subproblems (children) such that  each child is „more restricted“ than current problem („children become smaller“)  at least one child has the same optimum value as the current problem („optimal solution is not lost“)

7 Implementing Branching Rules in SCIP 1.create child node SCIPcreateChild(scip, &node, prio); 2.modify child node SCIPaddConsNode(scip, node, cons, NULL); SCIPchgVarLbNode(scip, node, var, newlb); SCIPchgVarUbNode(scip, node, var, newub); 3.if more children needed, goto 1. 4.set result code *result = SCIP_BRANCHED;

8 Branching on Variables in SCIP  Calling SCIPbranchVar(scip, var,...) is shortcut for: SCIP_NODE* node; SCIP_Real x = SCIPvarGetLPSol(var); SCIPcreateChild(scip, &node, downprio); SCIPchgVarUbNode(scip, node, var, floor(x)); SCIPcreateChild(scip, &node, upprio); SCIPchgVarLbNode(scip, node, var, ceil(x));  node selection priorities are automatically calculated by child selection rule

9 Example: Random Branching SCIP_DECL_BRANCHEXECLP(branchExeclpRandom) { SCIP_BRANCHRULEDATA* branchruledata; SCIP_VAR** lpcands; int nlpcands; int k; branchruledata = SCIPbranchruleGetData(branchrule); SCIP_CALL(SCIPgetLPBranchCands(scip, &lpcands, NULL, NULL, NULL, &nlpcands)); k = SCIPgetRandomInt(0, nlpcands-1, &branchruledata->randseed); SCIP_CALL(SCIPbranchVar(scip, lpcands[k], NULL, NULL, NULL)); *result = SCIP_BRANCHED; return SCIP_OKAY; }

10 Branching Rules for MIP  most common MIP branching rules branch on variables:  two children  split domain of single variable into two parts  choose variable with fractional LP value such that LP solution changes in both children  remaining choices:  which fractional variable to branch on?  which of the two children to process next  related to node selection strategy

11 Branching Variable Selection  most fractional branching  choose variable with fractional value closest to 0.5  full strong branching  solve the LP relaxations for all possible branchings  choose the variable that yields largest LP objectives  strong branching  only apply strong branching on some candidates  only perform a limited number of simplex iterations

12 Pseudo Costs c = 2  LP relaxation yields lower bound

13 Pseudo Costs c = 2 x 3 = 7.3  LP relaxation yields lower bound  integer variable has fractional LP value

14 Pseudo Costs c = 2 x 3 ≤ 7 x 3  8  LP relaxation yields lower bound  integer variable has fractional LP value  branching decomposes problem into subproblems x 3 = 7.3

15 Pseudo Costs  LP relaxation yields lower bound  integer variable has fractional LP value  branching decomposes problem into subproblems  LP relaxation is solved for subproblems c = 2 c = 5 x 3 ≤ 7 x 3  8 x 3 = 7.3

16 Pseudo Costs  history of objective changes caused by branching on specific variable  objective gain per unit:  down/upwards pseudo costs  j -,  j + : average of all objective gains per unit c = 2 c = 5 x 3 ≤ 7 x 3  8 x 3 = 7.3

17 Pseudo Cost Branching  choose variable with largest estimated LP objective gain:  What to do if pseudo costs are uninitialized?  pure pseudo cost branching  use average pseudo costs over all variables, or  pseudo cost with strong branching initialization  apply strong branching to initialize pseudo costs

18 Reliability Branching  choose variable with largest estimated LP objective gain:  pseudo costs are unreliable, if number of updates is small:  apply strong branching on unreliable candidates  psc with strong branching initialization:  (full) strong branching:  reasonable value:

19 Branching in SAT  „Strong Branching“ equivalent:  apply domain propagation on all potential subproblems  choose variable which leads to largest number of inferences  Conflict Activity  choose variable that is contained in many recently generated conflict clauses  „recently“: exponentially decreasing importance of older conflict clauses

20 Hybrid Reliability/Inference Branching  Reliability Value  pseudo costs  strong branching on unreliable candidates  Inference History  like pseudo costs, but for number of inferences due to branching on a variable  Conflict Score  number of conflicts for which branching on this variable was part of the conflict reason  exponentially decreasing weight for older conflicts

21 Computational Results: nodes  244 instances  shifted geometric nodes  ratio to „hybrid“ in percent

22 Computational Results: time  244 instances  shifted geometric time  ratio to „hybrid“ in percent

23 Branching Score Functions  pseudo costs yield LP objective gain estimates for both branching directions  how to combine the two values into a single score?  current approach: weighted sum  new approach: product

24 Computational Results

25 Comparison to CPLEX and CBC ratios to CPLEX 10.1nodestime SCIP/CPX SCIP/Soplex CBC/CLP x slower 3.6x slower 9.3x slower