我快速浏览了你提供的参考文献,我必须承认,我真的不喜欢你的教科书(第一个 pdf)中的一件事:它们解决了 NP 完整性,但几乎没有提及决策问题。所提供的 NP 完全问题的定义也有些偏离我对教科书的期望。我认为这是一个有意识的决定,以使介绍更具吸引力......
我将提供一个简短的答案,然后对相关概念进行更详细的解释。
简洁版本
直观地(非正式地),问题在于NP如果很容易verify它的解决方案。
另一方面,一个问题是NP-hard如果很难解决,或者find一个办法。
现在,如果一个问题既是 NP 又是 NP 难的,那么它就是 NP 完全的。因此,NP 完备性有两个关键的、直观的属性。便于verify,但很难find解决方案。
尽管它们看起来很相似,但验证和寻找解决方案是两件不同的事情。当您使用归约参数时,您正在考虑是否可以找到解决方案。在这方面,TSP和TSP-OPT都是NP难的,很难找到它们的解。事实上,第三个pdf提供了教科书练习8.1的解决方案,这直接表明TSP和TSP-OPT同样难以解决。
现在,TSP 和 TSP-OPT 之间的一个主要区别是前者是(教科书所说的)搜索问题,而后者是优化问题。验证搜索问题的解的概念是有意义的,并且在 TSP 的情况下很容易做到,因此它是 NP 完全的。对于优化问题,验证解决方案的概念变得很奇怪,因为如果不首先计算最佳解决方案的大小,我想不出任何方法来做到这一点,这大致相当于解决问题本身。由于我们不知道验证 TSP-OPT 解决方案的有效方法,因此我们不能说它是 NP 的,因此我们不能说它是 NP 完全的。 (详细解释中有更多关于此主题的内容。)
简单来说,对于 TSP-OPT 来说,验证难、求解难,而对于 TSP 来说,验证容易、求解难。
归约参数仅在寻找解决方案时有帮助,因此在验证解决方案时需要其他参数来区分它们。
更多细节
你的教科书非常简短地介绍了一件事:决策问题是。
形式上,NP 完整性、NP 硬度、NP、P 等概念是在决策问题而不是优化或搜索问题的背景下发展起来的。
下面是这些不同类型问题之间差异的简单示例。
决策问题是一个问题,其答案是YES or NO.
TSP决策问题
Input:图表G,预算b
Output:G 最多承认重量为 b 的旅行吗? (是/否)
这是搜索版本
TSP搜索问题
Input:图表G,预算b
Output:查找重量至多为 b 的 G 游览(如果存在)。
现在优化版本
TSP优化问题
Input:图G
Output:求一条权重最小的 G 巡游。
脱离上下文,TSP 问题可能涉及其中任何一个。我个人所说的TSP就是决策版本。这里你的教科书使用TSP作为搜索版本,使用TSP-OPT作为优化版本。
这里的问题是这些不同的问题是完全不同的。决策版本只要求存在,而搜索版本要求更多,它需要一个这样的解决方案的例子。在实践中,我们常常希望得到实际的解决方案,因此更实际的方法可能会省略提及决策问题。
现在呢? NP 完全问题的定义是针对决策问题的,因此从技术上讲,它并不直接适用于搜索或优化问题。但由于其背后的理论定义明确且有用,因此仍然可以方便地将术语 NP 完全/NP 困难应用于搜索/优化问题,以便您了解这些问题的解决难度。因此,当有人说旅行商问题是 NP 完全问题时,形式上它应该是该问题的决策问题版本。
显然,许多概念可以扩展,以便它们也涵盖搜索问题,这就是它在教科书中的呈现方式。决策、搜索和优化之间的差异正是课本中练习 8.1 和 8.2 试图涵盖的内容。这些练习可能旨在让您对这些不同类型的问题之间的关系以及它们之间的关系感兴趣。