图表的循环浏览

时间:2015-10-07 09:56:59

标签: graph graph-theory graph-algorithm

给定带有 N 节点和 M 边缘的有向图,您需要找到图的最小成本循环浏览,,从特定城市 X 开始,到同一城市结束。

对于以下两种情况,最有效的方法是什么:

  1. 边缘没有重量
  2. 加权边(第i边缘为Wi)
  3. 以上两种情况,但条件是每个城市可以访问不超过一次。 (除了第一个城市)。如果这不可能,则输出为-1。
  4. 提前致谢!

1 个答案:

答案 0 :(得分:1)

1。边缘没有重量。

如果边缘没有成本,实际上所有电路都变得相等,其中所有成本都是0。 合理地,如果隐含地说成本实际上是最小跳数,那么满足上述条件的任何电路也是等效的。然后,问题是找到一个电路,即Hamiltonian Circuit or Hamiltonian Cycle。要在图表中找出哈密尔顿电路是NP完全的。

n!可能的路线。蛮力方法具有运行时复杂度O(n!),其中 n 表示边数。

现有的最佳算法之一是here,包含模拟和代码。

2。加权边(对于 边缘,W i

当图形具有加权边缘时,问题变为众所周知的 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方法,它们并不是最优的。