我一直在阅读有关解决旅行商问题的不同算法,但似乎找不到一个例子,你不希望访问图中的所有点头。在示例中,假设我有一个由点头n1,n2,n3,n4,n5,n6组成的图形。在经典的旅行推销员问题中,我想在最短的时间内访问所有的点头。但是如果我想从n1离开并且只访问n3 n5和n6怎么办呢。如果必须的话,我可以通过其他点头,但我必须访问的唯一点是n1 n3 n5 n6并返回到n1。这意味着我所寻找的是从n1到n1的最短路径,它们通过这3个点。任何关于要查看哪种算法的提示都是受欢迎的。
谢谢
Samuel Benitah
答案 0 :(得分:1)
让V
成为您需要访问的顶点集。设d(u,v)
为从u
到v
的最短路径的长度。对于u
中的每对顶点v
和V
,请添加u
到v
的边长d(u,v)
。设这个图是G
,即G是由这些边增加的原始图。让G_V
成为G
仅限V
。您的问题等同于解决G_V
上的TSP问题。要注意这一点,请注意,如果P
是G
中满足约束条件的最佳路径中的细分受众群,那么只有其端点(例如u
和v
)位于{ {1}},V
的长度应为P
。如果没有,您可以使用从d(u,v)
到u
的最短路径替换该细分,并改进最佳解决方案。