在完全无向加权图中找到哈密顿路径与哈密顿环路

时间:2016-05-05 05:25:10

标签: algorithm graph language-agnostic traveling-salesman

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

除了简单的强制要求找到具有给定开始和结束节点的最佳哈密顿路径之外,我想不出解决方案。请提供一些指导,说明如何解决此问题。

2 个答案:

答案 0 :(得分:1)

给定的起始节点和结束节点等效于终端节点和起始节点之间的有向边必须是TSP巡视的一部分的约束。

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

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

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

答案 1 :(得分:0)

将一个大常量添加到除了给定起始节点和结束节点之间的每个边的权重之外,应该将其设置为零。常量可以选择为N*maxweight,其中N是顶点数,maxweight是最大边权重。这可以保证给定的边沿将包含在电路中。