分支和绑定以及最佳优先搜索之间的差异

时间:2013-06-25 14:15:30

标签: search graph-algorithm branch-and-bound

我正在研究分支机构和最佳优先搜索我的论文工作,但在网上发现了很多关于这两个概念的矛盾。首先,我认为分支和绑定仅修剪以高成本解决方案结束的分支(使用启发式)并且不优先搜索(在修剪之后对树的其余部分执行简单的DFS或BFS)。然而,后来我发现许多资源说BB也对状态进行排名,并且首先考虑具有更高排名的节点(优先搜索)。如果是这样,BB和最佳优先搜索之间究竟有什么区别?

1 个答案:

答案 0 :(得分:5)

这两个概念是相关的(你有时甚至可以将它们结合起来),但你应该只关注它们之间的根本区别,如其名字所示:

分支和边界通过分支变量(=测试变量的值)来详尽地探索搜索空间。这会产生几个子问题,例如:对二元变量进行分支会产生一个问题,其中变量= 0,并且问题在于它= 1。然后,您可以继续并递归地解决它们。该技术的“边界”方面包括估计可在子问题中获得的解的边界。如果子问题只能产生错误的解决方案(与之前找到的解决方案相比),您可以安全地跳过对该部分搜索空间的探索。

最好首先尝试通过首先查看搜索空间中最有趣的部分(最有趣的=估计)来尽快找到解决方案。它不会拆分搜索空间,只会尝试尽快达到/解决方案。

这两种方法都试图跳过对搜索空间部分的调查。它们的使用和效率取决于问题的设定。最好的首先要求您为“最有趣的探索解决方案”指定一个标准,这有时可能很难/不可能。只有当您可以放在子问题上的界限有意义/不太宽时,分支和界限才有意义。这取决于你正在考虑的问题......