Improving Strong Branching by Domain Propagation Gerald Gamrath Zuse Institute Berlin Berlin Mathematical School 18 th Combinatorial Optimization Workshop, Aussois, 7 January 2014
Branching on Variables for MIPs Goals Tools increase child nodes dual bounds prove optimality fast LP solution value history information strong branching Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 2 / 19
Branching on Variables for MIPs Goals Tools increase child nodes dual bounds prove optimality fast LP solution value history information strong branching Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 2 / 19
Quality of Strong Branching Results strong branching dual bounds vs. LP value during node processing 1158 objective value 1140 1120 instance: aflow30a (MIPLIB 2003), full strong branching, optimum value provided, solved after 87 nodes Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 3 / 19
Domain Propagation (Node Preprocessing) Idea: analyze local constraints and domains tighten local variable domains first step in node processing better dual bounds x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 4 / 19
Domain Propagation (Node Preprocessing) Idea: analyze local constraints and domains tighten local variable domains first step in node processing better dual bounds x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 Idea of this talk Strong branching should consider the effects of domain propagation! Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 4 / 19
Strong Branching with Domain Propagation Strong Branching with Domain Propagation (SBDP): add branching bound perform default domain propagation solve LP SBDP Add Bound Change Domain Propagation Infeasible? return Solve LP Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 5 / 19
Strong Branching with Domain Propagation Strong Branching with Domain Propagation (SBDP): add branching bound perform default domain propagation solve LP Open Questions: better predictions? change in strong branching effort? overall impact? SBDP Add Bound Change Domain Propagation Infeasible? return Solve LP Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 5 / 19
Implementation into SCIP SCIP: Solving Constraint Integer Programs standalone solver / branch-cut-and-price-framework modular structure via plugins free for academic use: http://scip.zib.de available in source code very fast non-commercial MIP solver GLPK 4.47 4.5x 3.94x non-commercial commercial lpsolve 5.5.2 3000 CBC 2.7.8 SCIP 3.0.1 CLP 1.14.8 2000 2.16x SCIP 3.0.1 SoPlex 1.7.1 SCIP 3.0.1 Cplex 12.4.0 1000 1.20x 1.00x 0.77x Xpress 7.3.1 0.23x 0.19x Cplex 12.5.0 0.17x 0 Gurobi 5.1.0 solved 3 5 40 57 62 62 76 78 79 (of 87 instances) results by H. Mittelmann on MIPLIB2010 (January 2013) time in seconds Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 6 / 19
Computational Experiment: Single Calls 168 instances (MIPLIB 3, 2003, 2010 benchmark) excluded infeasible instances + instances without branching 147 instances left time limit: 2 hours full strong branching optimal solution value provided heuristics, separation turned off SBDP in addition to standard strong branching only standard strong branching results used for branching Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 7 / 19
First Computational Insights Compare single strong branching (SB) calls SB children detected infeasible: 14% 17% 15% during propagation SB children with better dual bound: 5.6% gap closed by 20% on average LP iterations: infeasible children: 18% better dual bounds: + 30% all other SB children: 4% Domain propagation time: about 5% SB time increased by about 1% Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 8 / 19
Update: Quality of Strong Branching Results SBDP dual bounds vs. LP value during node processing 1158 objective value 1140 1120 instance: aflow30a (MIPLIB 2003), full strong branching, optimum value provided, solved after 81 nodes Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 9 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers x 2 x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers check SB solutions for integrality simple rounding heuristic x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers check SB solutions for integrality simple rounding heuristic x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible x 2 up-child first use locking numbers check SB solutions for integrality simple rounding heuristic x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers check SB solutions for integrality simple rounding heuristic probing-like bound tightening x 1 x 2 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers check SB solutions for integrality simple rounding heuristic probing-like bound tightening x 1 x 2 y 5 y 4 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Further Improvements Let s add some more things: additional statistics: implications, cutoffs, conflicts stop when infeasible up-child first use locking numbers check SB solutions for integrality simple rounding heuristic probing-like bound tightening y 5 x 1 x 2 y 5 y 4 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 10 / 19
Computational Experiment: Proving Optimality all 168 instances (MIPLIB 3, 2003, 2010 benchmark) time limit: 2 hours original + 3 random permutations to reduce performance variability arithmetic mean of solving time and node number per instance instances solved iff all four permutations were solved full strong branching optimal solution value provided heuristics, separation turned off two individual runs compare B&B tree and solving time Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 11 / 19
Number of Nodes: Proving Optimality relative change of number of nodes when using SBDP only instances solved to optimality by both variants % change in #nodes 100 50 0 50 100 instance shifted geometric mean reduced by 25% Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 12 / 19
Performance Diagram: Proving Optimality number of solved instances (of 168) 120 100 80 60 40 w/o propagation with propagation 1800 3600 5400 7200 time result: 7 more instances solved, shifted geom. time reduced by 13% Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 13 / 19
Hybrid Branching extension of reliability pseudo-cost branching + other history information inferences, conflicts, cutoffs strong branching LP iteration limit lookahead strategy What does this mean for SDBP? smaller strong branching impact but: first branchings most important initializes other history information as well SBDP reaches LP iteration limit twice as often: 10% instead of 5% less stable Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 14 / 19
Computational Experiment: Hybrid Branching all 168 instances (MIPLIB 3, 2003, 2010 benchmark) time limit: 2 hours original + 3 random permutations to reduce performance variability arithmetic mean of solving time and node number per instance instances solved iff all four permutations were solved hybrid branching SCIP default settings two individual runs compare B&B tree and solving time Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 15 / 19
Number of Nodes: Hybrid Branching relative change of number of nodes when using SBDP only instances solved to optimality by both variants % change in #nodes 100 50 0 50 100 802% 643% instance shifted geometric mean reduced by 7% Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 16 / 19
Performance Diagram: Hybrid Branching number of solved instances (of 168) 120 100 80 60 40 w/o propagation with propagation 1800 3600 5400 7200 time result: shifted geom. time reduced by 4% Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 17 / 19
Conclusions Domain propagation in strong branching... increases strong branching time marginally improves dual bound predictions decreases tree size significantly improves performance of two common branching rules default in SCIP 3.1 Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 18 / 19
Conclusions Domain propagation in strong branching... increases strong branching time marginally improves dual bound predictions decreases tree size significantly improves performance of two common branching rules default in SCIP 3.1 Next Steps test on other problem types dynamic (de)activation of domain propagation nonchimerical + cloud + propagation =? Gerald Gamrath (Zuse Institute Berlin): Improving Strong Branching by Domain Propagation 18 / 19
Improving Strong Branching by Domain Propagation Gerald Gamrath Zuse Institute Berlin Berlin Mathematical School 18 th Combinatorial Optimization Workshop, Aussois, 7 January 2014