algorithm - 在完整的无向加权图中寻找哈密顿路径与哈密顿电路

标签 algorithm graph language-agnostic traveling-salesman

我有一个带权重的完整图(调整矩阵)。我已经构建了一个解决方案,用于使用分支定界找到该图中的最小汉密尔顿电路(旅行商问题)。我现在一直在寻找具有给定开始和结束节点的最佳汉密尔顿路径。如果没有给定的开始和结束节点,最好的解决方案是哈密尔顿电路——电路中最长的边。

除了用给定的开始和结束节点简单地强制寻找最佳哈密顿路径之外,我想不出其他解决方案。请提供一些有关如何处理此问题的指示。

最佳答案

给定的起始节点和结束节点等价于结束节点和起始节点之间的有向边必须是TSP旅行的一部分的约束。

所以你可以简单地改变你的邻接矩阵:

  • 将所有从所需结束节点的出边设置为无限权重,除了到起始节点的边
  • 将所有传入边设置为所需起始节点的无限权重,除了来自结束节点的边
  • 也将从起始节点到结束节点的边设置为无限权重(以确保您不会得到反向解决方案,如果您的邻接矩阵不对称,这可能会有所不同)

这与您的实现使用的分支方法非常相似。

关于algorithm - 在完整的无向加权图中寻找哈密顿路径与哈密顿电路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37043018/

相关文章:

swift - 用线连接网格中的点

algorithm - 命名该技术(它可能被称为 'piggybacking' )

java - 集合与其迭代器之间是否存在循环依赖?

找到包围一个点的线的算法

ruby - 查找两个具有困难匹配条件的数组之间的匹配项

c++ - 点对点线性渐变?

algorithm - 在 n 步内计算有向图中获得的最大值的好算法

java - Neo4j:删除2个节点之间的关系 Neo.ClientError.Statement.SyntaxError

java - 如何在 Java 8 中向 LocalDate 添加天数时跳过周末?

algorithm - 给定一个排列的字典序号,是否有可能在 O(1) 中得到其中的任何项目