Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 1 Constraint Branching and Disjunctive Cuts for Mixed Integer Programs Michael Perregaard Dash Optimization
IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 2 Small Example Optimal LP solution: z = 0 Optimal MIP solution: z = 1 Consider pure branch-and-bound. Will alternately branch on fractional x 1 or x 2. Requires exhaustive search of (x 1, x 2 ) = (0,49.5), (0.5,49), (1,48.5), …, (49.5, 0) 100 solutions to search. 100 times more with new x 3. Alternatively, branch on
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 3 Branching from Disjunctive Cuts Branching is imposing a disjunction valid for all (feasible) integer solutions, but not the current LP solution. Disjunctive cuts are derived from some base disjunction and often a strengthening argument. –Gomory’s Mixed Integer cuts. –Lift-and-Project cuts. –Reduce and Split cuts of Andersen, Cornuéjols and Li (2003). The strengthening of the cut can be transformed into a strengthening of the base disjunction. Use the strengthened base disjunction for branching.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 4 Basic Mixed Integer Program We consider solving: Solve using branch-and-bound. Standard branching selects a single fractional variable x j and imposes disjunction Can we find a better disjunction?
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 5 Disjunctive Normal Form Example For constraint where e.g. x 1 and x 2 are fractional, we can create a disjunction
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 6 where for q Q. Example If x 1, x 2 and x 3 are fractional binaries, we can consider the disjunction Leads to 2 3 = 8 branches. Split Disjunctions
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 7 Basic Disjunctive (Intersection) Cut Given disjunction (in nonbasic space) where, then with is a valid inequality that cuts off the LP solution.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 8 Strengthening Disjunctions (Balas, Jeroslaw 1980) Let f q be the largest value for which is valid for (MIP). Set. Let for j I, q Q, be any set of integers that satisfies for all j I. Then with is a valid inequality for (MIP)
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 9 Strengthening Disjunctions [continued] Instead of strengthening cut, as in modify the disjunction directly, as in (*) Basic disjunctive cut from (*) identical to strengthened cut.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 10 Given valid disjunction for (MIP) Let for j I, q Q, be any set of integers. Then is a valid disjunction for (MIP) since must be integer. Strengthening Conjunctions Gomory’s Mixed Integer cuts and Lift-and-Project cuts strengthens in nonbasics. Andersen, Cornuéjols, Li cuts iteratively strengthens individual basics and all nonbasics.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 11 General Branching Alternatives Ryan-Foster for Set Packing and Set Partitioning. –B.A. Foster and D.M. Ryan (1981). –Specifically designed for Set Partitioning constraints: Basis Reduction –H.W. Lenstra (1983) –Polynomial algorithm for solving integer programs for fixed number of variables. General Branching of Mehrotra, Owen (2001) –Tests each variable using LP reoptimization to determine “best” coefficient.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 12 Even more Alternatives General Branching of Karamanov, Cornjuéjols (Monday) –Branches on Gomory cut related disjunction. Column Basis Reduction of Pataki (Thursday) Generalized Branching Methods of Mehrotra (Friday)
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 13 Small Examples objective
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 14 General vs. 0-1 branching General branching0-1 branching +Branch on any linear disjunction. -Adds new constraints matrix size grows. -More difficult to get implications. -More basic integers less reduced cost tightening. ?Heaps of choices -Branch on 0-1 disjunctions only +Changes bounds matrix size unchanged. +Easy to get implications (bound propagation). +Branched variables will be non-basic allows reduced cost tightening. ?Easy to find “best” choice.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 15 Work in space of nonbasic variables Measure the quality of a disjunction through that of the implied disjunctive cut x 1, with Evaluating a Disjunction
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 16 Evaluating a Cut Andersen, Cornuéjols, Li (2003) suggests minimizing the L 2 -norm of cut coefficients for continuous variables. What about scaling and cost? Consider reduced costs. Cost to satisfy the cut by increasing non-basic variable x j is at least. Make cut expensive to satisfy maximize, or minimize. Since can be zero, we estimate a cut by
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 17 Improving a Disjunction - Nonbasics Express disjunction in nonbasics x N Strengthened cut coefficients in nonbasics are Find optimal for each j independently easy. Note: For simple split disjunction optimal gives Gomory’s Mixed Integer cut.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 18 Same strengthening applies to basic variable x k Use the row i of the simplex tableau in which x k is basic: to re-express the disjunction in nonbasics: Problem: Find optimal discrete amount to add simplex tableau row i (without basic x k ) to each term q of the disjunction. Improving a Disjunction - Basics
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 19 Procedure 1.Convert Xpress selected branching variable x k into a simple disjunction 2.Apply Gomory-esque strengthening to coefficients of non-basics in D. 3.Are there more basic, integer variables to use for strengthening? If not, stop. 4.Select basic, integer variable x i. Calculate optimal continuous coefficient m i in D. Update D with the better of or. Repeat from 2.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 20 Test Set Miplib 3 – –65 instances, 15 with general integers Miplib 2003 – –61 instances, 15 with general integers H. Mittelmann’s test set – –63 instances, 6 with general integers 146 unique instances, 30 with general integers.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 21 Instances with General Integers NameRowsColumnsBinariesIntegersInt.Gap arki atlanta-ip e9 bell3a bell blend flugpl gen gesa gesa2_o gesa gesa3_o gt manna momentum momentum NameRowsColumnsBinariesIntegersInt.Gap msc98-ip e9 mzzv mzzv42z neos neos neos neos neos noswot qnet qnet1_o roll rout timtab timtab Instances not suited for general integer branching.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 22 Computational Settings Implemented in C using Xpress 2005B optimizer library. Uses Xpress callbacks to override default branches with new constraint branches. No in-tree cutting. No heuristics. Best-first search. Run on a dual processor Opteron 246 system (2GHz, 4GB RAM, Linux OS).
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 23 Nonbasic Strengthening No StrengtheningSimple Strengthening InstanceTimeNodes (Bound) TimeNodes (Bound) arki001*( )*( ) atlanta-ip*(82.88)*(82.92) bell3a bell blend dsbmip1651 flugpl gesa2_o gesa gesa3_o gesa gt msc98-ip*( )* * Not finished in 1800 seconds gen, manna81: solved on root (excluded). noswot: can’t raise bound (excluded). atlanta-ip, dsbmip, msc98-ip, mzzv11, mzzv42z, neos10: very few branches on integers No StrengtheningSimple Strengthening InstanceTimeNodes (Bound) TimeNodes (Bound) mzzv11*(-21728)* mzzv42z neos neos16*(434)*(432) neos20*(-461)*(-468) neos7*(709934)*(713934) qnet1_o qnet roll3000*(12453)*(12456) rout *(1047) timtab1*(644157)*(570727) timtab2*(695712)*(660029)
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 24 Full Strengthening No StrengtheningFull Strengthening InstanceTimeNodes (Bound) TimeNodes (Bound) arki001*( )*( ) atlanta-ip*(82.88)*(82.89) bell3a bell blend dsbmip1651 flugpl gesa2_o gesa gesa3_o21292 gesa gt msc98-ip*( )* * Not finished in 1800 seconds. bell3a, bell5: Half the number of nodes of Nonbasic Strengthening. flugpl: reduced from 329 to 31 nodes. No StrengtheningSimple Strengthening InstanceTimeNodes (Bound) TimeNodes (Bound) mzzv11*(-21728)* mzzv42z neos neos16*(434)*(432) neos20*(-461)*(-468) neos7*(709934)*(713718) qnet1_o qnet roll3000*(12453)*(12459) rout *(1053) timtab1*(644157)*(552455) timtab2*(695712)*(642602)
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 25 Branching on Binaries Nonbasic Strengthening No Strengthening Strengthening on integer branches #Better43 #Worse1817 Comparing results from Nonbasic Strengthening on all Binary/Integer branches against previous results. Full Strengthening No Strengthening Strengthening on integer branches #Better75 #Worse1715 Comparing results from Full Strengthening on all Binary/Integer branches against previous results.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 26 Reduced Cost Scaling of Cut Coefficients #Best#Worst = (no scaling) 612 = median reduced cost 83 = 0.1 * median reduced cost. 86
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 27 Improvement in Cut Estimate Average improvement in cut estimate relative to initial disjunction when applying either nonbasic improvement or full improvement.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 28 Basic Improvement Coefficients Average optimal continuous coefficient for basic integer variables, excluding when zero is optimal.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 29 Results on Full Test Set Using full strengthening on both binary and integer branches (137 instances). Strengthening?NoFull Both finished, least nodes 2518 One finished292 Both unfinished, best bound 390 No strengtheningFull strengthening InstanceTimeNodesTimeNodes bell bell3a mod gt flugpl mzzv42z l152lav lseu neos neos Top 10 with best performance when applying full strengthening.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 30 Improv. mindeg maxdeg None Improv. mindeg maxdeg None Nonbas Improv. mindeg maxdeg None Nonbas Full L152LAV Sum of min and max degradation over best 25 nodes.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 31 Client Set 1 Strengthening NameRowsColsRoot Objective Best Sol.NoneFullFull on cycles only d % ( ) % (37) % (227) d % (621444) % (35) % (10248) d % (903588) % (7) % (870) Small cutting stock problems with general integers.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 32 Client Set 2 Strengthening NameRowsColsRoot Objective NoneNon-basicFull C · · · % (561) · % (450) C · · · % (10071) · % (2372) C · · · % (39146) · % (12213) C · · % (45) % (45) Lot sizing problems with general integers.
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 33 Future Directions Select initial disjunction independently of Xpress. Evaluation of disjunctions. Xpress uses e.g. pseudo costs, strongbranch estimates and history values to select a branch candidate. How can this be carried over to general branching? Assimilate ideas from/compare against other general branching schemes. –Basis reduction –LP guided strengthening of disjunction. –IMA general branching presentations.. Efficiency (no exploitation of sparsity at the moment). Include most promising scheme in future release of Xpress?.