TCS:NP-hard

好久没有写我的理论计算机初步系列了,其实复杂性这一块,虽然平时经常遇到,但由于问题都过于本质和困难,想这方面问题的时间反而不多。Ko教授就跟我说也许NP verse P这个题并不难,只不过大家认为它很难,结果就没有多少人去做了,大家一遇到这个问题都远远得绕开。话虽如此,我还是不敢去碰的。

很多人一看到NP-hard,就从字面上理解成为比NP还难的问题。但如果这里的“更难”指得是解决问题所花费时间更长的话,这个论断是不正确的。从算法角度来看,NP-hard问题的确比NP难,但比NP还难(指花费时间更多)的问题却不见得是NP-hard的。

仔细检查NP-hard的定义:一个问题(语言)L是NP-Hard的,当且仅当3SAT问题可以在多项式时间规约到L,即存在一个可多项式时间计算函数f,使得\phi\in 3SAT当且仅当f(\phi)\in L

注意NP-hard的概念只有在NP!=P的时候才有意义,因为在NP=P的时候,除了空集和全集语言外,所有问题都是NP-hard的。

但在NP!=P的时候,NP-hard问题的分布呈什么状态呢?

定理1:所有unary语言都不可能是NP-hard的(除非NP=P)。语言L是unary的,指L里的任一元素都是1n的形式。

根据此定理,如果我们能找到一个NP-hard的unary的undecidable问题,就证明NP=P了 :)

定理2:Turing机停机问题是NP-hard(by Dr. Sun)

这个定理有点出人意料,但仔细想想也不难证明。而且这个问题不难转成unary的形式,可惜这个转化过程不是多项式时间的,所以转化过后就不一定是NP-hard的了。

思考1:NEXP里有问题不是NP-Hard吗?

思考2:为什么NP-complete用多项式时间规约,PSPACE-complete也用多项式时间归约,而不是多项式空间规约?

你可能感兴趣的
相关文章

3条留言

  • At 2007.11.29 01:04, mathena said:

    我混乱了 图灵同学的停机问题不是不可判定的么 怎么成了 NP 的了, 能不能给个paper 链接?

    • At 2007.11.29 10:25, zhiqiang said:

      NP-hard不需要在NP里面。如果还在NP里面的话,那么它就是NP-complete了,这是NP-hard与NP-complete的唯一区别。

      停机问题是NP-hard这个证明不难,你仔细想想就出来了 :)

    • At 2008.01.06 01:28, bravuara said:

      问题二是,如果用多项式空间规约,那么这个规约太弱了,反映不了问题的本质

      (Required)
      (Required, not published)

      guest | 注册 | BBS | 管理 | English | 繁體

      阅微堂

      鬼神可敬不可恶,冤家宜解不宜结。
      Loading...
      Loading...
      Loading...