《算法概论》chapter8 NP完全问题

部分题目解答:

8.8

题目:

The EXACT 4SAT problem, the input is a set of clauses, which is a disjunction of exactly four literals, and such that each variable occurs at most once in each clause. The goal is to find a satisfying assignment, if one exists. Prove that EXACT 4SAT is NP-complete.

解答:

参考博客:

(1)P问题:在多项式时间内可解的问题。
(2)NP问题(Nondeterminism Polynomial):在多项式时间内“可验证”的问题。也就是说,不能判定这个问题到底有没有解,而是猜出一个解来在多项式时间内证明这个解是否正确。即该问题的猜测过程是不确定的,而对其某一个解的验证则能够在多项式时间内完成。P类问题属于NP问题,但不确定是否为NP问题的真子集。
(3)NP完全问题(Nondeterminism Polynomial complete):存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:
首先,它得是一个NP问题;
然后,所有的NP问题都可以约化到它。
要证明npc问题的思路就是:
先证明它至少是一个NP问题,
再证明其中一个已知的NP完全问题能约化到它。
(4)NP难问题(NP-hard问题):NP-Hard问题满足NP完全问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是他不一定是一个NP问题。即只要对该问题存在一种多项式时间,即可解决所有NP问题 NP-Hard问题同样难以找到多项式的算法,但它不列入我们的研究范围,因为它不一定是NP问题。即使NP完全问题发现了多项式级的算法,NP-Hard问题有可能仍然无法得到多项式级的算法。事实上,由于NP-Hard放宽了限定条件,它将有可能比所有的NPC问题的时间复杂度更高从而更难以解决。

对于这题:
1. 易知,EXACT 4SAT 问题是NP问题。
2. 通过将3SAT归约到EXACT 4SAT来证明NP完全性。对于任意一个3SAT实例,如果其中某个子句中包含了同一个文字多次,那么可以缩减为一次;如果同时包含了某个变量的肯定和否定,那么可以将这个变量删去。之后再在每个子句中添加一些哑变量,把每个子句中所包含的文字数目扩充到四个。至此,已将该3SAT实例转换为一个EXACT 4SAT问题。

添加哑变量举例:
这里写图片描述
转换为:
这里写图片描述
如上图,第二张图的z上面少了一横。a1,a2等变量没有任何约束。

8.14

题目:

证明下述问题为NP-完全问题:给定无向图G = (V,E),常数k,同时返回一个size是k的团和独立集。

解答:

最大独立集:从无向图中的顶点中选出k个并且k个顶点之间互不相邻,最大的k就是最大独立集
最大团:从无向图的顶点集中选出k个并且k个顶点之间任意两点之间都相邻(完全图),最大的k就是最大团
性质:无向图的最大团==该无向图补图的最大独立集

可以将最大团的问题归约至此。求图G’(V, E)中大小为k的团,可以在图G’中添加k个相互独立的顶点,得到新图G,则G中保证了既有size为k的独立集,也有size为k的团。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值