显示NP,NP-完整性或NP-硬度

时间:2015-04-30 07:17:08

标签: algorithm np

我对这三个类别的理解是否正确?

要显示问题X是NP:

  1. 表明可以在多项式时间内确定性地验证X(或者 X可使用NTM解决
  2. 要显示问题,X是NP-Complete:

    1. 表明可以在多项式时间内确定性地验证X(或者 X可使用NTM解决
    2. 显示给定已知的NP-C问题L,L≤pX
    3. 显示给定已知的NP-C问题L,X≤pL(这是步骤 必要?如果是这样,这是区分纯粹的NP-Hard的原因 NP-C问题的问题?)
    4. 要显示问题X是NP-Hard:

      1. 显示给定已知的NP-C问题L,L≤pX

1 个答案:

答案 0 :(得分:7)

你几乎得到了它。

如果遇到问题X,要显示它是NPC,您就不需要显示X ≤p L,因为某些NPC问题L

事实上,这是有保证的,因为你已经证明X在NP(1)中,你知道L是NP-Complete。根据NP-Complete的定义,这意味着从NP中的所有问题到L的多项式时间减少,包括来自X,因此基本上证明NPC的步骤(3)是多余的。

一种更优雅的方式来显示证明每个属性需要做什么的陈述:

要显示X是NP:

  1. 显示X可以在多项式时间内确定性地验证(或者X可以使用NTM解决)
  2. 要显示X是NP-Hard:

    1. 显示已知的NP-Hard问题L,L≤pX
    2. OR

      1. 显示NP中的任何问题L,L≤pX(对于SAT,实际上只执行一次,并且是NP-Hard的定义)。
      2. 要显示问题,X是NP-Complete:

        1. 显示X是NP-Hard
        2. 显示X在NP