NP完全性证明

NP-complete的问题就是说这个问题既是NP又是NP-hard。

NP-complete的问题就是难以在多项式时间内解决的问题。

因此,当对于一个问题不会解决时,能证明它是NP完全问题,那么不会做也无可厚非了。

如何证明一个问题的NP完全性呢?——使用规约

首先找到一个已知的NP完全问题,然后证明这个问题能规约到想要被证明NP完全性的问题。那么就可以说它是一个NP完全问题了。

如何规约?

对于A->B(A规约到B),就是证明A的输入能映射为B的输入,B的输出能映射为A的输出。(注意映射方向)

STINGY SAT问题:给出一个字句的集合和一个整数k,每个字句由分离的文字组成(每个文字是布尔变量),找出一个可满足的值分配,其中最多k个变量为true。

要证明这个问题是NP完全问题,首先要找到一个已知的NP完全问题。

SAT就是一个NP完全问题,SAT问题是对布尔表达式中的每个变量赋值,使得整个式子的值为true。

规约:SAT->STINGY SAT

输入映射:每个SAT的输入可以作为一个CNF,就是多个字句间用与连接,而字句里面的文字用或连接,SAT我们是对所有变量赋值。如果我们把变量的个数设为k。

那么,每个SAT的输入都可以映射为一个STINGY SAT的输入了。

输出映射:对于一个STINGY SAT的输出,是找出一个变量赋值分配(不多于k个变量为true),使得式子为真。当k为变量个数时,每一个输出都将映射到SAT的输出(SAT的真值指派不可能会有多于k个变量值为true,因为变量个数都没有那么多)

因此,可以说STINGY SAT是一个NP-complete

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值