我正在寻找NP和NP完全问题之间的区别。我在Jason的StackOverflow中找到了这个很棒的答案。关于NP完全问题,他说
NP问题X,可以在多项式时间内将任何其他NP问题Y减少到X.直观地说,这意味着如果我们知道如何快速解决X,我们可以快速解决Y.确切地说,如果存在多项式时间算法f,则Y可以简化为X,以便在多项式时间内将X的实例x转换为Y的实例y = f(x),并且当且仅当答案时,x的答案为是到f(x)是肯定的。
我的问题是:哪一个是NP完全问题,X还是Y?
答案 0 :(得分:6)
NP完全语言是X.这个想法是你可以从任意NP语言Y开始,并在多项式时间内将它缩减为X.
形式上,NP完全性的定义如下:语言X称为NP-complete iff
也就是说,可以将任何NP完全语言减少到任何其他NP完全语言,因此如果Y多项式时间减少到X而X是NP完全的,那么对Y可能(但不是必须)完成NP。然而,众所周知,如果Y在多项式时间内减少到X,则Y必须是NP的元素。
希望这有帮助!
答案 1 :(得分:2)
两者兼而有之。这个过程称为卡尔普减少,重点是任何NP完全问题都可以在多项式时间内转化为任何其他NP完全问题。
NP完全问题只是NP问题的一个子集。 (根据我们目前的理解,如果P = NP,它们是相同的。)