260 likes | 387 Views
DMOR. Branch and bound. Integer programming. Modelling logical constraints and making them linear : Conjuction Disjunction Impli cation Logical constraints for binary variables implication disjunction exclusive disjunction Fixed costs modelling
E N D
DMOR Branch and bound
Integerprogramming • Modellinglogicalconstraints and makingthemlinear: • Conjuction • Disjunction • Implication • Logicalconstraints for binaryvariables • implication • disjunction • exclusivedisjunction • Fixedcostsmodelling • Question: Isit OK to justround an LP solution to thenearestinteger to getthesolution of theinteger program? • Branch and boundalgorithm (Divide and conquer)
Stepwiselinearobjectivefunction • Binaryvariables • Introducingconstraints wherew1andw2arebinary
Stepwiselinearobjectivefunction • A) • B) • C)
Branchand boundalgorithm - idea • Threedecisionvariables x1 (integer-valued) and twobinaryvariablesx2 and x3. Constraints: 1 ≤ x1 ≤ 3, 0 ≤ x2 ≤ 1, 0 ≤ x3 ≤ 1 • Fullenumerationtree • Instead of buildingthewholetreeup front, builditsuccessivelystartingfromtheroot. Developonlythosebrancheswhichare most promisingatanygiven step. Most promisingisdetermined by estimatingbounds on thebestobjectivefunctionvaluegivencurrentinformationwhichcan be achieved by developing a givennodefurther.
Basic concepts • Concepts: • node – eachpartialorcompletesolution • leafnode– completesolution • bud node– partialsolutionfeasibleorinfeasible • boundingfunction– estimationmethod for bud nodes, should be optimistic • branching, growing, expandingnodes– a process of creatingchildnodes for a bud node • incumbent • Branching • Bounding • fathoming • Prunning Variableselectionpolicy Bud prunningrules Algoritymterminationrules • Nodeselectionpolicy • Best-first / global-bestnodeselection • Depth-first • Breadth-first
Example– an assignment problem • Meaning of thenodesin a tree: • Partialorcompleteassignement of people to tasks • Nodeselectionpolicy: global best • Variableselectionpolicy: choosethenexttaskin a natural order 1 to 4 • Boundingfunction: for unassignedtaskschoosethebestunassigned person, evenifshewere to be assignedtoomorethan one tasks • Algorithmterminationrule: whentheobjectivefunctionvalue for an incumbentsolutionisbetterorequal to theobjectivefunctionvalue for all bud nodes • Fathoming: a solutiongenerated by theboundingfunctionisfeasibleifeachtaskisassigned to a different person
How do theboundingfunctionvaluescomeabout? • Lookatthe first stage bud node A • All solutionsrepresented by thisnodecan be denoted by A??? • Actualvalue of assigning person A to task 1 isequal to9 • Thebestyetunassigned person for task 2 is C, value = 1 • Thebestyetunassigned person for task3 isD, value = 2 • Thebestyetunassigned person for task4 is C, value = 2 • BoundingfunctionsolutionisACDC with a totalvalue of 9+1+2+2=14. • Thebestobjectivefunctionvalue of A??? is14. Itis not a feasiblesolutionbecause person C isassigned to 2 tasks. Person A istheonlyactuallyassignedperson.
Creating a tree Prunnednodeshavebrokenedges Feasiblenodeshaveboldedges Prunnedfeasiblenodeshavebroken and boldedges First stage: root Secondstage: • NodeC??? isfathomed – the first incumbentfeasiblesolutionCBDA=13 • We canthenprunenodeA???, withboundingfunctionvalue of14. • Two bud nodeswhicharehope for improvement: B??? andD??? – global best: we chooseD???
Building a tree Third stage: • Thereare no newfeasiblesolutions, so theincumbentsolutiondoes not change. • New nodescannot be prunned by comparingwiththecurrentincumbentsolutionorfathomed • We choosethe global bestfromamongB??? (9), DA?? (12), DB?? (10) oraz DC?? (12) • SoB???itis
Building a tree • We fathomtwonodesBA?? and BC?? • A newincumbentfeasiblesolutionisBCDA=12 • We prunethepreviousincumbent CBDA • BA?? Isfeasible, but we pruneit by comparisonwith a newincumbentsolution • We prunenodesDA?? i DC?? by comparingthemwiththeincumbentsolution • If we wanted to find ALL optimalsolutions and not only one we canlateranalyzeitfurther • We areleftwithonly one bud nodeDB??. Fourthstage:
Building a tree • DBAC hasbettervaluethantheincumbentsolution, so we replaceit and prunetheincumbent • DBCA ispruned by comparingitwiththeincumbentsolution • Thereare no more bud nodes to expand, so we terminate • We analyzed 13 out of 24 nodes • For biggerproblemsitgives a realacceleration Fifthstage:
A goodboundingfunctionis a key • Travelling salesman problem: visiteach city exactlyonce and come back to whereyoustarted • Assume we have a partialsolution(bold) • Smart boundingfunction: a minimalspanningtree on thestarting and theendingnode of thecurrentpartialsolution and theunvisitednodes
Branchand boundalgorithm for mixedintegerproblems (Dakin’salgorithm) • Thefollowingintegerprogramming problem isgiven:
Divideintotwosubproblemsexcludingthecurrentnonfeasiblesolution.
We continueuntil we get an integersolution • We canstop theprocedureatL5 if we want to be at most 10% fromthe minimum (secondbest)