Algorithm 在求解旅行商问题时,分支定界算法如何比蛮力算法更快?

Algorithm 在求解旅行商问题时,分支定界算法如何比蛮力算法更快?,algorithm,brute-force,traveling-salesman,branch-and-bound,Algorithm,Brute Force,Traveling Salesman,Branch And Bound,我理解分枝定界算法是如何解决旅行商问题的,但我很难理解该算法是如何比蛮力更快。在我看来,你最终会走完所有的路。有人能举例说明B&B算法比暴力强制所有路径更快吗?假设我们有以下欧几里德TSP实例: 0 7 1 6 2

我理解分枝定界算法是如何解决旅行商问题的,但我很难理解该算法是如何比蛮力更快。在我看来,你最终会走完所有的路。有人能举例说明B&B算法比暴力强制所有路径更快吗?

假设我们有以下欧几里德TSP实例:

0                                                       7
1                                                       6
2                                                       5
3                                                       4
每个数字都是一个顶点,所有节点之间的线段都是未绘制的边

蛮力方法将检查所有8!=40320条可能的路径

另一方面,分支定界算法可以从路径0开始→1.→2.→3.→4.→5.→6.→7,这恰好是最佳的,并过滤掉所有其他路径,这些路径通过在左侧节点和右侧节点之间多次交替开始。例如,当它考虑部分路径0时→4.→1它将看到该前缀的长度已经超过了到目前为止找到的最短路径的长度,因此不需要下降并检查从0开始的每条路径→4.→1个人。仅此前缀就过滤掉了5个!=120个单独的路径,但有96个这样的交替前缀,累积过滤掉11520个潜在的解决方案,或29%的解决方案空间