算法概论 8,16

问题描述:



思路:

问题的核心在于如何把3sat问题规约到烹调实验问题,若成功规约,那么易得:如果烹调实验问题能够在多项式时间内解决,则3sat也可以。


证明:

假设我们现在面对的是n个variable(以下简称V),m个clausees(以下简称C)的3SAT问题,那么我们构建一个(2n+3m)*(2n+3m)的和谐度矩阵:每个variable都可以产生两种配料:true和false,每个clause可以产生三种配料:第一个变量符合、第二个变量符合和第三个变量符合。

现在我们来定义不和谐度:先全部初始化为0,接下来把以下情况的pair设为1:

1、V之间互斥值:比如variable x,它不可能既为true又为false,所以(x=true,x=false)的值为1

2、C之间互斥值:比如c1(第一个变量符合)与c2(第一个变量不符合)互斥,(c1,c2)的值为1

3、VC互斥值:比如对于C(u or not-v or w),他的c1(u=true,vw随意)与v(u=false)互斥,(c1 ,v)的值为1

现在我们设置好了和谐度矩阵。

接下来定义p,很简单,如果要满足3SAT要求,那么只需要把p设为0即可,也就是组合中任意元素之间的相斥度都要为0

这样我们就把3SAT规约为了烹调问题,也就是说,只要能在多项式时间内求解烹饪问题,则一定可以在多项式时间内求解3SAT问题。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值