有人能为我解释一下分支和绑定搜索技术吗?我需要用分枝定界搜索算法找到一条代价最小的路径,从任意随机图的起始节点到结束节点。

最佳答案

B&B的基本理念是:
当解决一个优化问题时(“找到一个满足标准y的x,以使成本f(x)最小化)”,你就一个一个地构建一个解决方案——在任何时间点,你都有一个部分的解决方案,这是有成本的。
如果问题的性质是这样的,一个部分解决方案的成本只能保持不变,或者随着你继续向它添加块而增加,那么你知道,如果已经有一个成本更低的完整解决方案,那么继续向一个部分解决方案添加块是没有意义的。在这种情况下,您可以放弃(或“prune”,或“fathom”)此部分解决方案的进一步处理。
许多问题都具有后者的性质,使得b&b成为一种广泛应用的算法技术。
搜索解决方案的过程可以用搜索树来表示,其中根节点表示尚未做出决策的起点,从节点引出的每条边表示关于要包含在部分解决方案中的某个内容的决策每个节点是包含从根到该节点的决策(边)的部分解决方案。
示例:如果我们要解决数独难题,根节点将用最初提供的数字来表示电路板;这个根可能有9个边,每个边代表将数字1-9分配给左上角单元格的决定这9个部分解节点中的每一个都可以有8个分支,表示位置(1,2)处单元格的有效分配,以此类推通常,每条边代表程序中的递归步骤。
有了b&b,在最好的情况下,一个好的解决方案可以在早期找到,这意味着搜索树中没有希望的区域可以在根附近修剪;但在最坏的情况下,将生成整个有效解决方案树。由于这个原因,b&b通常只用于解决没有更快算法的问题(例如np-hard问题)。

09-26 14:20
查看更多