算法概论第八章练习题 8.14
来源:互联网 发布:sql server 2008 视图 编辑:程序博客网 时间:2024/06/05 16:37
题目:
证明如下问题是NP-完全的:
给定一个无向图G=(V, E)和整数k,求G中一个规模为k的团以及一个规模为k 的独立集。假定他们都是存在的。
证明:
(1)团:顶点子集V'⊆V,其中每一对定点之间都由E中的一条边来连接,即团是G的完全子图。
对于一个给定的图G = (V, E),团中顶点集V',对任意一对顶点u, v∈V',检查边(u, v)是否属于E,就可以在多项式时间确定V'是不是团。
把3-SAT归约到团,设φ= C1∧C2∧…Ck是3-CNF形式中一个具有k个子句的布尔公式。每个子句Cr中恰有3个不同的文字l1r,l2r,l3r。构造一个图G使得当且仅当G中包含一个规模为k的团时,φ可满足。
按以下要求构造图G:
对φ中的每个子句Cr=l1r∨l2r∨l3r,我们把三个顶点v1r,v2r,v3r组成的三元组放入V中。如果下列两个条件同时满足,就用一条边连接顶点vir,vjs: 1) vir,vjs处于不同的三元组中,即r≠s; 2) 它们的相应文字是一致的,即lir 不是ljs 的非。
下面证明构造的图G满足要求:
首先,假定φ有一个可满足性赋值,那么每个字句Cr至少包含一个文字lir,将此文字赋值为1,并且把每个这样的文字对应于一个顶点vir。从上述的每个子句中挑选出的一个赋值为真的文字就得到对应的k个顶点,记这k个顶点构成的集合为V'。V'中任意两点间都有边,这是因为根据构造G的第一个条件,V'中的每个顶点都选自不同的子句。所以V'构成G的一个规模为k的团。
反之,如果G中有规模为k的团V' ,构造G的条件1),V'中顶点对应的文字都不在同一个子句中,所以V'中顶点恰好包含了k个子句。把V'中顶点所对应的文字赋值为真,这是可以做到的,因为构造图G的条件2),所有有边相连的两个顶点相应的文字是一致的,可以同时赋值为真。这样就找到了使φ满足的一组赋值条件,所以φ可满足。
综上,当且仅当G中包含一个规模为k的团时,φ可满足。也就是把3-SAT问题归约到了团问题。
(2)独立集:根据图论中的定理:图G中存在规模为k的团当且仅当G___中存在规模为k的独立集。独立集问题也是NP完全问题。
- 算法概论第八章练习题 8.14
- 算法概论第八章练习题 8.19
- 算法概论第八章练习题 8.10
- 算法概论第八章练习题8.3
- 算法概论第八章练习题 8.3
- 算法第八章练习题20
- 《算法概论》第八章习题 8-15
- 算法概论第八章课后习题
- 算法概论第八章课后习题
- 算法概论 第八章课后题8.3
- 《算法概论》第八章课后题
- 算法概论第八章课后习题8.8
- 算法概论第八章课后习题8.3
- 算法概论第八章部分习题解答
- 算法设计 《算法概论》第八章 8.10 习题解答
- 算法概论 第八章NP-完全问题 8.8题
- 算法概论第八章 NP完全问题 习题证明
- 《算法概论》第八章NP完全问题部分习题解
- 学习Linux-4.12内核网路协议栈(1.4)——协议栈的初始化(proto_init)
- 在HBase的shell命令行界面输入错误项按"退格键"删除,却怎么也删除不了
- TCP中的URG与PSH
- C++静态库
- 51nod1869 那些年,我们一起讲的故事
- 算法概论第八章练习题 8.14
- 仿自qsc的题解Markdown格式
- TCP四次挥手
- UVA
- Javascript
- hive------子查询
- 点云学习——孔洞修补
- 似然函数(likelihood function)
- [leetcode]354. Russian Doll Envelopes