260 likes | 394 Views
This guide explores the fundamental principles of branch and bound algorithms in integer programming, focusing on modeling logical constraints like conjunction, disjunction, and implication with binary variables. It outlines the stepwise approach to developing a tree structure, emphasizing the selection of promising branches through bounding functions and fathoming rules. The discussion also addresses fixed costs modeling and the efficacy of merely rounding linear programming (LP) solutions. Practical examples illustrate the concepts, enhancing understanding of advanced optimization strategies in mixed-integer problems.
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)