分支定界(BB、B&B或BnB)是一种用于离散和组合优化问题以及数学优化的算法设计范例。分支定界算法由通过状态空间搜索的候选解进行系统枚举:候选解的集合被认为是在根上形成一个完整集合的根树。该算法探索该树的分支,这些分支代表解集的子集。在枚举分支的候选解之前,它会对照最优解的上下限估计检查分支,如果分支不能产生比算法迄今为止找到的最佳解更好的解,则将其丢弃。
该算法依赖于对搜索空间的区域/分支的下限和上限的有效估计。如果没有可用的边界,该算法退化为穷举搜索。
1960年,在英国石油公司[1][2]赞助的伦敦经济学院进行离散规划研究时,Ailsa Land和Alison Doig首次提出了该方法,该方法已成为解决NP难优化问题最常用的工具。“分支定界”这个名字最早出现在利特尔(Little)等人关于旅行推销员问题的著作中。[3]
分支定界算法的目标是在一些可容许的集合S或候选的解集合中找到一个最大化或最小化被称为目标函数的实值函数f(x)的值x。该集合S被称为搜索空间,或可行区域。本节其余部分假设f(x)最小化是理想的;这一假设不失一般性,因为人们可以通过找到g(x)=- f(x)的最小值来找到f(x)的最大值。B&B算法根据两个原则运行:
将这些原则转化为特定优化问题的具体算法需要某种表示候选解集合的数据结构。这种表示被称为问题的一个实例。用符号SI表示实例I的候选解集。实例表示必须有三个操作:
使用这些操作,B&B算法通过分支操作形成的实例树执行自上而下的递归搜索。在访问实例I时,它检查绑定(I)是否大于它已经访问的其他实例的下限;如果是这样,I可能会被安全地从搜索中丢弃,递归会停止。这个修剪步骤通常是通过维护一个全局变量来实现的,该变量记录了迄今为止所检查的所有实例中的最小下限。
下面是用于最小化任意目标函数f的通用分支和定界算法的框架。[5]要从中获得实际算法,需要一个定界函数g,它计算搜索树节点上f的下限,以及特定问题的分支规则。因此,这里给出的一般算法是高阶函数。
可以使用几种不同队列的数据结构。这种基于先进先出队列的实现产生了广度优先搜索。堆栈(后进先出队列)将产生深度优先算法。最佳优先分支和绑定算法可以通过使用优先级队列来获得,该队列在节点的下限对节点进行排序。[5]具有这一前提的最佳优先搜索算法的例子是迪克斯特拉(Dijkstra)算法及其派生的A*搜索。当没有好的启发式算法可用于产生初始解时,推荐深度优先变量,因为它能快速产生完整解,从而产生上限。[5]
这种方法用于许多NP难题
分支定界法也可以是各种启发式方法的基础。例如,当上限和下限之间的差距变得小于某个阈值时,可能希望停止分支。当解决方案“对于实际目的来说足够好”并且可以大大减少所需的计算时,就使用这种方法。这种类型的解决方案特别适用当所使用的成本函数有噪声或者是统计估计的结果,因此不能精确地知道,而是仅知道它处于具有特定值范围内的概率。
^A. H. Land and A. G. Doig (1960). "An automatic method of solving discrete programming problems". Econometrica. 28 (3). pp. 497–520. doi:10.2307/1910129..
^"Staff News". www.lse.ac.uk. Retrieved 2018-10-08..
^Balas, Egon; Toth, Paolo (1983). Branch and bound methods for the traveling salesman problem (PDF). Carnegie Mellon University Graduate School of Industrial Administration..
^Bader, David A.; Hart, William E.; Phillips, Cynthia A. (2004). "Parallel Algorithm Design for Branch and Bound" (PDF). In Greenberg, H. J. Tutorials on Emerging Methodologies and Applications in Operations Research. Kluwer Academic Press..
^Clausen, Jens (1999). Branch and Bound Algorithms—Principles and Examples (PDF) (Technical report). University of Copenhagen..
^Moore, R. E. (1966). Interval Analysis. Englewood Cliff, New Jersey: Prentice-Hall. ISBN 0-13-476853-1..
^Jaulin, L.; Kieffer, M.; Didrit, O.; Walter, E. (2001). Applied Interval Analysis. Berlin: Springer. ISBN 1-85233-219-0..
^Hansen, E.R. (1992). Global Optimization using Interval Analysis. New York: Marcel Dekker..
^Little, John D. C.; Murty, Katta G.; Sweeney, Dura W.; Karel, Caroline (1963). "An algorithm for the traveling salesman problem" (PDF). Operations Research. 11 (6): 972–989. doi:10.1287/opre.11.6.972..
^Fukunaga, Keinosuke; Narendra, Patrenahalli M. (1975). "A branch and bound algorithm for computing k-nearest neighbors". IEEE Transactions on Computers: 750–753. doi:10.1109/t-c.1975.224297..
^Narendra, Patrenahalli M.; Fukunaga, K. (1977). "A branch and bound algorithm for feature subset selection" (PDF). IEEE Transactions on Computers. C-26 (9): 917–922. doi:10.1109/TC.1977.1674939..
^Nowozin, Sebastian; Lampert, Christoph H. (2011). "Structured Learning and Prediction in Computer Vision". Foundations and Trends in Computer Graphics and Vision. 6 (3–4): 185–365. CiteSeerX 10.1.1.636.2651. doi:10.1561/0600000033. ISBN 978-1-60198-457-9..
^Nau, Dana S.; Kumar, Vipin; Kanal, Laveen (1984). "General branch and bound, and its relation to A∗ and AO∗" (PDF). Artificial Intelligence. 23 (1): 29–58. doi:10.1016/0004-3702(84)90004-3..
暂无