【发布时间】:2021-12-22 09:48:30
【问题描述】:
我正在尝试按照以下伪代码实现旅行商问题的 Held-Karp 算法:
(我在这里找到:https://en.wikipedia.org/wiki/Held%E2%80%93Karp_algorithm#Example.5B4.5D)
我可以手动完成算法,但在代码中实际实现它时遇到了麻烦。如果有人能提供一个易于理解的解释,那就太好了。
这个我也不明白:
我以为这部分是为了设置从起始城市到连接城市的距离。如果是这样,那不是C({1}, k) := d1,k而不是C({k}, k) := d1,k吗?我只是完全误解了这一点吗?
我还听说这个算法在大约 15-20 个城市之后表现不佳,所以对于大约 40 个城市,有什么好的替代方案?
【问题讨论】:
-
40 个城市在宏伟计划中并不多,但您必须决定如何在运行时间的可预测性与解决方案质量之间进行权衡。
-
@DavidEisenstat 嗯好的,很高兴知道。你会说 Held-Karp 是否适用于 40 个城市?
-
不,这不是一个好选择。我可能会达到那个规模的混合整数程序,但如果你需要保证运行时间,2-opt 或其他本地搜索算法。
标签: algorithm pseudocode traveling-salesman