Algorithm 米制旅行推销员,强迫边缘进入解决方案

Algorithm 米制旅行推销员,强迫边缘进入解决方案,algorithm,graph,traveling-salesman,Algorithm,Graph,Traveling Salesman,通常,TSP解决方案是使边上的总成本最小的解决方案 然而,在我的情况下,我需要一个解决方案的具体优势,这并不重要,如果它的解决方案不再是最优的 然而,重要的是,在包含该边的所有哈密顿循环中,得到的解是最优的。或者至少有界 更正式的问题是:给定一个完整的度量图和一条特定的边,通过该特定边的代价最小的哈密顿循环是什么 编辑: 变换图形可能是个好主意。但请记住,生成的图仍然必须是度量的和完整的。在这种情况下,一个非完全图相当于一个非度量图,只要想想缺失的边实际上是一个代价过高的边。 这一点很重要,因为

通常,TSP解决方案是使边上的总成本最小的解决方案

然而,在我的情况下,我需要一个解决方案的具体优势,这并不重要,如果它的解决方案不再是最优的

然而,重要的是,在包含该边的所有哈密顿循环中,得到的解是最优的。或者至少有界

更正式的问题是:给定一个完整的度量图和一条特定的边,通过该特定边的代价最小的哈密顿循环是什么

编辑: 变换图形可能是个好主意。但请记住,生成的图仍然必须是度量的和完整的。在这种情况下,一个非完全图相当于一个非度量图,只要想想缺失的边实际上是一个代价过高的边。 这一点很重要,因为一般距离不可能有多项式时间算法。
如果你好奇的话,这一事实的证明是在S.Sahni和T.Gonzalez(1976)的“P-完全近似问题”中。

如何使该边的成本足够低,使包含它的哈密顿循环比不包含它的哈密顿循环的成本更高

让我们是图中所有距离的总和。在每个边的成本中添加2*S,固定边除外。这样,包含固定边的每个哈密顿循环的代价最多为(N-1)*2*S+S,不包含固定边的每个循环的代价至少为N*2*S


三角形不等式也被保留,因为每个三角形(x,y,z)变成(x+2*S,y+2*S,z+2*S)或(x,y+2*S,z+2*S)。

如果x-y是边,可以引入一个新的顶点z,使z仅连接到x和y,并移除x-y。距离(x,z)+距离(z,y)=距离(x,y).

你不能把问题分成两部分来解决吗?如果必须包含的边是A-B,则是从起点到A的最短路径,然后是从B到终点的最短路径。然后把这两条路结合起来。我的错,我的意思是循环而不是路径。我编辑。但是,如何将这两种解决方案结合起来?捷径?用一个额外的顶点打断边。结合它们取决于你需要什么信息-路径距离?旅行节点?老实说,我对如何制作这些图表的记忆有点模糊;我已经好几年没用过它了。这可能不是最佳解决方案(如果方向不重要,您可能还需要涵盖B-A),但这可能足以让您继续。@n.m.图形必须完整且符合度量。你的想法不适用。足够低可能是一个好主意,但你不能太低而不丢失三角形不等式。@Paolo.Bolzoni编辑了答案,添加了一个保持图形度量的示例。近似算法不能保证找到最短路径,只能找到足够近的路径(例如,与最佳值的差异不超过1+ε的因数)。如果你像在你的解决方案中那样将距离增加了一个巨大的数字,那么每条路径都可能在最优值的1+ε范围内。因此,只有找到精确的解决方案才是好的。n.m.有一点,但是经典的TSP近似使用最小生成树。因此,只需要增加其他边的成本,以便(s,d)是最小的,所以是mst的一部分。我想我可以用这个想法。