Download presentation
Presentation is loading. Please wait.
Published byLetitia Hamilton Modified over 9 years ago
1
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
2
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
3
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.
4
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?
5
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
6
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
7
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.
8
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)
9
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.
10
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.
11
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.
12
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)
13
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 13 Small Examples objective
14
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.
15
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
16
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
17
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.
18
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
19
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.
20
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 20 Test Set Miplib 3 –http://www.caam.rice.edu/~bixby/miplib/miplib.htmlhttp://www.caam.rice.edu/~bixby/miplib/miplib.html –65 instances, 15 with general integers Miplib 2003 –http://miplib.zib.de/http://miplib.zib.de/ –61 instances, 15 with general integers H. Mittelmann’s test set –http://plato.la.asu.edu/bench.htmlhttp://plato.la.asu.edu/bench.html –63 instances, 6 with general integers 146 unique instances, 30 with general integers.
21
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 21 Instances with General Integers NameRowsColumnsBinariesIntegersInt.Gap arki001104913884151235 atlanta-ip2173248738466671062.127e9 bell3a12413339321000 bell59210430283379 blend2275353231332 flugpl191801118 gen781870144624 gesa2139312242401683 gesa2_o124912243843363 gesa3136911522161683 gesa3_o12251152336 3 gt230188241647 manna81648133211833037 momentum224238373218081100 momentum3568221353265981150 NameRowsColumnsBinariesIntegersInt.Gap msc98-ip158512114320237532.106e9 mzzv11950010240998925135 mzzv42z10461117171148223526 neos71994155643420380 neos84632423228232244900 neos104679323489234845900 neos161019377336419 neos202446116593730267 noswot1831287525100000 qnet1504154112881295 qnet1_o457154112881295 roll3000229611662464922 rout292556300152 timtab1171397641072 timtab22956751131813 Instances not suited for general integer branching.
22
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).
23
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 23 Nonbasic Strengthening No StrengtheningSimple Strengthening InstanceTimeNodes (Bound) TimeNodes (Bound) arki001*(7580565)*(7580295) atlanta-ip*(82.88)*(82.92) bell3a24521050413 bell544638497711357 blend26756356695 dsbmip1651 flugpl08010329 gesa2_o11951229 gesa2025029 gesa3_o21292165 gesa31871101 gt201335033 msc98-ip*(19702878)* * 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)* mzzv42z1060901710999017 neos10265421271421 neos16*(434)*(432) neos20*(-461)*(-468) neos7*(709934)*(713934) qnet1_o1293135 qnet12594103 roll3000*(12453)*(12456) rout574228537*(1047) timtab1*(644157)*(570727) timtab2*(695712)*(660029)
24
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 24 Full Strengthening No StrengtheningFull Strengthening InstanceTimeNodes (Bound) TimeNodes (Bound) arki001*(7580565)*(7580052) atlanta-ip*(82.88)*(82.89) bell3a24521050195 bell54463849770611 blend26756356879 dsbmip1651 flugpl0801031 gesa2_o11951121 gesa2025035 gesa3_o21292 gesa31872105 gt201335039 msc98-ip*(19702878)* * 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)* mzzv42z1060901710039017 neos10265421266421 neos16*(434)*(432) neos20*(-461)*(-468) neos7*(709934)*(713718) qnet1_o129665 qnet1259539 roll3000*(12453)*(12459) rout574228537*(1053) timtab1*(644157)*(552455) timtab2*(695712)*(642602)
25
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.
26
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
27
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.
28
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.
29
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 bell5465.423849770.26531 bell3a24.45521050.14183 mod0080.847910.1525 gt20.4813350.1243 flugpl0.158010.0133 mzzv42z999.649017681.81043 l152lav5.495034.6365 lseu0.5212670.24187 neos41228.91167536.57203 neos147.786961160.391971 Top 10 with best performance when applying full strengthening.
30
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 30 Improv. mindeg maxdeg None117512 Improv. mindeg maxdeg None117512 Nonbas.134179 Improv. mindeg maxdeg None117512 Nonbas.134179 Full177255 L152LAV Sum of min and max degradation over best 25 nodes.
31
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 d3218277730.577327730.5 0% (6118006) 7732 100% (37) 7732 100% (227) d4208270750 0% (621444) 75 100% (35) 75 100% (10248) d62182731266.673127531266.67 0% (903588) 31275 100% (7) 31275 100% (870) Small cutting stock problems with general integers.
32
Dash Optimization IMA 2005 “Constraint Branching and Disjunctive Cuts for Mixed Integer Programs” 32 Client Set 2 Strengthening NameRowsColsRoot Objective NoneNon-basicFull C227847910167081.32206·10 11 1.32235·10 11 1.32207·10 11 0.0008% (561) 1.32208·10 11 0.0015% (450) C31084251109327.72284·10 8 7.73051·10 8 7.72289·10 8 0.0006% (10071) 7.72309·10 8 0.0032% (2372) C46530203652.21516·10 10 2.22042·10 10 2.21876·10 10 0.1621% (39146) 2.21877·10 10 0.1626% (12213) C6260655482.50477·10 9 2.50477·10 9 100% (45) 2.50477 100% (45) Lot sizing problems with general integers.
33
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?.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.