根据约束构建图形

时间:2012-03-05 15:01:46

标签: algorithm graph graph-algorithm

假设:

  • 节点列表
  • 这些节点可以连接到的节点列表
  • 每个节点必须连接到一个且只有一个其他节点(单向连接)的约束
  • 必须从任何节点
  • 开始访问所有节点

是否有算法可以为我提供这样的图表,如果有可能构建或以其他方式给出具有最高节点数的图形?

是否可以在多项式时间内完成?

否则,是否有一种算法可以足够快地提供足够好的解决方案?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您正在尝试找到Hamiltonian cycleNP-Complete problem

为什么问题等同于找到汉密尔顿循环:

n为节点数。鉴于每个节点仅与另一个节点连接的约束,解决方案具有n个边缘。因为每个节点都必须是可达的,所以每个节点将是的尾部,至少一个边缘。但是该解决方案具有n个边缘,因此每个节点将是正好一个边缘的尾部。因此,解决方案是路径的结合。所有边缘必须可以从所有其他边缘到达的约束使得解为哈密顿循环。

答案 1 :(得分:0)

搜索定向最小生成树算法。

这看起来不错: http://www.utdallas.edu/~rbk/papers/dmdst.pdf

同样的问题是NP难。

编辑: 编辑后,它是定向哈密顿循环问题http://www.proofwiki.org/wiki/Directed_Hamilton_Cycle_Problem_is_NP-complete