【问题标题】:Hamiltonian path algorithm哈密​​顿路径算法
【发布时间】:2011-12-06 21:50:09
【问题描述】:

我有一个项目,如果存在,我必须使用两种不同的算法在无向无权图中找到一条哈密顿路径。我已经使用回溯实现了一个启发式算法,但我一直在寻找另一个,但似乎找不到。

所以我的问题是,除了使用回溯之外,您还知道哪种算法可以找到哈密顿路径?

编辑:查看其他几篇帖子后,我发现我们可以通过使用最长路径算法找到一条哈密顿路径,并检查路径的长度是否等于顶点数 - 1。我想知道这是否是真是假。

提前致谢。

【问题讨论】:

    标签: graph


    【解决方案1】:

    由于汉密尔顿路径是 NP 完全的,因此您可能最终会遇到某种形式的回溯。是否使用堆栈或穷举枚举来实现指数级爆炸很大程度上取决于您。

    如果您寻找公式,您可以查看各种 TSP 算法(我不太了解哈密顿路径技术)。考虑到任何利用三角不等式的方法都不适用,因为您的权重实际上都是 1 和无穷大(边不存在)。

    寻找不需要三角不等式的 TSP 分支和切割公式。分支和切割似乎是 TSP 可证明最优解决方案的最先进技术。

    使用最小生成树进行分支和绑定可能会很好(它很容易实现),并且您可以以迭代方式(在分支之间)使用节点权重来增加最小生成树,作为破坏度数节点的一种方式 > 2 到 2 度的节点,而不改变结果的正确性。我不记得技术名称(而且我在工作,所以我无法查找)。但是您对 MST 的新距离指标将是:

    cost[i,j] = (exists(i,j) ? 1 : infinity) + node_augmentation[i] + node_augmentation[j]。

    改变增广以实现良好收敛的规则稍微复杂一些(如果 degree[i] > 2 则增加,如果 degree[i]

    抱歉,答案很糟糕,但我希望这对您寻找方法有所帮助。由于我真的不知道 TSP 技术在汉密尔顿路径技术上的应用效果如何,因此我可能无济于事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      相关资源
      最近更新 更多