我对NP-hard问题感到困惑。
一些NP-hard问题在NP中,称为NP -完全问题,而另一些问题不在NP中。
例如:停机问题只是NP难的,不是NP完全的。
但是为什么它不是NP完全的呢?我的意思是,一个问题应该有什么属性才算得上是
“NP-困难但不是NP-完全问题”?
发布于 2011-04-15 02:08:23
我认为最简短的答案是: NP-complete = NP-hard,in NP。
因此,要证明一个问题是NP完全的,你必须证明它既是NP难的,也是NP中的。通常,表明问题在NP中是相当容易的(只需给出一个非确定性的多项式时间算法)。要证明一个问题是NP-难的,嗯,很难。因此,即使在NP-完备性的证明中,大部分证明也是专门针对NP-硬度的。
至于停顿问题,它不是NP中的问题,因此不是NP完全的。
发布于 2012-08-08 20:29:41
定义NP的是这样一个事实:您可以在多项式时间内验证NP问题的解决方案。因此,如果一个问题是NP-难的,但不是NP-完全的,你就不能在理论上及时地验证问题的解决方案。如果你看一下停机问题,这是有意义的。解决方案要么是'yes‘,要么是'no',这只能通过再次解决原始问题来验证,这意味着它不在NP中。
发布于 2011-04-14 19:46:36
NP-hard的简单意思是“至少和NP中的问题一样难”。NP -完全是指“在NP中,所有的NP-完全问题都可以归结为这个问题,并且这个问题可以归结为所有的NP-完全问题”。
The Wikipedia article可能是一个很好的起点,因为它专门讨论了停机问题作为其插图之一。
https://stackoverflow.com/questions/5654040
复制相似问题