计算理论第7章 NP完全性
第2章 NP完全理论

2. 问题求解:对问题Π'应用算法A产生一个输出O ';
3.输出转换:把问题Π'的输出O'转换为问题Π对应于 输入I的正确输出。
2021/11/21
算法设计与分析--NP完全性理论
22
问题变换的一般过程
问题Π
问题Π'
I 输入转换
I
'
算法A
2021/11/21
算法设计与分析--NP完全性理论
17
2.3.3 非确定性算法与NP类问题
定义2.3 设A是求解问题Π的一个算法,如果算法A以如 下猜测并验证的方式工作,就称算法A是非确定性 (Nondeterminism)算法:
(1)猜测阶段:在这个阶段,对问题的输入实例产生一个 任意字符串y,在算法的每一次运行时,串y的值可能不同, 因此,猜测以一种非确定的形式工作。
❖ 配对问题到排序问题的变换有助于建立配对问题代价的一 个上限,因为上述输入和输出转换都是在多项式时间完成, 所以,如果排序问题有多项式时间算法,则配对问题也一定 有多项式时间算法。
2021/11/21
算法设计与分析--NP完全性理论
25
定理2.3(计算时间下限归约)若已知问题Π的计算时间 下限是T(n),且问题Π可τ(n)变换到问题Π',即Π∝τ(n)Π', 则T(n)-O(τ(n))为问题Π'的一个计算时间下限。
2.2.2 实际问题难以求解的原因
1 问题的解空间太大,如:布尔可满足问题(判 断包含一些布尔变量的合取范式是否为真)。
2 评估函数难以确定,如:SAT问题。
3 实际问题很复杂,无法求得精确解,如运输费用问 题,解决办法:简化模型采用传统方法、保持模型不 变采用非传统方法。
第七章 可靠性和完全性(提纲)汇总

第七章可靠性和完全性(提纲)1. 可靠性与完全性现在逻辑基本上都是采用如下结构:形式语言语义语法语义与语法的关系形式语言:从初始符号出发,形成主要对象——公式。
(可能需要一些其它辅助对象,如在一阶逻辑,就有项的概念)。
公式是一种特殊的符号串(由初始符号组成的符号串)。
语义:给出某种结构,通过某种定义,定义出刻画逻辑规律的有效式。
(如在一阶逻辑,我们从结构和赋值出发,给出解释、公式在解释下的真值,用在所有解释下都真定义出有效式)。
有效式是一种特殊的公式,所有有效式的集合是全体公式的一个子集。
语法:由公理和推导规则组成。
按某种标准的方法给出证明序列和内定理。
(可以有一些推广的概念,最重要的是推演)。
有效式是一种特殊的公式,所有内定理的集合是全体公式的一个子集。
语义与语法的关系:最重要的有两个,可靠性和完全性。
7.1.1定义可靠性所有的内定理都是有效式。
7.1.2定义完全性所有的有效式都是内定理。
2. 一阶推演系统的可靠性可靠性有标准的证明方法:1. 证明每个公理都是有效的。
2. 证明推导规则保持有效性不变。
3. 归纳证明证明序列中的每个公式都是有效式,所以内定理是有效式。
7.2.1引理(1) σ(ϕ→ψ) = T当且仅当(如果σ(ϕ) = T,则σ(ψ) = T)。
(2) σ(ϕ1→…→ϕn→ψ) = T 当且仅当(如果σ(ϕ1) = T, …, σ(ϕn) = T,则σ(ψ) = T)。
证(1) 由定义得σ(ϕ→ψ) = T当且仅当σ(ϕ) = F或σ(ψ) = T。
σ(ϕ) = F或σ(ψ) = T就是(如果σ(ϕ) = T,则σ(ψ) = T)。
所以,σ(ϕ→ψ) = T当且仅当(如果σ(ϕ) = T,则σ(ψ) = T)。
(2) 对n作归纳。
1. n = 1。
由(1)得σ(ϕ1→ψ) = T 当且仅当(如果σ(ϕ1) = T,则σ(ψ) = T)。
2. n = k+1。
ϕ1→…→ϕk+1→ψ也就是ϕ1→…→ϕk→(ϕk+1→ψ),由归纳假设σ(ϕ1→…→ϕk→(ϕk+1→ψ)) = T 当且仅当(如果σ(ϕ1) = T, …, σ(ϕk) = T,则σ(ϕk+1→ψ) = T)。
np问题的字面解释 非确定型多项式完全问题

NP问题的字面解释非确定型多项式完全问题一、背景介绍1. NP问题的概念NP问题是计算机科学和数学领域中一个重要的概念,即“非确定性多项式时间”(Non-deterministic Polynomial time),它代表了一类能在多项式时间内被验证的问题。
这类问题的解决方案虽然不能在多项式时间内被找到,但一旦有了一个解,却能够在多项式时间内被验证。
简而言之,如果一个问题可以在多项式时间内被验证,则它是一个NP问题。
2. 多项式完全问题的概念多项式完全问题是一类特殊的NP问题,它具有以下两个性质:它是一个NP问题;任何一个NP问题都可以在多项式时间内规约到它。
也就是说,如果有一个多项式时间算法能够解决任何一个多项式完全问题,那么就能够解决所有的NP问题。
3. 非确定型多项式完全问题非确定型多项式完全问题是NP问题中最困难的一类问题,它要求在多项式时间内验证一个解的存在,并且这个验证需要非确定性算法。
换言之,虽然这类问题的解可以在多项式时间内被验证,但却无法在多项式时间内被求解。
非确定型多项式完全问题是计算理论中一个极具挑战性的问题。
二、定义和性质1. 非确定型多项式完全问题的定义非确定型多项式完全问题是指一个问题,如果它是一个NP问题,并且任何一个NP问题都可以在多项式时间内归约到它,那么它就是一个非确定型多项式完全问题。
每一个非确定型多项式完全问题都是NP 问题,但不是所有的NP问题都是非确定型多项式完全问题。
2. 非确定型多项式完全问题的性质非确定型多项式完全问题具有以下一些重要性质:(1)困难性:非确定型多项式完全问题是计算上的一类最困难问题,它们无法在多项式时间内被求解。
(2)通用性:任何一个NP问题都可以在多项式时间内归约到非确定型多项式完全问题,因此解决了一个非确定型多项式完全问题就意味着可以解决所有的NP问题。
(3)实际意义:非确定型多项式完全问题在实际生活中具有广泛的应用,例如在计划问题、调度问题、网络设计等方面都有重要的地位。
算法与计算复杂性课程(10)NP完全理论应用

NP完全性理论的应用用NP完全性理论进行子问题分析子问题的定义子问题的计算复杂性子问题的NP完全性证明NP难度搜索问题Turing归约NP-hard, NP-easy1子问题的定义及其实例定义设判定问题π=(Dπ,Yπ), 若Dπ’⊆Dπ, Yπ’⊆Yπ∩Dπ’,则称π’=(Dπ’,Yπ’) 是π的子问题.子问题的问题与原问题一样,定义域缩小.通过对实例的参数加以限制得到子问题.子问题实例限制子句中文字的个数得到SAT的子问题3SAT,2SAT 限制顶点度数、平面图、二部图、无圈图等得到图论问题的子问题限制常数K 的大小,如K=2, K=3 等得到子问题23努力扩大已知区域,缩小未知区域当P ≠NP 时,存在不属于NPC 也不属于P 的问题子问题的计算复杂性有先行约束的多处理机调度问题优化问题:给定任务集T, m 台机器,∀t∈T, l(t)∈Z+, T上的偏序≺.若σ:T→{ 0, 1, …, D }满足下述条件,则称T 为可行调度.∀t∈T, σ(t)+l(t)≤D∀i, 0 ≤i≤D, | { t∈T: σ(t) ≤i < σ(t)+l(t) }| ≤m∀t, t’∈T, t ≺t’⇔σ(t)+l(t) ≤σ(t’)求使得D 最小的可行调度.条件说明:任务在截止时间前完成同时工作的台数不超过m有偏序约束的任务必须按照约束先行4任务集如图所示,m=2,求使得D 最小的可行调度.实例5调度问题的子问题结构从上到下:偏序任意、树形偏序、无偏序约束从左到右:处理器台数限制逐步放大从前到后:各任务等长工作时间、任意工作时间78m =1, l 任意, 偏序任意(绿色面积)算法:1. 计算所有任务的工作时间之和Time2. if Time ≤D ,存在可行调度.3. 按照偏序从高层依次取任务,进行安排即可.m 任意, l 为常数, 偏序为空(浅兰色箭头)算法:1. Time ←⎡|T |/m ⎤l2.if Time ≤D ,存在可行调度.3. 将任务按顺序依次分配到m 台机器上.某些子问题属于P的说明9m 任意,l 为常数,偏序为树(深兰色箭头)关键路径算法:1.按照偏序关系,从树叶依次拿任务,每次至多下移m 个结点.2.将分配次数与D 比较,如果不超过D , 回答Yes. 分配次数至少为树高,可以证明时间为多项式时间.m =2, 偏序任意, l 为常数(紫色箭头)算法:H.N.Gabow,An almost linear algorithm for two processors scheduling, J.Assoc.Comput.Math,29, 1982, 766-780.某些子问题属于P的说明(续)10极大多项式可解的子问题π:(绿色)π是多项式时间可解的,并且不存在其他多项式可解的子问题π’,使得π是π’的子问题.极小NP 完全的子问题π(红色)π是NP 完全的,并且不存在其他NP 完全的子问题π’使得π’是π的子问题.极小未解决的子问题π:(黄色)π的子问题都属于P, 但不知π是否属于P ,也不知P 是否属于NPC.极大未解决的子问题π: (棕色)π的父问题都是NP 完全的,但不知π是否属于P ,也不知P 是否属于NPC.术语简介12对于由于顶点度数D 限制得到子问题的NPC 证明,通常采用局部替换法,设计新的保持性质不变,又能降低顶点度数的顶点替换.例2 顶点3 着色问题原问题:任意无向图的顶点3 着色问题子问题:最大度数D 不超过4 的顶点3 着色问题基本单元:度数k 大于等于5 的顶点替换成:子结构H k (内部顶点度数不超过4 的连续k −2个三角形)局部替换法的实例13对于G 中的k 度顶点,k ≥5, 替换成k -2个连续的三角形H k ,H k 具有k 个外顶点(和外部顶点邻接)H k 的顶点度数不超过4H k 的出口(外顶点)度数为2H k 可着3色,且每个外顶点着同色H k 的结构14下图的v 1 和v 2 是5度顶点,被H 5替换得到新的图,其中灰色区域表示替换后的两个H 5.替换实例NP难度搜索问题定义判定问题与搜索问题的关系搜索问题的形式定义Turing归约定义性质NP难,NP易与NP等价Turing归约的应用15搜索问题定义:一个搜索问题π有实例集Dπ, 对于π中的任何实例I,有一个有穷的解集合Sπ[I].如果存在算法A,对于任何实例I∈Dπ, A 都停机,并且如果Sπ[I]=∅,则回答无解,否则给出Sπ[I]中的一个解,那么称A解搜索问题π.例如,巡回售货员的优化问题,STS[I]就是实例I 中所有最短巡回路线的集合. Hamilton 回路的构造性问题,当G 中不存在Hamilton回路时回答无解,否则给出一条Hamilton回路.SHC [I]中是所有的HC的集合.搜索问题的定义及实例16判定问题与搜索问题之间的关系判定问题是搜索问题的特例.对于判定问题π,若I 属于Yπ, 则Sπ[I]={ Yes },若I 属于Dπ-Yπ, 则Sπ[I]={ No }.17搜索问题的形式说法设Σ是有穷字符表,R ⊆Σ+×Σ+ 称为Σ上的符号串关系,Σ+=Σ*−{ε},长度至少为1 的有穷串的集合.搜索问题π,I 为π的任意实例,I 在合理编码系统e 下的编码为x, 其编码系统的字符集为Σ. 令R[π,e]={ (x,y): x∈Σ+是实例I∈Dπ在e下的编码,y∈Σ+是解s∈Sπ[I]在e下的编码}则R 中的有序对由有解的实例的编码及其对应的一个解的编码构成18搜索问题的形式说法(续)定义函数f : Σ+→Σ*, x∈Σ+, 如果存在y∈Σ+使得(x,y)∈R, 则令f(x)=y, 否则f(x)=ε,那么称函数f 实现符号串关系R.实现符号串如果存在DTM 程序M计算的函数fM关系R,则称M解符号串关系R.如果存在多项式时间的DTM 程序M解R[π,e],则称搜索问题π在编码系统e下是多项式可解的.1920设π1, π2是搜索问题,A 是利用解π2的假想子程序s 解π1的算法,且只要s 是多项式时间的,A 也是多项式时间的,则称算法A 是从π1到π2 的多项式时间的Turing 归约. 这是也称π1 Turing 归约到π2,记作π1∝T π2.Turing归约Turing Reduction 非形式定义Turing归约(续)形式定义:带外部信息源的Turing 机OTM (Oracle Turing Machine)21OTM有穷带字符集Γ输入字符集Σ⊂Γ,空白字符b∈Γ−Σ., q h, q c, q r分别表示初始状有穷状态集Q, 其中含有q态、停机状态、访问外部信息源状态和恢复计算状态., q c})×Γ×(Σ∪{ b})转移函数δ:( Q−{ qh→Q×Γ×(Σ∪{b})×{-1,1}×{-1,1}×{-1,1}基本只写基本只写只读22输入x∈Σ+初始:x 写在基本带上方格1 到|x|,其余方格为b. Oracle的输入带(只写带)为b.每个带的带头置方格1.初始状态为q0.OTM的计算23OTM的计算(续)计算:,则计算结束,基本带方格1 到最右边非空若q=qh白方格的符号串是输出串.若q∈Q−{q, q c}, s1, s2分别为基本带和只读带扫描的h字符,且δ(q,s1,s2) = (q’,s1’,s2’, Δ1, Δ2, Δ3)那么状态变成q’,基本带字符改写为s’, 只写带字符改1’, 基本带、只写带、只读带带头分别移动Δ1,写为s2Δ2, Δ3.2425若q = q c ,y 为Oracle 输入带的字符串,z = g (y )为外部信息源函数,在一步之内将外部信息源Oracle 的输出带(只读)的1到|z | 方格写上z ,其余为b ;将输入带清为空白;将只读头,只写头置1;q c 变成q r . 基本带的内容、读写头不变.OTM的计算(续)26相对化的OTM 程序:设Mg 是M 与外部信息源g 相结合的相对化OTM 程序. 其带字符表为Γ,输入字符表为Σ.多项式时间的OTM 程序:如果存在多项式P 使得对于一切x ∈Σ+,Mg 在P (|x |) 步内停机,则称Mg 是多项式时间的OTM 程序.OTM 程序计算函数f :设Mg 对一切x ∈Σ+停机, 且停机时方格1到最右边非空白方格的字符串是f Mg (x ),那么它计算函数f Mg : Σ+→Σ*相对化的OTM程序27多项式时间的Turing归约:设R 1,R 2是Σ上的两个符号串关系,M 是输入字符集为Σ的OTM 程序,如果对于每个实现R 2 的函数g :Σ+→Σ*,相对化的OTM 程序Mg 都是多项式时间的OTM 程序,且Mg 计算的函数实现R 1,那么称M 是从R 1到R 2的多项式时间的Turing 归约,记作R 1∝T R 2Turing归约的形式定义29传递性π1∝T π2,π2∝T π3⇒π1∝T π3多项式变换是Turing 归约的特例.设π1多项式变换到π2, 如下设计解π1 的算法A :1. 对于π1的任何实例I ,先将I 变换成π2实例I ’,2. 利用解π2 的假想子程序s 对I ’识别.3. 如果I ’是肯定实例,则I 也是肯定实例;4. 如果I ’是否定实例,则I 也是否定实例.易见只要s 是多项式时间的,则A 也是多项式时间的. 因此π1∝T π2.Turing归约的性质NP难度定义设π是搜索问题,如果存在NP 完全问题π’使得π’π,则称π是NP-hard. 这意味着在多项式可计算的∝T角度看,π至少像NPC 问题一样难.π’, 设π是搜索问题,如果存在NP 问题π’使得π∝T则称π是NP-easy.设π是搜索问题,如果π是NP-hard, 同时也是NP-easy, 则称π是NP等价的.NP-easy ≼NP等价(包含NPC问题) ≼NP-hard30相关结果所有的NPC 问题都是NP-hard.因为多项式变换是Turing归约的特例.若π∈NPC, 则π多项式可解⇔P = NP若π是NP-hard, 则π多项式可解⇒P = NP若π是NP-easy, 则π多项式可解⇐P = NP若π是NP等价, 则π多项式可解⇔P = NP31相关结果(续)设π是判定问题,π为NPC ⇏πc为NPCπ为NP-hard ⇒πc为NP-hard证明:设π为NP-hard,任取实例I∈Dπ, I 也是πc的实例,且I∈Yπ⇔I∈Dπc−Yπc设s 是解πc的算法,如下得到解π的算法:先调用s对于实例I求解. 如果回答”Yes”, 则回答”No”,否则回答”Yes”. 从而证明了πTuring归约到πc. 据Turing归约的性质,πc 为NP-hard.32Turing归约的应用1.证明许多NPC 问题所对应的优化或构造问题为NP-hard.2.证明某些非NP 类的判定问题是NP-hard说明:1. 将解对应优化问题或构造问题的算法作为解判定问题算法的子程序,得到解判定问题的算法,从而构造了从判定问题到对应优化问题或构造问题的Turing归约.33实例—证明NP等价例1巡回售货员问题(TSO)是NP等价的.证:易证TSO是NP-hard. 下面证明TSO 是NP-easy.引入中间问题:巡回售货员的延伸问题(TSE)TSE实例:有穷城市的集合C= { c, c2, …, c m}1, c j∈C, d(c i, c j)∈Z+,距离∀ci长度限制B∈Z+,, …,cπ(k) >部分旅行路线ϑ= < cπ(1)问:ϑ是否可以延伸成全长不超过B的全程旅行< cπ(1), …, cπ(k), cπ(k+1), …, cπ(m)>?易证TSE属于NP.3435设s (C ,d ,ϑ,B )是解TSE 的子程序,其中C 为城市集,d 为距离函数,ϑ为部分旅行,B 为长度限制.下面构造解TSO 的算法.思路:用二分法确定最短路旅行长度B *旅行长度界于m →m ×d , d = max{ d (c i , c j )}每次取中点值验证是否存在能延伸到此长度的旅行根据最小长度值B *确定旅行路线从c 1开始,依次检查<c 1,c 2>,<c 1,c 3>…是否能延伸到B *长度的旅行,选择第一个可延伸的顶点c i . 按照上面方法确定后面的其他顶点.TSO 到TSE 的Turing归约40例2 第k 个最大子集实例:有穷集A , ∀a ∈A , S (a )∈Z +, 正整数B ≤S (A ),K ≤2|A |, 其中问:是否至少存在K 个不同的子集A ’,满足S (A ’)≤B ?这个问题不是NP 问题. 要猜想A 的K 个子集,K 不是|A | 的多项式, 输入规模为|A | ⎡log K ⎤⎡log S (A )⎤没办法用它的多项式个符号写下猜想.可以证明这个问题是NP-hard.∑=∈Aa a S A S )()(实例--分析非NP类问题的难度Turing归约命题:第k 个最大子集问题是NP-hard.下面构造从均分问题到这个问题的Turing归约.设s[A,S,B,K]是解第K个最大子集的子程序,其中A = { a1, a2, …, a n}S: A→Z+B≤S(A)K≤2n设A= { a,a2, …,a n },S:A→Z+是均分的实例,如1下构造解均分问题的算法.41算法说明步1到步7 二分法找L*.L* 的含义:至少Lmin个子集其和不超过S(A)/2.至多Lmax−1 个子集其和不超过S(A)/2.恰好有L*个子集其和不超过S(A)/2.步8 检查是否有一个子集其和等于S(A)/2.如果至少有L* 个子集其和≤b−1<b,那么没有一个子集其和恰好等于S(A)/2.44复杂性估计步1到步7二分法查找L*调用s[A, S, b, L]子程序log2n= O(n)次步8调用s[A, S, b, L]子程序 1 次如果s 是多项式时间的算法,则算法也是多项式时间的.45复杂性类的谱系NP之外Co-NPPSPACEP之内NCP完全46NP与Co-NP的结构前提:NP ≠Co-NP⇒P ≠NP49并行计算的PRAM模型PRAM(Parallel Random Access Machine)特征:1. 无限大共享存储器(用于处理器之间交换数据)2. 有限或无限个(n的多项式个)功能相同的处理器3. 指令集相同:逻辑运算、算术运算、访问内存、输入输出、转移4. 执行每条指令的时间相同,且与处理器个数无关50。
从NP完全性谈起——计算复杂性理论介绍共40页PPT

从NP完全性谈起——计算复杂性理论 介绍
36、“不可能”这个字(法语是一个字 ),只 在愚人 的字典 中找得 到。--拿 破仑。 37、不要生气要争气,不要看破要突 破,不 要嫉妒 要欣赏 ,不要 托延要 积极, 不要心 动要行 动。 38、勤奋,机会,乐观是成功的三要 素。(注 意:传 统观念 认为勤 奋和机 会是成 功的要 素,功的第 三要素 。
39、没有不老的誓言,没有不变的承 诺,踏 上旅途 ,义无 反顾。 40、对时间的价值没有没有深切认识 的人, 决不会 坚韧勤 勉。
6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
NP完全问题(纯理论)

NP类问题举例—求真因子问题
国王: 顺序算法 宰相: 并行算法
是否所有的难解问题通过并行计算使其在多项式内可 解?
关于并行算法:当将一个问题分解到多个处理器上解 决时,由于算法中不可避免地存在必须串行执行的操 作,从而大大地限制了并行计算机系统的加速能力。
NP类问题举例—求真因子问题
阿达尔定律:串行执行操作仅占全部操作1%,解 题速度最多也只能提高一百倍。
以多项式作为分界函数?
原因有两个: 一、常见算法大致分为两类: 一类是多项式时间内可实现的 另一类需要指数时间(O(cn))
多项式时间算法的可实现性远大于指数时间算法。 (参见P8,表1.2)
以多项式作为分界函数?
二、多项式时间算法与计算模型无关 算法的研究依赖于计算模型。在不同类型计算模型 上实现算法,计算时间不同。
SATISFIABILITY∝p3-SATISFIABILITY
几个典型的NPC问题
图的着色问题(COLORING) 判定问题:COLORING 输入:无向图G=(V,E) 问题:是否可用k种颜色为图G的顶点着色,使 得相邻顶点不会有相同颜色。
3-SATISFIABILITY∝pCOLORING
定义12.3 令П 是一个判定问题,如果: (1) П ∈NP; (2) 对NP中的所有问题П ′∈NP,都有 П ′∝pП ; 则称判定问题П 是NP完全 (NPC)的。
P类、NP类、NPC类问题关系
根据定义,可用如下图表示三者之间的关系:
NP
P
NPC
P类、NP类、NPC类问题关系
对NPC问题,有个重要性质 对NPC类中的一个问题,如果能够证明用多项式 时间的确定性算法来进行求解或判定,那么, NP中的所有问题都可以通过多项式时间的确定性 算法来进行求解或判定。
算法设计与分析课件--NP完全性理论-P类和NP类问题
团问题的一个实例可以用长度为n2 + log k + 1 的二
进位串表示。
➢ 无向图的团问题可表示为语言:
• CLIQUE = {w#v|w,v∈{0,1}*,以w为邻接矩阵的图G有一个k 顶点的团。其中,w是C的二进制表示,v是k的二进制表示。}
• STEP3:确定性地检查V’的团性质。若V’是一个团则接受输入,
否则拒绝输入。时间复杂度为O(n 4 ) 。 • 因此,整个算法的时间复杂性为:O(n 4 ) 。
❖非确定性算法在多项式时间内接受语言CLIQUE,故CLIQUE∈NP。
16
8.2 P类问题和NP类问题
◼ P类问题和NP类问题的关系:
算法设计与分析
1
第八章 NP完全性理论
目录
8.1 易解问题和难解问题
8.2 P类问题和NP类问题
8.3
NP完全问题
8.4 NP完全问题的近似算法
2
8.1 易解问题和难解问题
◼ 常见的几类算法复杂性:
➢ O(1):常数阶; ➢ O(log2n), O(nlog2n):对数阶; ➢ O(n), O(n2), O(n3), …, O(nk): 多项式阶。多项式时间算法; ➢ O(2n), O(n!), O(nn):指数阶。指数时间算法。
12
8.2 P类问题和NP类问题
◼ NP(Non-deterministic Polynomial)类问题:
➢ 如对于某个判定问题,存在一个非负整数k,对于输入规模为n的实 例,能以O(nk)的时间运行一个非确定性算法得到是或否的答案。 • 能用非确定算法在多项式时间内求解的判定问题。如哈密尔顿回 路问题。 • NP类问题是难解问题的一个子类。 • NP类问题并不要求给出一个算法来求解问题本身,而只要求给 出一个确定性算法在多项式时间验证它。
第8章_NP完全性理论
13
8.2 P类问题和NP类问题
P类语言与NP类语言:
❖ P={L|L是一个能在多项式时间内被一台DTM所接受的语言} ❖ NP={L|L是一个能在多项式时间内被一台NDTM所接受的语言}
21
8.3 NP完全问题
NP完全问题:
令P1是一个判定问题,如果问题P1属于NP类问题,并 且对NP类问题中的每一个问题P2,在P2∝pP1,则称判 定问题P1是一个NP完全(NP Complete, NPC)问题。
NP类问题
NP完全(NPC) 问题
22
8.3 NP完全问题
对于“NPC问题”的论述:
12
8.2 P类问题和NP类问题
NP(Non-deterministic Polynomial)类问题:
➢ 如对于某个判定问题,存在一个非负整数k,对于输入规模为n的实 例,能以O(nk)的时间运行一个非确定性算法得到是或否的答案。 • 能用非确定算法在多项式时间内求解的判定问题。如哈密尔顿回 路问题。 • NP类问题是难解问题的一个子类。 • NP类问题并不要求给出一个算法来求解问题本身,而只要求给 出一个确定性算法在多项式时间验证它。
➢ 求解配对问题,需要进行三次变换: • 将配对问题的输入X,Y变成排序问题的两个输入I1′, I2′; • 应用算法A对I1′, I2′分别排序,得到两个排序输出O1′, O2′; • 将两个排序输出O1′, O2′转换成配对问题的输出O。 • 以上操作可在多项式时间内完成,因此该变换为多项式时间变换
• STEP3:确定性地检查V’的团性质。若V’是一个团则接受输入,
算法设计与分析课件--NP完全性理论-NP完全问题及近似算法
1
第八章 NP完全性理论
目录
8.1 异解问题和难解问题
8.2 P类问题和NP类问题
8.3
NP完全问题
8.4 NP完全问题的近似算法
2
8.3 NP完全问题
◼ 问题变换:
➢ NP类问题在最坏情况下的时间复杂性一般都是快速增长的指数函 数。希望能够在NP类问题内部找到一种方法,比较两个问题的计 算复杂性。
12
8.4 NP完全问题的近似算法
◼ NPC问题的近似算法的性能:
❖若一个最优化问题的最优值为c*,求解该问题的一个近 似算法求得近似最优解相应的目标函数值为c,则将该近 似近≤似算ρ比法(是n的)问。近题ρ似输(比n入)定为规义1模时为n,的求=一m得a个x的c函c*近, c数c*似 ρ。解(在为n)通最,常优即情解m况a。x下cc* ,,cc*该
➢ NPC问题是NP类问题中最难的一类问题。至今已经发现 了几千个,但一个也没有找到多项式时间算法。
➢ 如某一个NPC问题能在多项式时间内解决,则每一个 NPC问题都能在多项式时间内解决。
➢ 这些问题也许存在多项式时间算法。因为计算机科学是 相对较为新生的科学,肯定还有新的算法设计技术有待 发现;
➢ 这些问题也许不存在多项式时间算法。但目前缺乏足够 的依据来证明这一点。
➢ 比较两个问题的计算复杂性的可行方法之一是问题变换。
问题∏ I 输入转换
问题∏′
I′
算法A ′
O′ 输出转换 O
3
8.3 NP完全问题
◼ 多项式时间变换:
➢ 若在O(τ(n))时间内完成上述输入/输出转换,则称问题P1以τ(n)时间 变换到问题P2,记为P1∝τ(n) P2。其中,n为问题规模。
NP完全问题
NP完全问题美国麻州的克雷(Clay)数学研究所于2000年5月24日在巴黎法兰西学院宣布了一件被媒体炒得火热的大事:对七个“千僖年数学难题”的每一个悬赏一百万美元。
以下是这七个难题。
“千僖难题”之一:P (多项式算法)问题对NP (非多项式算法)问题“千僖难题”之二:霍奇(Hodge)猜想“千僖难题”之三:庞加莱(Poincare)猜想“千僖难题”之四:黎曼(Riemann)假设“千僖难题”之五:杨-米尔斯(Yang-Mills)存在性和质量缺口“千僖难题”之六:纳维叶-斯托克斯(Navier-Stokes)方程的存在性与光滑性“千僖难题”之七:贝赫(Birch)和斯维讷通-戴尔(Swinnerton-Dyer)猜想NP完全问题排在百万美元大奖的首位,足见他的显赫地位和无穷魅力。
数学上著名的NP问题,完整的叫法是NP完全问题,也即“NP COMPLETE”问题,简单的写法,是NP=P?的问题。
问题就在这个问号上,到底是NP等於P,还是NP不等於P。
证明其中之一,便可以拿百万美元大奖。
这个奖还没有人拿到,也就是说,NP问题到底是Polynomial (多项式),还是Non-Polynomial,尚无定论。
NP里面的N,不是Non-Polynomial的N,是Non-Deterministic,P代表Polynomial倒是对的。
NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。
什么是非确定性问题呢?有些计算问题是确定性的,比如加减乘除之类,你只要按照公式推导,按部就班一步步来,就可以得到结果。
但是,有些问题是无法按部就班直接地计算出来。
比如,找大质数的问题。
有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的。
再比如,大的合数分解质因数的问题,有没有一个公式,把合数代进去,就直接可以算出,它的因子各自是多少?也没有这样的公式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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完全问题
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 表示为节点。
设Φ 是3SAT公式,子句数是k,则G中的节 点分成k组,每组三个节点,称为三元组, 每个三元组对应Φ中的一个子句。G中的边 定义为:不同三元组的节点,若不是相反 文字,则两两相连;三元组内节点间无边 。 可见 (1)Φ有一可满足赋值,G存在一个k-团; (2)G存在一个k-团, Φ可满足。
21
7.2 NP完全问题
第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。
4
7.2 NP完全问题
设f是由w到Φ的归约,下面开始描述归约f。
考虑MN在w上的执行过程。定义MN在w上的 画面是一张nknk表格,其中行代表MN在输 入上的一个计算分支的瞬时描述。并约定 每一个ID都以“#”开始和结束。当然画面 的第一行是初始ID,每一行都根据MN的转 移函数从上一行得到,如果画面的某一行 是接受ID,则称该画面是接受的。
7
7.2 NP完全问题
现在设计公式Φ ,使得变量的一个满足赋值 确实对应MN在w上的一个接受画面。为此 要满足以下4点: 每个单元只能包含一个符号; 第一行为初始ID 存在接受ID 表的每一行都对应于从上一行的ID、按照 MN的规则、合法转移得到ID。
8
7.2 NP完全问题
9
7.2 NP完全问题
定理7-17 [库克—列文定理] 可满足问题 属于P,当且仅当P=NP。
28
The End
29
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完全问题。█
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完全问题
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 是Φ子句数。
注意顶点覆盖问完全问题
顶点覆盖问题(Node Cover)是NP完全的 我们可以给出一个3SAT到这个问题的多项式 时间内运算的归约,即把布尔公式Φ 映射 为<G,k>,其中G是一个图,k是一个正数, 表示G的顶点覆盖子集的节点数。为此, (1)对于Φ 中的每个布尔变元x对应G的一 条边,边的两个顶点记为x和¬x 。当x赋值 为TRUE时,表示对应的覆盖选择x;当x赋 值为FALSE时,表示对应的覆盖选择¬x 。
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的节点之一关联。
23
7.2 NP完全问题
每个钻石结构都包含一行水平节点,它们由 双向边连接起来。
24
7.2 NP完全问题
如果变量xi出现在子句cj中,就把图中两条 从第i个钻石的第j对节点到第j个子句节点的 边添加进去。
如果变量¬xi出现在子句cj中,就把图中两条 从第i个钻石的第j对节点到第j个子句节点的 边添加进去。
17
7.2 NP完全问题
对于一个满足赋值, (1)把变量构件中真文字节点放入M中, (2)把子句中,除为真的文字外的另两个文 字加入M中。 可见M中G的一个覆盖。
18
7.2 NP完全问题
对于G的覆盖M, 把M中的文字置为真。因为 M中包含每个变 量构件的一个节点和子句构件的两个节点, 所以这个赋值满点3SAT。