版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教材:[1][王]王晓东,计算机算法设计与分析(第4版),电子工业.[2][S]唐常杰等译,Sipser著,计算理论导引,机械工业.参考资料:[3][C]潘金贵等译,Cormen等著,算法导论,机械工业.[4][M]黄林鹏等译,Manber著,算法引论-一种创造性方法,电子.[5][刘]刘汝佳等,算法艺术与信息学竞赛,清华大学.[6][L]Lewis等著,计算理论基础,清华大学.计算理论与
算法分析设计刘庆晖计算理论
第三部分计算复杂性第7章时间复杂性1.时间复杂性
{0k1k|k0}的时间复杂性分析2.不同模型的运行时间比较单带与多带确定与非确定3.P类与NP类4.NP完全性及NP完全问题一.时间复杂度
时间复杂度定义
{0k1k|k0}的时间复杂度分析时间复杂性
判定器M的运行时间或时间复杂度是f:NN,f(n)是M在所有长为n的输入上运行的最大步数.
若f(n)是M的运行时间,则称
M在时间f(n)内运行或M是f(n)时间图灵机举例:大O与小o记法对于函数f,g:NR+,记f(n)=O(g(n),若存在c>0使得记f(n)=o(g(n)),若分析算法讨论语言A={0k1k|k0}的复杂性:M1=“对输入串w:1)扫描带,如果在1的右边发现0,则拒绝.2)如果0和1都在带上,就重复下一步.3)扫描带,删除一个0和一个1.4)如果带上同时没有0和1,就接受.”时间分析:(1)2n=O(n),4)n=O(n),
{
(2)2n=O(n)+
(3)2n=O(n)}(n/2)=O(n2)所以M1的运行时间是O(n2).时间复杂性类定义:对于函数t:NN,时间复杂性类TIME(t(n))
定义为:TIME(t(n))={L|存在O(t(n))时间TM判定L}因为M1是时间O(n2)图灵机,所以A={0k1k:k0}TIME(n2).是否存在更快的TM判定A呢?图灵机M2M2=“对输入串w:1)扫描带,若1的右边有0,则拒绝.2)若0,1都在带上,重复以下步骤.3)检查带上0,1总数的奇偶性,
若是奇数,就拒绝.4)再次扫描带,
第1个0开始,隔1个0删除1个0;
第1个1开始,隔1个1删除1个1.5)若带上同时没有0和1,则接受.
否则拒绝.”O(n)O(n)O(n)O(n)O(n)logn总时间:O(nlogn){0k1k|k0}TIME(nlogn)由图灵机M2知道ATIME(nlogn)有没有更快的图灵机识别A?对于单带确定图灵机,由定理:时间o(nlogn)的单带图灵机判定的语言
是正则语言.TIME(o(nlogn))正则语言类TIME(n)
正则语言类=TIME(n)=TIME(o(nlogn))非正则语言{0k1k|k0}TIME(o(nlogn))二.
不同模型的时间复杂度比较
单带与多带确定与非确定单带与多带运行时间比较{0k1k|k0}有O(n)时间双带图灵机M3=“对输入串w:1)扫描1带,如果在1的右边发现0,则拒绝.2)将1带的1复制到2带上.3)每删除一个1带的0就删除一个2带的1.4)如果两带上同时没有0和1,就接受.”定理:设函数t(n)n,则每个t(n)时间多带TM
和某个O(t2(n))时间单带TM等价.{0k1k|k0}的O(n)时间双带图灵机q0q1└┘qaq2└┘└┘└┘└┘NTM的运行时间定义:对非确定型判定器N,其运行时间f(n)是在所有长为n的输入上,所有分支的最大步数....f(n)接受/拒绝...f(n).........TMNTM定理:设t(n)n,则每个时间t(n)NTM都有一等价的时间2O(t(n))TM.NTIME(t(n))TIME(2O(t(n)))
三.P与NP多项式时间运行时间相差多项式可以认为是小的相差指数可以认为是大的.例如:n3与2n,对于n=1000.有关素性测试:Prime={p|p是素数}如何编码?一进制,二进制,十进制?典型的指数时间算法来源于蛮力搜索.有时通过深入理解问题可以避免蛮搜.2001年Prime被证明存在多项式时间算法.P类定义:P是单带确定TM在
多项式时间内可判定的问题,即
P=kTIME(nk)P类的重要性在于:对于所有与单带确定TM等价的模型,P不变.P大致对应于在计算机上实际可解的问题.
研究的核心是一个问题是否属于P类.NP类NTIME(t(n))={L|L可被O(t(n))时间NTM判定.}定义:NP是单带非确定TM在
多项式时间内可判定的问题,即
NP=kNTIME(nk)EXP=∪kTIME(2^(nk))PNPEXPPEXP一些P问题有些问题初看起来不属于P求最大公因子:欧几里德算法,
辗转相除法模p指数运算abmodp素性测试等等以增加空间复杂性来减小时间复杂性上下文无关语言有O(n3)判定器
快速验证HP={<G,s,t>|G是包含从s到t的
哈密顿路径的有向图}CLIQUE={<G,k>|G是有k团的无向图}目前没有快速算法,但其成员是可以快速验证的.注意:HP的补可能不是可以快速验证的.快速验证的特点:只需要对语言中的串能快速验证.验证需要借助额外的信息:证书,身份证.NP问题团:无向图的完全子图(所有节点都有边相连).CLIQUE={<G,k>|G是有k团的无向图}定理:CLIQUENP.N=“对于输入<G,k>,这里G是一个图:1)非确定地选择G中k个节点的子集c.2)检查G是否包含连接c中节点的所有边.3)若是,则接受;否则,拒绝.”哈密顿路径问题HPNPHP={<G,s,t>|G是包含从s到t的
哈密顿路径的有向图}P时间内判定HP的NTM:N1=“对于输入<G,s,t>:1)非确定地选G的所有节点的排列p1,…pm.2)若s=p1,t=pm,且对每个i,(pi,pi+1)是G的边,
则接受;否则拒绝.”P与NPP=成员资格可以快速判定的语言类.NP=成员资格可以快速验证的语言类.显然有PNP但是否有P=NP?看起来难以想象,但是现在没有发现反例.PNPP=NP当代数学与理论计算机共同的难题.NP完全性的定义
SAT是NP完全问题一些NP完全问题NP完全性Cook和Levin于70’s证明NP中某些问题的复杂性与
整个NP类的复杂性相关联,即:若这些问题中的任一个找到P时间算法,则P=NP.这些问题称为NP完全问题.理论意义:两方面1)研究P与NP关系可以只关注于一个问题的算法.2)可由此说明一个问题目前还没有快速算法.合取范式
布尔变量:取值为1和0(T,F)的变量.
布尔运算:AND(),OR(),NOT().布尔公式.
例:1=((x)y)(x(z)),2=(x)x
称可满足,若存在布尔变量的0,1赋值使得=1.不可满足永真合取范式:正负文字(变量,变量的非)子句(文字的或)
((x1)x2(x3))(x2(x3)x4x5)((x4)x5)
合取范式cnf(conjunctivenormalform)3cnf:每个子句文字数不大于3,
2cnf:每个子句文字数不大于2可满足问题SAT
可满足性问题:SAT={<>|是可满足的布尔公式
}
二元可满足性问题:2SAT={<>|是可满足的2cnf}
三元可满足性问题:3SAT={<>|是可满足的3cnf}二元可满足问题2SATP1.当2cnf中有子句是单文字x,则反复执行清洗
1.1由x赋值,1.2删去含x的子句,1.3删去含x的文字若清洗过程出现相反单文子子句,则清洗失败并结束(x1x2)(x3x2)(x1)(x1x2)(x3x4)(x3x5)(x4x5)(x3x4)(x3x2)(x2)(x3x4)(x3x5)(x4x5)(x3x4)(x3x4)(x3x5)(x4x5)(x3x4)2.若无单文字子句,则任选变量赋真/假值各清洗一次若两次都清洗失败,则回答不可满足.x3:(x5)(x4x5)(x4)(x4)(x4)失败
x3:(x4)(x4x5)(x5)成功3.若成功清洗后有子句剩下,则继续2.否则,回答可满足.注:见[S]习题7.23,作者给出的答案与清洗算法等价多项式时间映射归约与C-L定理Cook-Levin定理:SATPP=NP.
定义:多项式时间可计算函数f:**.
定义:称A可多项式时间映射归约到B(APB),
若存在多项式时间可计算函数f:**,
w*,wAf(w)B.
函数f称为A到B的多项式时间归约.
通俗地说:f将A的实例编码转换为B的实例编码.Cook-Levin定理:对任意ANP都有APSAT.
定理1:若APB,且BP,则AP.
注:定理1说明,若SATP,则NP=P.多项式时间映射归约的作用
输入wff(w)My/nw*,wAf(w)B.
定理1:若APB,且BP,则AP.
证明:设f:**是A到B的P时间归约,B有P时间判定器M,则
N=“输入w,计算M(f(w)),输出M的运行结果”在多项式时间内判定A.利用f和B的判定器
构造A的判定器定理:3SATPCLIQUE3SAT={<>|是可满足的3cnf公式}CLIQUE={<G,k>|G是有k团的无向图}.证明:设=(a1b1c1)…(akbkck),有k个子句.f()=<G,k>,G有k组节点,每组3个;
同组节点无边相连,相反标记无边相连.f((x1x1x2)(x1x2x2)(x1x2x2))=<G,3>x1x1x2x1x2x2x1x2x2需证:3SAT
(G,k)CLIQUE,3SATf()CLIQUE
<>(<(x1x1x2)(x1x2x2)(x1x2x2)>)
3SAT变量赋值(x1=0,x2=1)使得=1k团(每组挑一个真顶点得到k团,非同组非相反)f()(<G,3>)CLIQUE.x1x1x2x1x2x2x1x2x2NP完全性
定义:语言B称为NP完全的(NPC),若它满足:1)BNP;2)ANP,都有APB.
定理1:若APB,且BP,则AP.
定理2:若B是NPC,且BP,则P=NP.
定理3:若B是NPC,BPC,且CNP,则C是NPC.
证明:ANP,(APB)+(BPC)APCCook-Levin定理:SAT是NP完全问题.
推论:CLIQUE是NPC.
输入wff(w)My/nw*,wAf(w)B.利用f和B的判定器
构造A的判定器Cook-Levin定理的证明步骤
定义:语言B称为NP完全的(NPC),若它满足:1)BNP;2)ANP,都有APB.Cook-Levin定理:SAT是NP完全问题.证明步骤:1.SATNP(?),2.ANP,AP
SAT(?)N=“对于输入<>,是一个布尔公式:
1)非确定地选择所有变量的赋值T.
2)检查在赋值T下是否=1
3)若是,则接受;否则,拒绝.”SAT是NP完全问题
要证明:1)SATNP.2)ANP,都有AP
SAT.
思想:将字符串对应到布尔公式利用接受的形式定义.
过程:任取ANP,设N是A的nk时间NTM.w(|w|=n),N接受w
N有长度小于nk的接受格局序列能填好N在w上的画面(一个nknk表格)f(w)可满足
结论:SAT是NP完全的N接受w能填好N在w上的画面#q0w0w1…wn#####nknk起始格局第2个格局第nk个格局窗口能填好画面:第一行是起始格局上一行能产生(或等于)下一行
画面中有接受状态构造布尔公式f(w)
能填好画面f(w)可满足
f(w)=<>,=cellstartmoveaccept.
对于任意赋值:1.cell=1每格有且只有一个符号;2.start=1第一行是起始格局;3.accept=1表格中有接受状态;4.move=1每行由上一行格局产生.
w,wA<>SAT即AmSAT
若|<>|是|w|的多项式,则有APSAT构造cell
长O(n2k)
cell=1每格有且只有一个符号;的变量:xi,j,s,i,j=1,…,nk,sQ{#}
xi,j,s:第i行第j列是否填了符号s构造start
长O(nk)
start=1第一行是起始格局;构造accept
长O(n2k)
accept=1表格中有接受状态构造move=cellstartmoveaccept.move确定表的每行是上一行的合法结果.只需判断每个23窗口是否“合法”.合法窗口设(q1,b)={(q2,c,L),(q2,e,R)},a,d,s,t是任意符号,则aq1bq2acaq1baeq2daq1daeasbasbstastq2bsacsaabtastaq1baaq1aq1bq1aq1合法窗口非法窗口长
O(n2k)APSAT,SAT是NPCf(w)=<>wA<>SAT,
|<>|=O(n2k)=cellstartmoveaccept.推论:3SAT是NP完全的只需将前面的改造为3cnf公式.=cellstartmoveaccept.任取变量赋值
a1a2…ak=1当且仅当存在新变量z的赋值使得(a1a2…ak-2z
)(z
ak-1ak
)=1改造后公式长度最多是原来的3倍move的改造分配律(ab)c=(ac)(bc)
(ab)(cd)(ef)=(ace)(acf)设合法窗口有M个,则move原长度是6Mn2k,改造为cnf范式后,move长度是6Mn2k.改造为3cnf后,长度增加常数倍.所以3SAT是NP完全的.恰当覆盖问题(ExactCover,EC)
有限集U,论域,全集子集簇F={S1,S2,…,Sm}
是否有F的两两不交子簇,其并为U
例:U={1,…,6},F={{1,3},{2,3,6},{1,5},{2,3,4},{5,6},{2,4}}
定理:ECNP.
证明:非确定选择子集簇,验证.
定理:3SATPEC.定理:3SATPEC.EC={<(U,F)>|U的子集簇F有不交子簇并为U}
对于3cnf公式,构造f(<>)=<(U,F)>
设有变量x1,…,xn,子句C1,…,Cs,Cj有文字ajk,1k3U={x1,…,xn}{C1,…,Cs}{pjk|1js,1k3}F由下面的集合组成变量子集Ti,1={xi}{pjk|ajk=xi}xi的负文字
Ti,0={xi}{pjk|ajk=xi}xi的正文字子句子集{Cj,pjk},文字子集{pjk}可满足(U,F)有恰当覆盖原则:子句子集对应真文字,变量子集对应假文字,文字子集补齐到(U,F)归约举例EC={<(U,F)>|U的子集簇F有不交子簇并为U}设C1=(x1x2),C2=(x1x2x3),C3=(x2),C4=(x2x3),则U={x1,x2,x3}{C1,C2,C3,C4}{p11,p12,p21,p22,p23,p31,p41,p42}F由下面的集合组成变量子集T1,1={x1,p21},T1,0={x1,p11},T2,1={x2,p12,p41},T2,0={x2,p22,p31},T3,1={x3,p42},T3,0={x3,p23},
子句子集{C1,p11},{C1,p12},…,{C4,p41},{C4,p42},
文字子集{p11},{p12},…,{p41},{p42},
原则:子句子集对应真文字,变量子集对应假文字,文字子集补齐哈密顿路径(HP)是NPC(3SATPHP)HP={<G,s,t>|G是有向图,有从s到t的哈密顿路径}任取3cnf公式=(a1b1d1)…(akbkdk),不妨设有k个子句c1,…,
ck,n个变量x1,…,xn,构造f()=<G,s,t>使得可满足G有从s到t的HP一般从3cnf公式构造图有
变量构件,子句构件,联接构件变量构件和子句构件变量xi表示为一个钻石结构xicj子句cj表示为一个节点图G的总体结构对应n个变量x1,…,xn,k个子句c1,…,ck,起点s,终点t
st钻石构件中的水平节点分隔节点xi分隔节点c1c2水平行除两端的两个节点外有3k+1个节点每个子句对应一对节点(共2k个)用分隔节点隔开(k+1个)变量与子句构件的连接xi分隔节点cj当子句cj含有文字xi时添加的边当子句cj含有文字xi时添加的边cjxi分隔节点cjcj可满足G有从s到t的哈密顿路径设计思路:变量赋值1对应左-右式通过钻石,反之右左式
cj可选一真文字处进出一次正规路径xi分隔节点cj当子句cj含有文字xi时添加的边当子句cj含有文字xi时添加的边cjxi分隔节点cjcjG有从s到t的哈密顿路径可满足若每个钻石都是左右式或右左式通过,则称为正规路径若s到t的哈密顿路径是正规路径,则公式可满足从s到t哈密顿路径只能是正规路径若非正规路径,如图,则a2或a3是分隔节点若a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海工商职业技术学院《安全管理》2025-2026学年第一学期期末试卷(A卷)
- 腹膜炎的康复锻炼指导
- 2026年少儿花艺基础说课稿
- 初中心理教育教案:2025年友谊关系处理说课稿
- 肺癌患者社会支持系统建立
- 上海音乐学院《阿拉伯国情》2025-2026学年第一学期期末试卷(B卷)
- 上海音乐学院《安全法学》2025-2026学年第一学期期末试卷(B卷)
- 肺叶切除术后咳嗽与咳痰护理
- 肺水肿的护理案例分析
- 2025年雕塑品类海外仓管理 定制木箱与吊装设备配置
- 浙江温州市十校联合体2025-2026学年高一下学期4月期中考试语文试题及参考答案
- 山东省潍坊市2026届高三下学期4月高考模拟考试(二模)语文试题(含答案)
- 2026长春市中考语文专项训练卷含答案字词
- (二模)郑州市2026年高三毕业年级第二次质量预测语文试卷(含官方答案)
- (2026版)市场监督管理行政处罚案件违法所得认定办法课件
- 娄底市2026教师资格证笔试-综合素质-教育知识与能力试卷(含答案)
- 2026福建鑫叶投资管理集团有限公司(第一批 )社会招聘32人笔试备考试题及答案解析
- 2025年团校共青团入团积极分子考试题【附答案】
- 2026年新疆维吾尔自治区乌鲁木齐市中考化学全真模拟试题(含答案解析)
- 创伤后心理护理的创伤知情照护
- 2026中国联通招聘笔试题及答案
评论
0/150
提交评论