TSP的动态编程

时间:2012-12-01 15:22:44

标签: dynamic-programming np-complete

在阅读了wiki中的TSP之后,我发现它说明DP是TSP问题的精确算法,但我很困惑,如果他们有一个问题的精确算法,问题是否仍然被归类为NPC?任何答案都表示赞赏。 wiki TSP page

1 个答案:

答案 0 :(得分:2)

Nitin Gurram的评论绝对不正确。

NP-Complete问题可以(并且确实)具有精确的算法,但是所有这样的目前已知的精确算法在指数时间内执行,最坏的情况。对于旅行商问题,一个天真但仍然准确的算法是枚举每个可能的旅行推销员路线,计算每个路线的长度,并选择最小的。但是因为这些路径的数量随着城市的数量呈指数增长,所以算法需要指数时间来执行。您指向的维基百科页面说的很多。

动态编程方法并不像天真的方法那么糟糕,它是另一种精确的算法,但它仍然以指数时间的最坏情况运行。

NP-Completeness 没有说没有确切的算法。这意味着没有已知的精确多项式时间算法,以及其他一些技术复杂性理论要求。

(作为旁注,NP-Complete与NP的复杂度不同。所有NP意味着有一个多项式时间验证算法,给出一个解决方案.NP-Complete是一个正如我所提到的那样,该集合的子集还有一些其他技术要求。)