计算理论第7章 NP完全性
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 NP完全性
杨莹 冷芳玲
1
第7章 NP完全性
7.1 NP完全性定义 7.2 NP完全问题 7.3 NP完全性的计算讨论
2
7.1 NP完全性
定义7-1 语言L是NP完全的,若它满足下面 两个条件: (1)L∈NP; (2)NP中的每个LA都多项式时间可归约为L。
3
7.2 NP完全问题
定理7-19 [库克—列文定理] 可满足问题 SAT是NP完全的。 证明:NP中的每一个语言都可以多项式时间 归约到SAT。从NP中任取一个语言L,设 MN={Q, Σ,Γ,δ, q0,B,F}是nk多项式时间内判 定L的非确定型图灵机,其中k是常数。对 于MN的任意输入w,在多式时间内构造公 式 Φ,使得w∈L ↔ Φ∈SAT。
设Φ 是3SAT公式,子句数是k,则G中的节 点分成k组,每组三个节点,称为三元组, 每个三元组对应Φ中的一个子句。G中的边 定义为:不同三元组的Hale Waihona Puke Baidu点,若不是相反 文字,则两两相连;三元组内节点间无边 。 可见 (1)Φ有一可满足赋值,G存在一个k-团; (2)G存在一个k-团, Φ可满足。
21
7.2 NP完全问题
注意顶点覆盖问题要求最小的顶点覆盖规 模。
14
7.2 NP完全问题
顶点覆盖问题(Node Cover)是NP完全的 我们可以给出一个3SAT到这个问题的多项式 时间内运算的归约,即把布尔公式Φ 映射 为<G,k>,其中G是一个图,k是一个正数, 表示G的顶点覆盖子集的节点数。为此, (1)对于Φ 中的每个布尔变元x对应G的一 条边,边的两个顶点记为x和¬x 。当x赋值 为TRUE时,表示对应的覆盖选择x;当x赋 值为FALSE时,表示对应的覆盖选择¬x 。
5
7.2 NP完全问题
我们把画面nknk个的格子中每一格称为一个 单元。第i行第j列的单元称为cell[i,j],它应 包含C=Q ∪ {#}中的一个符号。定义变量 xi,j,s(1≤i≤nk,1≤j≤nk,s∈C)表示单元中的内 容。xi,j,s=1,意味着cell[i,j]包含s。
6
7.2 NP完全问题
7
7.2 NP完全问题
现在设计公式Φ ,使得变量的一个满足赋值 确实对应MN在w上的一个接受画面。为此 要满足以下4点: 每个单元只能包含一个符号; 第一行为初始ID 存在接受ID 表的每一行都对应于从上一行的ID、按照 MN的规则、合法转移得到ID。
8
7.2 NP完全问题
9
7.2 NP完全问题
17
7.2 NP完全问题
对于一个满足赋值, (1)把变量构件中真文字节点放入M中, (2)把子句中,除为真的文字外的另两个文 字加入M中。 可见M中G的一个覆盖。
18
7.2 NP完全问题
对于G的覆盖M, 把M中的文字置为真。因为 M中包含每个变 量构件的一个节点和子句构件的两个节点, 所以这个赋值满点3SAT。
定理7-17 [库克—列文定理] 可满足问题 属于P,当且仅当P=NP。
28
The End
29
25
7.2 NP完全问题
Hitting Set问题:给定集合A的子集的集合 C和整数k,A是否有一个子集A’,|A’|=k,且对 于C中的任意元素(A的子集),A’至少包 含其中的一个元素。
26
7.3 NP完全性的计算讨论
定理7-18 若LA≤P LB,且LB ∈ P ,则 LA∈ P。
27
7.3 NP完全性的计算讨论
15
7.2 NP完全问题
(2)Φ子句中的三个文字对应于G的三个节 点,这三节点相互连接,并分别于(1)中具 有相同标记的节点相连。
16
7.2 NP完全问题
易见,3SAT可多项式时间归约为顶点覆盖问 题。 不难证明 Φ可满足当且仅当G中有k=m+2l个 节点的顶点覆盖,其中m 是Φ 的变元数,l 是Φ子句数。
7.2 NP完全问题
c1 c4 c2 c5 c3 c6
现在证明上面由w到Φ的映射可以在多项式内 完成。画面是一个nknk的表格,所以它包 含n2k个单元,每个单元有与它相关的l个变 量,l=|C|,因为l只依赖于MN,所以变量的 总数是O(n2k)。
11
7.2 NP完全问题
对画面的每个单元,公式 Фcell包含固定长度 的公式片段,故长度为O(n2k), Ф start对顶 行的每个单元包含一个片段,所以长度为 O(nk), Ф move和 Ф accept对画面的每个单元 包含固定长度的公式片段,所以它们的长 度为O(n2k),于是 Ф总长度为O(n2k),因此 可在多项式时间内从w生成Ф ,所以,SAT 是NP完全问题。█
12
7.2 NP完全问题
3SAT问题:将布尔变量或其非称为文字, 将由三个文字构成的子句组成的合取范式 推论7-3 3SAT是NP完全的。 证明:证明SAT多项式时间归约到3SAT。
13
7.2 NP完全问题
Node Cover问题:若G是无向图,k是一整数, 则G的顶点覆盖问题是否存在最小的一个节 点子集M,使得|M|≤k,且G的每条边都 与子集M的节点之一关联。
19
7.2 NP完全问题
Clique(团)是图的一个子图,其中任何两 点都有边相连。 K-Clique问题:给定<G,k>,G是无向图,G 中包含至少k节点的团吗? k-Clique是NP完全的 证明: (1)k-Clique是NP问题 (2)3SAT ≤p k-Clique
20
7.2 NP完全问题
23
7.2 NP完全问题
每个钻石结构都包含一行水平节点,它们由 双向边连接起来。
24
7.2 NP完全问题
如果变量xi出现在子句cj中,就把图中两条 从第i个钻石的第j对节点到第j个子句节点的 边添加进去。
如果变量¬xi出现在子句cj中,就把图中两条 从第i个钻石的第j对节点到第j个子句节点的 边添加进去。
SUBSET-SUM(子集和)问题:有一个数集 x1,x2,…,xk和一个目标数t,要判定数集是否 包含一个加起来等于t的子集。 子集和问题是NP完全的 (1)子集和问题属于NP类 (2)3SAT ≤p SUBSET-SUM
22
7.2 NP完全问题
HAMPATH (Hamilton 路)问题也是NP完全 的。 (1)HAMPATH 问题属于NP类; (2)3SAT ≤p HAMPATH 。 从Φ构造图G:把变量 xi 表示为钻石结构,把 子句 ci 表示为节点。
4
7.2 NP完全问题
设f是由w到Φ的归约,下面开始描述归约f。
考虑MN在w上的执行过程。定义MN在w上的 画面是一张nknk表格,其中行代表MN在输 入上的一个计算分支的瞬时描述。并约定 每一个ID都以“#”开始和结束。当然画面 的第一行是初始ID,每一行都根据MN的转 移函数从上一行得到,如果画面的某一行 是接受ID,则称该画面是接受的。
杨莹 冷芳玲
1
第7章 NP完全性
7.1 NP完全性定义 7.2 NP完全问题 7.3 NP完全性的计算讨论
2
7.1 NP完全性
定义7-1 语言L是NP完全的,若它满足下面 两个条件: (1)L∈NP; (2)NP中的每个LA都多项式时间可归约为L。
3
7.2 NP完全问题
定理7-19 [库克—列文定理] 可满足问题 SAT是NP完全的。 证明:NP中的每一个语言都可以多项式时间 归约到SAT。从NP中任取一个语言L,设 MN={Q, Σ,Γ,δ, q0,B,F}是nk多项式时间内判 定L的非确定型图灵机,其中k是常数。对 于MN的任意输入w,在多式时间内构造公 式 Φ,使得w∈L ↔ Φ∈SAT。
设Φ 是3SAT公式,子句数是k,则G中的节 点分成k组,每组三个节点,称为三元组, 每个三元组对应Φ中的一个子句。G中的边 定义为:不同三元组的Hale Waihona Puke Baidu点,若不是相反 文字,则两两相连;三元组内节点间无边 。 可见 (1)Φ有一可满足赋值,G存在一个k-团; (2)G存在一个k-团, Φ可满足。
21
7.2 NP完全问题
注意顶点覆盖问题要求最小的顶点覆盖规 模。
14
7.2 NP完全问题
顶点覆盖问题(Node Cover)是NP完全的 我们可以给出一个3SAT到这个问题的多项式 时间内运算的归约,即把布尔公式Φ 映射 为<G,k>,其中G是一个图,k是一个正数, 表示G的顶点覆盖子集的节点数。为此, (1)对于Φ 中的每个布尔变元x对应G的一 条边,边的两个顶点记为x和¬x 。当x赋值 为TRUE时,表示对应的覆盖选择x;当x赋 值为FALSE时,表示对应的覆盖选择¬x 。
5
7.2 NP完全问题
我们把画面nknk个的格子中每一格称为一个 单元。第i行第j列的单元称为cell[i,j],它应 包含C=Q ∪ {#}中的一个符号。定义变量 xi,j,s(1≤i≤nk,1≤j≤nk,s∈C)表示单元中的内 容。xi,j,s=1,意味着cell[i,j]包含s。
6
7.2 NP完全问题
7
7.2 NP完全问题
现在设计公式Φ ,使得变量的一个满足赋值 确实对应MN在w上的一个接受画面。为此 要满足以下4点: 每个单元只能包含一个符号; 第一行为初始ID 存在接受ID 表的每一行都对应于从上一行的ID、按照 MN的规则、合法转移得到ID。
8
7.2 NP完全问题
9
7.2 NP完全问题
17
7.2 NP完全问题
对于一个满足赋值, (1)把变量构件中真文字节点放入M中, (2)把子句中,除为真的文字外的另两个文 字加入M中。 可见M中G的一个覆盖。
18
7.2 NP完全问题
对于G的覆盖M, 把M中的文字置为真。因为 M中包含每个变 量构件的一个节点和子句构件的两个节点, 所以这个赋值满点3SAT。
定理7-17 [库克—列文定理] 可满足问题 属于P,当且仅当P=NP。
28
The End
29
25
7.2 NP完全问题
Hitting Set问题:给定集合A的子集的集合 C和整数k,A是否有一个子集A’,|A’|=k,且对 于C中的任意元素(A的子集),A’至少包 含其中的一个元素。
26
7.3 NP完全性的计算讨论
定理7-18 若LA≤P LB,且LB ∈ P ,则 LA∈ P。
27
7.3 NP完全性的计算讨论
15
7.2 NP完全问题
(2)Φ子句中的三个文字对应于G的三个节 点,这三节点相互连接,并分别于(1)中具 有相同标记的节点相连。
16
7.2 NP完全问题
易见,3SAT可多项式时间归约为顶点覆盖问 题。 不难证明 Φ可满足当且仅当G中有k=m+2l个 节点的顶点覆盖,其中m 是Φ 的变元数,l 是Φ子句数。
7.2 NP完全问题
c1 c4 c2 c5 c3 c6
现在证明上面由w到Φ的映射可以在多项式内 完成。画面是一个nknk的表格,所以它包 含n2k个单元,每个单元有与它相关的l个变 量,l=|C|,因为l只依赖于MN,所以变量的 总数是O(n2k)。
11
7.2 NP完全问题
对画面的每个单元,公式 Фcell包含固定长度 的公式片段,故长度为O(n2k), Ф start对顶 行的每个单元包含一个片段,所以长度为 O(nk), Ф move和 Ф accept对画面的每个单元 包含固定长度的公式片段,所以它们的长 度为O(n2k),于是 Ф总长度为O(n2k),因此 可在多项式时间内从w生成Ф ,所以,SAT 是NP完全问题。█
12
7.2 NP完全问题
3SAT问题:将布尔变量或其非称为文字, 将由三个文字构成的子句组成的合取范式 推论7-3 3SAT是NP完全的。 证明:证明SAT多项式时间归约到3SAT。
13
7.2 NP完全问题
Node Cover问题:若G是无向图,k是一整数, 则G的顶点覆盖问题是否存在最小的一个节 点子集M,使得|M|≤k,且G的每条边都 与子集M的节点之一关联。
19
7.2 NP完全问题
Clique(团)是图的一个子图,其中任何两 点都有边相连。 K-Clique问题:给定<G,k>,G是无向图,G 中包含至少k节点的团吗? k-Clique是NP完全的 证明: (1)k-Clique是NP问题 (2)3SAT ≤p k-Clique
20
7.2 NP完全问题
23
7.2 NP完全问题
每个钻石结构都包含一行水平节点,它们由 双向边连接起来。
24
7.2 NP完全问题
如果变量xi出现在子句cj中,就把图中两条 从第i个钻石的第j对节点到第j个子句节点的 边添加进去。
如果变量¬xi出现在子句cj中,就把图中两条 从第i个钻石的第j对节点到第j个子句节点的 边添加进去。
SUBSET-SUM(子集和)问题:有一个数集 x1,x2,…,xk和一个目标数t,要判定数集是否 包含一个加起来等于t的子集。 子集和问题是NP完全的 (1)子集和问题属于NP类 (2)3SAT ≤p SUBSET-SUM
22
7.2 NP完全问题
HAMPATH (Hamilton 路)问题也是NP完全 的。 (1)HAMPATH 问题属于NP类; (2)3SAT ≤p HAMPATH 。 从Φ构造图G:把变量 xi 表示为钻石结构,把 子句 ci 表示为节点。
4
7.2 NP完全问题
设f是由w到Φ的归约,下面开始描述归约f。
考虑MN在w上的执行过程。定义MN在w上的 画面是一张nknk表格,其中行代表MN在输 入上的一个计算分支的瞬时描述。并约定 每一个ID都以“#”开始和结束。当然画面 的第一行是初始ID,每一行都根据MN的转 移函数从上一行得到,如果画面的某一行 是接受ID,则称该画面是接受的。