Answers:
我们看到NP-完全问题的近似复杂度不同的一个原因是NP-完全问题的必要条件构成了问题复杂度的非常粗糙的度量。您可能熟悉问题是NP完全的基本定义:
考虑条件2:所需要的就是我们可以将转换为y,以保留“单比特”是/否答案。例如,见证人相对于是或否的相对大小(即,优化上下文中解决方案的大小)没有条件。因此,唯一使用的度量是输入的总大小,它仅对解决方案的大小给出非常弱的条件。因此,将Ξ变成Π是相当“容易”的。
通过查看一些简单算法的复杂性,我们可以看到各种NP完全问题的区别。着色具有蛮力O (k n)(其中n是输入大小)。对于k支配集,蛮力法取O (n k)。从本质上讲,这些是我们拥有的最佳精确算法。k-顶点覆盖层但是具有非常简单的O (2 k n c)算法(选择一条边,在其中包括的端点上进行分支,标记所有被覆盖的部分,继续进行下去,直到没有未标记的边或达到和bactrack的预算)。在多项式时间多一归约(Karp归约,即我们在上面条件2中所做的事情)下,这些问题是等效的。
当我们开始使用甚至更精细的工具(复杂度,参数化复杂度,我无法想到的其他任何复杂度)来处理复杂性时,我们使用的缩减变得更加严格,或更确切地说,对解决方案的结构更加敏感,并且差异开始出现;顶点覆盖(如Yuval所述)具有简单的2逼近度(但除非有一些复杂性类别崩溃,否则不具有FPTAS),k-支配集具有(1 + log n ) -逼近算法(但无(c log n ) -对于某些c > 0的近似),而对于 -Coloring 的直接版本,近似值根本没有任何意义。
近似算法。
这些示例尚未完全组成。MAX-INDEPENDENT-SET(等效于MAX-CLIQUE)和MIN-VERTEX-COVER的问题密切相关–独立集合的补集是顶点覆盖。但是,尽管前者很难近似,但后者具有简单的2近似。
表示给定问题的NP硬度的折减有时可以用来表示近似硬度,但这并非总是如此-它取决于折减。例如,从MAX-INDEPENDENT-SET减少到MIN-VERTEX-COVER并不意味着近似于后一个问题的硬度,这比前一个问题容易得多。
总而言之,NP硬度只是问题的一方面。近似硬度是一个不同的方面,它在很大程度上取决于近似的概念。
作为一种直观的方法,考虑到NP完全问题的实例化并不总是像一般情况那样困难。二进制可满足性(SAT)是NP完全的,但是找到A v B v C v D v的解决方案并不容易...复杂度算法仅约束最坏情况,而不是平均情况,甚至90%情况。
将NP完全问题简化为最简单的方法是简单地排除困难部分。是作弊,是的。但是通常其余部分对于解决现实世界中的问题仍然有用。在某些情况下,“容易”和“难”之间的界线很容易画出。正如您为TSP指出的那样,因为将问题约束在人们可能想到的“正常”方向上,所以难度大大降低。 ,很难找到现实生活中有用的方法来分离易零件和难零件。
为了完全脱离CS和数学的领域,请考虑使用一辆旧车。您的朋友想开车。如果您必须告诉他,“嘿,这辆汽车运转完美。只是不要让它超过95英里/小时。有一个令人讨厌的摆动会把您撞倒在路上,”这可能没什么大不了的。无论如何,您的朋友可能只想把它带到城里去。但是,如果您必须告诉他,“您必须正确地踩下离合器,使其从第1挡转到第2挡,否则发动机将失速”,对于您的朋友而言,如果没有经过少量的培训,就很难在城镇周围使用汽车。
同样,如果一个NP完全问题仅在特殊情况下才变得困难,那么当您查看子域时,它会相当快速地降低复杂性。但是,如果在常见情况下变得困难,则没有太多有用的子域可以避免困难的部分。