关于旅行商问题中NP-hard和NP-Complete的困惑

时间:2018-04-14 23:31:53

标签: time-complexity complexity-theory computation-theory np non-deterministic

旅行推销员优化(TSP-OPT)是一个NP难题,旅行推销员搜索(TSP)是NP完全的。但是,TSP-OPT可以简化为TSP,因为如果TSP可以在多项式时间内求解,那么TSP-OPT(1)也可以。我认为A要降低到B,B必须要比A更难。如我在下面的参考文献中所见,TSP-OPT可以降低到TSP。 TSP-OPT应该比TSP更难。我很困惑......

参考文献:(1)算法,Dasgupta,Papadimitriou,Vazirani练习8.1 http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf https://cseweb.ucsd.edu/classes/sp08/cse101/hw/hw6soln.pdf

http://cs170.org/assets/disc/dis10-sol.pdf

2 个答案:

答案 0 :(得分:5)

我快速浏览了您提供的参考文献,我必须承认,在您的教科书中我真的不喜欢这一点(第1版):它们解决了NP完整性,而几乎没有提到决策问题< / em>的。提出的NP完全问题的定义也有点偏离我对教科书的期望。我认为这是一个有意识的决定,使引言更具吸引力......

我会提供一个简短的答案,然后是关于相关概念的更详细的解释。

短版

直观地(和非正式地),如果 NP ,则很容易验证其解决方案。

另一方面,如果难以解决或找到解决方案,则问题是 NP-hard

现在,如果NP和NP都是NP,那么问题就是NP完全。因此,您有两个关键的,直观的NP完全性属性。易于验证,但很难找到解决方案。

尽管它们看似相似,但验证和寻找解决方案是两回事。当您使用减少参数时,您将查看是否可以找到解决方案。在这方面,TSP和TSP-OPT都是NP难的,很难找到他们的解决方案。事实上,第三个pdf提供了练习8.1教科书的解决方案,这直接表明TSP和TSP-OPT等同难以解决。

现在,TSP和TSP-OPT之间的一个主要区别是前者是(教科书所称的)搜索问题,而后者是优化问题。验证搜索问题的解决方案的概念是有意义的,并且在TSP的情况下,它很容易做到,因此它是NP完全的。对于优化问题,验证解决方案的概念变得奇怪,因为在没有首先计算最优解的大小的情况下我无法想到任何方法,这大致相当于解决问题本身。由于我们不知道验证TSP-OPT解决方案的有效方法,我们不能说它在NP中,因此我们不能说它是NP完全的。 (详细说明中有关此主题的更多信息。)

tl; dr是针对TSP-OPT的,它既难以验证又难以找到解决方案,而对于TSP,它很容易验证并且很难找到解决方案。 减少参数只有在找到解决方案时才有用,所以在验证解决方案时需要其他参数来区分它们。

更多详情

您的教科书非常简短的一件事是决策问题是什么。 形式上,NP完全性,NP-硬度,NP,P等的概念是在决策问题的背景下开发的,而不是优化或搜索问题。

以下是这些不同类型问题之间差异的快速示例。

决策问题是一个问题,答案是 YES NO

  

TSP决策问题

     

输入:图表G,预算b

     

输出:G承认最多b的重量? (YES / NO)

这是搜索版

  

TSP搜索问题

     

输入:图表G,预算b

     

输出:如果存在,请查看最多重量为G的G之旅。

现在是优化版

  

TSP优化问题

     

输入:图表G

     

输出:查看最小重量的G之旅。

脱离背景,TSP问题可能涉及其中任何一个。我个人称之为TSP的是决策版。在这里,您的教科书使用TSP作为搜索版本,使用TSP-OPT作为优化版本。

这里的问题是那些各种问题是严格区分的。决策版只要求存在,而搜索版要求更多,它需要一个这样的解决方案的例子。在实践中,我们经常希望得到实际的解决方案,因此更实际的方法可能会忽略提及决策问题。

现在怎么样? NP完全问题的定义是针对决策问题的,因此从技术上讲它不直接适用于搜索或优化问题。但由于其背后的理论定义明确且有用,因此仍然可以将NP-complete / NP-hard一词应用于搜索/优化问题,这样您就可以了解这些问题需要解决的难度。因此,当有人说旅行商问题是NP完全时,正式问题应该是问题的决策问题版本。

显然,许多概念可以扩展,以便它们也涵盖搜索问题,这就是它在教科书中的呈现方式。决策,搜索和优化之间的差异正是练习8.1和8.2试图在教科书中涵盖的内容。这些练习可能是为了让你对这些不同类型的问题之间的关系以及它们之间的关系感兴趣。

答案 1 :(得分:3)

短版

决策问题是NP完全的,因为你可以为解决方案提供多项式时间验证器,以及哈密顿循环问题在多项式时间内可以简化为TSP_DECIDE的事实。

然而,优化问题严格来说是NP难的,因为即使TSP_OPTIMIZE可以在多项式时间内从哈密顿(HAM)循环问题中减少,你也没有一个多边形时间验证器用于声称的哈密顿周期C,它是否是最短的,因为你只需要枚举所有可能性(消耗阶乘空间和时间)。

给定的参考定义是什么,瓶颈TSP

瓶颈旅行商问题(瓶颈TSP)是离散或组合优化中的问题。问题是在加权图中找到哈密顿循环,这使得循环最重的边缘的权重最小化。

众所周知,问题是NP难。对于给定长度x,决策问题版本是#34;在图G中存在哈密顿循环,没有边缘长于x?&#34;,是NP完全的。 NP-完全性随后立即从找到哈密顿循环的问题中减少。

这个问题可以通过对最小的x执行二元搜索或顺序搜索来解决,使得最多x的权重边的子图具有哈密顿循环。 这种方法可以得到解决方案,其运行时间只是一个大于查找哈密顿循环时间的对数因子

长版

错误是说TSP是NP完整的。事实是TSP是NP难的。让我解释一下:

  

TSP是由一组城市和距离定义的问题   每个城市对之间。问题是找到一个电路   通过每个城市一次,并在它开始的地方结束。这本身就是这样   并不难。让问题变得有趣的是找到   所有可能的最短路径。

解决这个问题非常简单。人们只需要计算所有可能电路的长度,然后保持最短的电路。问题是这些电路的数量随着城市数量的增长而迅速增长。如果有n个城市,那么这个数字是因子n-1 =(n-1)(n-2)...... 3.2。

问题是NP,如果人们可以轻易地(在多项式时间内)检查建议的解决方案确实是一个解决方案。

这是诀窍。

为了检查拟议的巡回演出是TSP的解决方案,我们需要检查两件事,即

  1. 每个城市只访问一次
  2. 没有比我们正在检查的旅行更短的旅行
  3. 我们没有检查第二个条件!第二个条件是使问题难以解决的原因。截至今天,没有人找到在多项式时间内检查条件2的方法。据我们所知,这意味着TSP不在NP中。

    因此,据我们所知,TSP并非NP完整。我们只能说TSP是NP难的。

    当他们写TSP是NP完成时,他们意味着以下决策问题(是/否问题)是NP完成的:

    TSP_DECISION :给定一个数字L,一组城市以及所有城市对之间的距离,是否有一个游览每个城市的长度小于L?

    这个问题确实是NP完成的,因为很容易(多项式时间)检查给定的游览是否对TSPDECISION有答案。