我知道如何证明问题X是NP-Complete。
但是,我坚持为什么这个程序证明X是NP-Complete。有人能以一种相对简单的方式解释这个吗?
答案 0 :(得分:0)
NP完全问题被定义为NP-Hard和NP(定义)的问题,所以你基本上需要显示两件事:
您可以通过2种方式显示(2):
问题是,缩减是transitive,所以如果你证明某些NP-Hard问题(让L1
)减少到你的问题(让它为L2
}),你基本上表明从NP中的每个L
到L1
(NP-Hard的定义),从L1
到L2
(你的减少)因此,这些减少的链(它本身就是多项式,关于多项式的整齐的东西),是从NP中的每个L
到L2
(你的问题)的减少。
换句话说,由于每个L <=p L1 <=p L2
都L
,因此每L <=p L2
L
也是如此,这就是NP-Hardness的确切定义。
通过这种方式,您可以看出NP中的每个问题都会减少到您的问题,这就是NP-Hardness的定义。
由于直接显示NP中的每个L
缩减为某种语言,因此在SAT(Cook-Levin theorem)上执行了一次[实际两次...],现在你可以使用减少来增加已知的NP-Hard问题的数量。