计算理论计算复杂性2016ppt课件.pptx
《计算理论计算复杂性2016ppt课件.pptx》由会员分享,可在线阅读,更多相关《计算理论计算复杂性2016ppt课件.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教材教材:1王王 王晓东王晓东,计算机算法设计与分析计算机算法设计与分析(第第4版版),电子工业电子工业.2S 唐常杰等译唐常杰等译,Sipser著著,计算理论导引计算理论导引,机械工业机械工业.参考资料参考资料:3C 潘金贵等译潘金贵等译,Cormen等著等著,算法导论算法导论,机械工业机械工业.4M 黄林鹏等译黄林鹏等译,Manber著著,算法引论算法引论-一种创造性方法一种创造性方法,电子电子.5刘刘 刘汝佳等刘汝佳等,算法艺术与信息学竞赛算法艺术与信息学竞赛,清华大学清华大学.6L Lewis等著等著,计算理论基础计算理论基础,清华大学清华大学.计算理论与计算理论与算法分析设计算法分析
2、设计 刘刘 庆庆 晖晖 计算理论计算理论 第三部分第三部分 计算复杂性计算复杂性 第第7章章 时间复杂性时间复杂性1.时间复杂性时间复杂性 0k1k|k 0 的时间复杂性分析的时间复杂性分析 2.不同模型的运行时间比较不同模型的运行时间比较 单带与多带单带与多带 确定与非确定确定与非确定 3.P类与类与NP类类4.NP完全性及完全性及NP完全问题完全问题一一.时间复杂度时间复杂度 时间复杂度定义时间复杂度定义 0k1k|k 0 的时间复杂度分析的时间复杂度分析 时间复杂性时间复杂性 判定器判定器M的的运行时间运行时间或或时间复杂度时间复杂度是是f:NN,f(n)是是M在在所有长为所有长为n的输
3、入的输入上运行的最大步数上运行的最大步数.若若f(n)是是M的运行时间的运行时间,则称则称 M在时间在时间f(n)内运行内运行 或或 M是是f(n)时间图灵机时间图灵机举例举例:大大O与小与小o记法记法对于函数对于函数f,g:NR+,记记f(n)=O(g(n),若存在若存在c0使得使得 记记f(n)=o(g(n),若若 分析算法分析算法讨论语言讨论语言A=0k1k|k 0 的复杂性的复杂性:M1=“对输入串对输入串w:1)扫描带扫描带,如果在如果在1的右边发现的右边发现0,则拒绝则拒绝.2)如果如果0和和1都在带上都在带上,就重复下一步就重复下一步.3)扫描带扫描带,删除一个删除一个0和一个和
4、一个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:k 0 TIME(n2).是否存在更快的是否存在更快的TM判定判定A呢呢?图灵机图灵机M2M2=“对输入
5、串对输入串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)log n总时间总时间:O(nlogn)0k1k|k 0 TIME(nlogn)由图灵机由图灵机M2知道知道A TIME(n log n)有
6、没有有没有更快的图灵机识别更快的图灵机识别A?对于对于单带单带确定图灵机确定图灵机,由由定理定理:时间时间o(nlogn)的单带图灵机判定的语言的单带图灵机判定的语言 是正则语言是正则语言.TIME(o(nlogn)正则语言类正则语言类 TIME(n)正则语言类正则语言类=TIME(n)=TIME(o(nlogn)非正则语言非正则语言 0k1k|k 0 TIME(o(nlogn)二二.不同模型的时间复杂度比较不同模型的时间复杂度比较 单带与多带单带与多带 确定与非确定确定与非确定 单带与多带运行时间比较单带与多带运行时间比较 0k1k|k 0 有有O(n)时间双带图灵机时间双带图灵机 M3=“
7、对输入串对输入串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|k 0的的O(n)时间双带图灵机时间双带图灵机q0q1qaq2NTM的运行时间的运行时间定义定义:对非确定型判定器对非确定型判定器N,其运行时间其运行时间f(n)是是 在在所有所有长为长
8、为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是素数是素数 如何编码如何编码?一进制一进制,二进制二进制,十进制十进制?典型的指数时间算法
9、来源于典型的指数时间算法来源于蛮力搜索蛮力搜索.有时通过深入理解问题可以避免蛮搜有时通过深入理解问题可以避免蛮搜.2001年年Prime被证明存在被证明存在多项式时间算法多项式时间算法.P类类定义定义:P是是单带确定单带确定TM在在 多项式时间内可判定的问题多项式时间内可判定的问题,即即 P=k TIME(nk)P类的重要性在于类的重要性在于:1)对于所有与单带确定对于所有与单带确定TM等价的等价的模型模型,P不变不变.2)P大致对应于在计算机上大致对应于在计算机上实际可解实际可解的问题的问题.研究的核心是一个问题是否属于研究的核心是一个问题是否属于P类类.NP类类NTIME(t(n)=L|L
10、可被可被O(t(n)时间时间NTM判定判定.定义定义:NP是是单带非确定单带非确定TM在在 多项式时间内可判定的问题多项式时间内可判定的问题,即即 NP=k NTIME(nk)EXP=k TIME(2(nk)P NP EXP P EXP 一些一些P问题问题有些问题初看起来不属于有些问题初看起来不属于P求最大公因子求最大公因子:欧几里德算法欧几里德算法,辗转相除法辗转相除法模模p指数运算指数运算ab mod p素性测试素性测试 等等等等以增加空间复杂性来减小时间复杂性以增加空间复杂性来减小时间复杂性 上下文无关上下文无关语言语言 有有O(n3)判定器判定器 快速验证快速验证HP=|G是包含从是包
11、含从s到到t的的 哈密顿路径哈密顿路径的有向图的有向图CLIQUE=|G是有是有k团的无向图团的无向图目前目前没有快速算法没有快速算法,但其但其成员成员是可以快速验证的是可以快速验证的.注意注意:HP的的补补可能可能不是可以快速验证的不是可以快速验证的.快速验证的特点快速验证的特点:1.只需要对语言中的串能快速验证只需要对语言中的串能快速验证.2.验证需要借助额外的信息验证需要借助额外的信息:证书证书,身份证身份证.NP问题问题团团:无向图的完全子图无向图的完全子图(所有节点都有边相连所有节点都有边相连).CLIQUE=|G是有是有k团的无向图团的无向图定理定理:CLIQUE NP.N=“对于
12、对于输入输入,这里这里G是一个图是一个图:1)非确定地选择非确定地选择G中中k个节点的子集个节点的子集c.2)检查检查G是否包含连接是否包含连接c中节点的所有边中节点的所有边.3)若是若是,则接受则接受;否则否则,拒绝拒绝.”哈密顿路径问题哈密顿路径问题HP NPHP=|G是包含从是包含从s到到t的的 哈密顿路径哈密顿路径的有向图的有向图P时间内判定时间内判定HP的的NTM:N1=“对于输入对于输入:1)非确定地选非确定地选G的所有节点的排列的所有节点的排列p1,pm.2)若若s=p1,t=pm,且对每个且对每个i,(pi,pi+1)是是G的边的边,则接受则接受;否则拒绝否则拒绝.”P与与NP
13、 P=成员资格可以成员资格可以快速快速判定判定的语言类的语言类.NP=成员资格可以成员资格可以快速快速验证验证的语言类的语言类.显然有显然有 P NP但是否有但是否有 P=NP?看起来难以想象看起来难以想象,但是现在没有发现反例但是现在没有发现反例.PNPP=NP当代数学与当代数学与理论计算机理论计算机共同的难题共同的难题.NP完全性的定义完全性的定义 SAT是是NP完全问题完全问题 一些一些NP完全问题完全问题NP完全性完全性Cook和和Levin于于70s证明证明NP中中某些问题某些问题的复杂性与的复杂性与 整个整个NP类类的复杂性相关联的复杂性相关联,即即:若这些问题中的任一个找到若这些
14、问题中的任一个找到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.不可满足不可满足 永真永真 合取
15、范式合取范式:正负文字正负文字(变量变量,变量的非变量的非)子句子句(文字的或文字的或)(x1)x2(x3)(x2(x3)x4 x5)(x4)x5)合取范式合取范式cnf(conjunctive normal form)3cnf:每个子句文字数不大于每个子句文字数不大于3,2cnf:每个子句文字数不每个子句文字数不大于大于2 可满足问题可满足问题SAT 可满足性问题可满足性问题:SAT=|是可满足是可满足的布尔公式的布尔公式 二元可满足性问题二元可满足性问题:2SAT=|是可满足的是可满足的2cnf 三元可满足性问题三元可满足性问题:3SAT=|是可满足的是可满足的3cnf 二元可满足问题二元
16、可满足问题2SAT P1.当当2cnf中有子句是单文字中有子句是单文字x,则反复执行则反复执行清洗清洗 1.1 由由x赋值赋值,1.2 删去含删去含x的子句的子句,1.3 删去含删去含 x的文字的文字 若清洗过程出现相反单文子子句若清洗过程出现相反单文子子句,则清洗则清洗失败并结束失败并结束(x1 x2)(x3x2)(x1)(x1 x2)(x3 x4)(x3 x5)(x4x5)(x3 x4)(x3x2)(x2)(x3 x4)(x3 x5)(x4x5)(x3 x4)(x3 x4)(x3 x5)(x4x5)(x3 x4)2.若无单文字子句若无单文字子句,则任选变量赋真则任选变量赋真/假值各清洗一次
17、假值各清洗一次 若两次都清洗失败若两次都清洗失败,则回答不可满足则回答不可满足.x3:(x5)(x4x5)(x4)(x4)(x4)失败失败 x3:(x4)(x4x5)(x5)成功成功3.若成功清洗后有子句剩下若成功清洗后有子句剩下,则则继续继续2.否则否则,回答可满足回答可满足.注注:见见S习题习题7.23,作者给出的答案与清洗算法作者给出的答案与清洗算法等价等价多项式时间映射归约与多项式时间映射归约与C-L定理定理 Cook-Levin定理定理:SAT P P=NP.定义定义:多项式时间多项式时间可计算函数可计算函数f:*.定义定义:称称A可可多项式时间多项式时间映射归约映射归约到到B(A
18、PB),若存在若存在多项式时间多项式时间可计算函数可计算函数f:*,w*,w A f(w)B.函数函数f称为称为A到到B的的多项式时间多项式时间归约归约.通俗地说通俗地说:f 将将A的实例编码转换为的实例编码转换为B的实例编码的实例编码.Cook-Levin定理定理:对任意对任意A NP都有都有A P SAT.定理定理1:若若 A P B,且且 B P,则则 A P.注注:定理定理1说明说明,若若SAT P,则则 NP=P.多项式时间映射归约的作用多项式时间映射归约的作用 输入输入w f f(w)M y/n w*,w A f(w)B.定理定理1:若若 A P B,且且 B P,则则 A P.证
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 理论 计算复杂性 2016 ppt 课件
限制150内