P问题,NP问题,NPC问题,NPH问题

P问题

可以在多项式时间内求解的问题。

“P” 代表 “polynomial time” 。

NP问题

可以在多项式时间内检查解是否合法的问题。

“NP” 代表 “nondeterministic polynomial time” 。

显然有 P ⊆ N P P\subseteq NP PNP

归约

对于两个问题A和B,如果能够在多项式时间内对A的输入进行转化,使得解决B的算法能够得到A问题的输出,那么就称A可以归约为B。一个例子是A为求解形式为 a x = b ax=b ax=b的方程,而B为求解形式为 a x 2 + b x + c = 0 ax^2+bx+c=0 ax2+bx+c=0的方程。

NPC问题(NP完全问题,NP-Complete问题)

对于一个NP问题,如果所有的NP问题都可以归约为它,那么称之为NPC问题。

NPH问题(NP-Hard问题)

对于一个问题,如果所有的NP问题都可以归约为它,那么称之为NPH问题。

关于3-sat问题

3-sat问题

有若干个布尔型的变量(variable)。

定义文字(literal)为,一个variable(称为positive literal)或者它的取反(称为negative literal)。

定义子句(clause)为,若干个文字(可能是一个)的或。

定义3-sat问题为:给出一个布尔表达式,这个表达式由若干个子句的与构成,每个子句恰好为三个文字的或,问是否存在一种给变量赋值的方式,使得表达式的值为真。

3-sat问题相关的归约

(下面的例子来自维基百科)

表达式 l 1 ∨ l 2 ∨ l 3 ⋯ ∨ l n l_1 \vee l_2\vee l_3\cdots\vee l_n l1l2l3ln可以归约为3-sat的形式:

( l 1 ∨ l 2 ∨   x 2 ) ∧ ( ¬ x 2 ∨ l 3 ∨ x 3 ) ∧ ( ¬ x 3 ∨ l 4 ∨ x 4 ) ∧ ⋯ ∧ ( ¬ x n − 3 ∨ l n − 2 ∨ x n − 2 ) ∧ ( ¬ x n − 2 ∨ l n − 1 ∨ l n ) (l_1 \vee l_2\vee \ x_2) \wedge \\ (\neg x_2 \vee l_3 \vee x_3) \wedge \\ (\neg x_3 \vee l_4 \vee x_4) \wedge \cdots \wedge \\ (\neg x_{n-3} \vee l_{n-2} \vee x_{n-2}) \wedge\\ (\neg x_{n-2} \vee l_{n-1} \vee l_n) (l1l2 x2)(¬x2l3x3)(¬x3l4x4)(¬xn3ln2xn2)(¬xn2ln1ln)

已经被证明的重要结论:任意一个NP问题都可以归约为一个3-sat问题。

所以,如果要证明一个问题是NPC问题,则只需要证明它是NP问题且可以由某一个已知为NPC的问题归约到它就可以了。

P=NP?

到目前为止还没有找到在多项式时间内求解NPC问题的算法,也无法将这个命题证明或者证伪。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值