给定带有 N 节点和 M 边缘的有向图,您需要找到图的最小成本循环浏览,即,从特定城市 X 开始,到同一城市结束。
对于以下两种情况,最有效的方法是什么:
提前致谢!
答案 0 :(得分:1)
如果边缘没有成本,实际上所有电路都变得相等,其中所有成本都是0。 合理地,如果隐含地说成本实际上是最小跳数,那么满足上述条件的任何电路也是等效的。然后,问题是找到一个电路,即Hamiltonian Circuit or Hamiltonian Cycle。要在图表中找出哈密尔顿电路是NP完全的。
有 n!可能的路线。蛮力方法具有运行时复杂度O(n!),其中 n 表示边数。
现有的最佳算法之一是here,包含模拟和代码。
当图形具有加权边缘时,问题变为众所周知的 TSP (Travelling Salesman Problem),这是一个NP难问题。围绕TSP复杂性,社区存在混淆。您必须区分 TSP-Optimize 和 TSP-Decide 。
TSP-Optimize是NP-hard。
TSP-Decide是NP-complete。
有关详细说明,请检查这些资源1 2。您可以在here找到讨论。
要求您实施TSP优化。
- 动态编程
Bellman-Held-Karp算法。您可以在here中找到伪代码。 运行时复杂度:O(2 n n 2 ),其中 n 表示边数。
虽然存在其他解决方案技术,但采用Divide-and-Conquer或Greedy方法,它们并不是最优的。