|
|
Line 1: |
Line 1: |
| {{graph search algorithm}}
| | Chances are they call me Gabrielle. Vermont has always been my existing place and I will have everything that I desire here. As a definite girl what I simply like is going to karaoke but I haven't ever made a dime as well as. I am the cashier and I'm preparing pretty good financially. See what's new on this website here: http://prometeu.net<br><br>Feel free to surf to my homepage ... [http://prometeu.net clash of clans hack cydia] |
| {{Refimprove|date=December 2009}}
| |
| '''Branch and bound''' ('''BB''' or '''B&B''') is a general [[algorithm]] for finding optimal solutions of various [[optimization (mathematics)|optimization]] problems, especially in [[discrete optimization|discrete]] and [[combinatorial optimization]]. A branch-and-bound algorithm consists of a systematic enumeration of all candidate solutions, where large subsets of fruitless candidates are discarded ''en masse'', by using upper and lower estimated bounds of the quantity being optimized.
| |
| | |
| The method was first proposed by A. H. Land and A. G. Doig<ref name=land_doig>{{cite article |author = A. H. Land and A. G. Doig | year = 1960 | title = An automatic method of solving discrete programming problems | journal = Econometrica | volume = 28 | issue = 3 | pages = 497–520 | doi=10.2307/1910129}}</ref> in 1960 for [[discrete optimization|discrete programming]].
| |
| | |
| ==General description==
| |
| In order to facilitate a concrete description, we assume that the goal is to find the ''minimum'' value of a function <math>f(x)</math>, where <math>x</math> ranges over some set <math>S</math> of ''admissible'' or ''[[candidate solution]]s'' (the ''search space'' or ''feasible region''). Note that one can find the ''maximum'' value of <math>f(x)</math> by finding the minimum of <math>g(x) = -f(x)</math>. (For example, <math>S</math> could be the set of all possible trip schedules for a bus fleet, and <math>f(x)</math> could be the expected revenue for schedule <math>x</math>.)
| |
| | |
| A branch-and-bound procedure requires two tools. The first one is a ''splitting'' procedure that, given a set <math>S</math> of candidates, returns two or more smaller sets <math>S_1, S_2, \ldots</math> whose union covers <math>S</math>. Note that the minimum of <math>f(x)</math> over <math>S</math> is <math>\min\{v_1, v_2, \ldots\}</math>, where each <math>v_i</math> is the minimum of <math>f(x) </math> within <math>S_i</math>. This step is called '''branching''', since its recursive application defines a [[tree structure]] (the ''search tree'') whose ''nodes'' are the subsets of <math>S</math>.
| |
| | |
| The second tool is a procedure that computes upper and lower bounds for the minimum value of <math>f(x)</math> within a given subset of <math>S</math>. This step is called '''bounding'''.
| |
| | |
| The key idea of the BB algorithm is: if the ''lower'' bound for some tree node (set of candidates) <math>A</math> is greater than the ''upper'' bound for some other node <math>B</math>, then <math>A</math> may be safely discarded from the search. This step is called '''pruning''', and is usually implemented by maintaining a global variable <math>m</math> (shared among all nodes of the tree) that records the minimum upper bound seen among all subregions examined so far. Any node whose lower bound is greater than <math>m</math> can be discarded.
| |
| | |
| The recursion stops when the current candidate set <math>S</math> is reduced to a single element, or when the upper bound for set <math>S</math> matches the lower bound. Either way, any element of <math>S</math> will be a minimum of the function within <math>S</math>.
| |
| | |
| When <math>x</math> is a vector of <math>R^n</math>, branch-and-bound algorithms can be combined with [[Interval arithmetic|interval analysis]]<ref>{{cite book|last1=Moore|first1=R. E.|
| |
| title=Interval Analysis|
| |
| year=1966|publisher=Prentice-Hall|
| |
| location=Englewood Cliff, New Jersey|isbn=0-13-476853-1}}
| |
| </ref>
| |
| and [[interval contractor|contractor]] techniques in
| |
| order to provide guaranteed enclosures of the global minimum.<ref>
| |
| {{cite book|last1=Jaulin|first1=L.|last2=Kieffer|first2=M.|last3=Didrit|first3=O.|last4=Walter|first4=E.|
| |
| title=Applied Interval Analysis|year=2001|publisher=Springer|location=Berlin|isbn=1-85233-219-0}}
| |
| </ref><ref>
| |
| {{cite book|last=Hansen|first=E.R.|
| |
| title=Global Optimization using Interval Analysis|year=1992|
| |
| publisher=Marcel Dekker|location=New York}}
| |
| </ref>
| |
| | |
| ==Applications==
| |
| This approach is used for a number of [[NP-hard]] problems
| |
| * [[Integer programming]]
| |
| * [[Nonlinear programming]]
| |
| * [[Travelling salesman problem]] (TSP)
| |
| * [[Quadratic assignment problem]] (QAP)
| |
| * [[Maximum satisfiability problem]] (MAX-SAT)
| |
| * [[Nearest neighbor search]] (NNS)
| |
| * [[Cutting stock problem]]
| |
| * [[False noise analysis]] (FNA)
| |
| * [[Computational phylogenetics]]
| |
| * [[Set inversion]]
| |
| * [[Set estimation|Parameter estimation]]
| |
| | |
| Branch-and-bound may also be a base of various [[heuristic]]s. For example, one may wish to stop branching when the gap between the upper and lower bounds becomes smaller than a certain threshold. This is used when the solution is "good enough for practical purposes" and can greatly reduce the computations required. This type of solution is particularly applicable when the cost function used is [[noise|''noisy'']] or is the result of [[statistics|statistical estimates]] and so is not known precisely but rather only known to lie within a range of values with a specific [[probability]]. An example of its application here is in [[biology]] when performing [[cladistics|cladistic analysis]] to evaluate evolutionary relationships between organisms, where the data sets are often impractically large without heuristics{{Citation needed|date=December 2011}}.
| |
| | |
| ==See also==
| |
| * [[Branch and cut|Branch-and-cut]], a hybrid between branch-and-bound and the [[cutting plane]] methods that is used extensively for solving [[integer linear programs]].
| |
| | |
| ==References==
| |
| {{Reflist}}
| |
| | |
| {{Optimization algorithms|combinatorial|state=expanded}}
| |
| | |
| {{DEFAULTSORT:Branch And Bound}}
| |
| [[Category:Optimization algorithms and methods]]
| |
| [[Category:Combinatorial optimization]]
| |
Chances are they call me Gabrielle. Vermont has always been my existing place and I will have everything that I desire here. As a definite girl what I simply like is going to karaoke but I haven't ever made a dime as well as. I am the cashier and I'm preparing pretty good financially. See what's new on this website here: http://prometeu.net
Feel free to surf to my homepage ... clash of clans hack cydia