如何将旅行商问题的(决策版)转换为汉密尔顿电路问题(即如何将TSP降低到HCP,这样如果我有HCP的解决方案,那么我将使用该解决方案解决TSP问题问题)?
答案 0 :(得分:5)
NP中的每个问题都可以是多项式时间减少到任何NP完全问题 - 这就是NP完全问题如此重要的原因。
这是一系列减少:
TSP是NP中的一个问题,因此它可以在可笑的长多项式时间内减少到哈密顿电路。
我从Computers and Intractability: A Guide to the Theory of NP-Completeness
获得了减少答案 1 :(得分:0)
汉密尔顿循环问题被证明是NP完全的(截至今天,已知要解决的最佳算法具有指数复杂性),
此外,哈密顿循环问题是一个决策问题(给定一个图,是否有一个非重叠边缘覆盖所有顶点的循环?)而TSP是一个搜索问题(在所有哈密顿周期中给我一个成本较低)。
所以....我不认为你要求的减少存在(直觉上TSP更复杂),如果确实如此,我认为它不会对你有所帮助,因为汉密尔顿问题是NP-完成(指数复杂性对于足够大的问题是不切实际的)。
如果您只是想解决TSP问题,那么只需使用known algorithms之一即可。其中一些设计用于少量顶点(这可能足够你)的表现相当不错。
注意:我假设您的意思是TSP搜索问题和哈密尔顿循环决策问题,可能不是这种情况。
答案 2 :(得分:0)
拍摄图表并移除所有边缘。如果添加的边缘目标不是距离v而不是来自tsp决策问题的长度常数,则从任意顶点v开始并添加从该顶点开始的有向边。
如果构造的图形具有哈密顿循环,那么它也是长度<1的游览。 k在原始图中,因此是TSP的解决方案。
反之,如果图中没有哈密顿循环: 因为你已经构建了所有长度的路径&lt; k从顶点v开始并且作为TSP的解决方案是长度<1的路径。 k从v开始,并且哈密顿循环,在原始图中没有TSP的解决方案。
答案 3 :(得分:-1)
来自维基百科关于Hamiltonian path problem的文章,可能会给你一个提示:
“汉密尔顿循环问题也是旅行商问题的一个特例,通过将两个城市之间的距离设置为1,如果它们相邻,另外两个,并验证行进的总距离等于n(如果所以,路线是哈密顿电路;如果没有哈密顿电路,那么最短的路线会更长。)
答案 4 :(得分:-1)
嗯,问题是你想要做什么。通常,TSP是关于找到smallest
方式。如果你想找到最小的方法,那你就不能这样做。只有你有汉密尔顿问题的所有解决方案
因为汉密尔顿问题并不关心边缘重量,但这对于推销员来说是必要的。
实施例: 图A,B,C与A-(10)-B,B-(10)-C,C-(1)-A
显然,A-> B-> C是Hamilton方式,但TSP的最佳解决方案是A-> C-> B如果您只想找到TSP的任何解决方案,不一定是最小的,那么您只需将TSP节点映射到Hamilton节点,解决它,返回映射就可以了。
答案 5 :(得分:-1)
TSP的输入实例是完整图,Ham_Cycle的输入实例是无向图G(u,v)。然后,转换函数必须将图形G映射到完整的图形。