您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 17-P类问题和NP类问题.
第18讲P类问题与NP类问题杨明指挥信息系统学院软件工程教研中心yangming@lgdx.mtn算法设计与分析2020/1/14第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析2内容判定问题与语言识别问题P类问题NP类问题第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析3最优化问题与判定问题最优化问题寻找一个有最优目标函数值的可行解许多最优化问题是难解问题最优化问题的三个层次判定模式最优值模式最优解模式三个层次的难度是依序增加的判定模式最优值模式最优解模式第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析4最优化问题与判定问题判定问题输出仅为“是”或“否”的一类问题可抽象为所有输入到{yes,no}的映射最优化问题与判定问题最优化问题可简化为判定问题以简单的判定问题为研究对象若判定问题是难解问题,则更为复杂的优化问题也定是难解问题第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析5例:旅行售货员问题—TSP优化问题给定一个赋权完全无向图G=(V,E),求G的最小费用哈密顿回路。判定问题给定一个赋权完全无向图G=(V,E)和一个数k,图G是否存在一条费用不超过k的哈密顿回路?第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析6判定问题与语言语言对于有限字符集∑,用∑*表示由中字符所组成的所有有限长度字符串的集合。若L是∑*的一个子集,则称L为字符集∑上的一个语言。判定问题与语言通过适当的编码,任何判定问题Q可形式化为语言LL={x∈∑*:Q(x)=1}例PATH={G,u,v,k:G=(V,E),u,v∈V,k∈Z,G中存在一条长度至多为k的路径}第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析7语言识别问题语言识别问题给定x∈∑*,判定x∈L?语言识别问题很适合TM和RAM计算模型图灵机进行语言识别时的两个情况算法A接受语言L:x∈L,A(x)=1;算法A判定语言L:x∈L,A(x)=1;xL,A(x)=0;两者关系对于某些问题,存在接受算法,不存在判定算法。判定语言类是接受语言类的子集第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析8DTM计算模型下的语言识别DTM计算模型移动函数为单值函数终止态qf的区分接受停机状态qy和拒绝停机状态qnDTM程序M接受的语言M接受的字符串LM={x∈∑*:M识别x}M对中LM的字符串停机第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析9DTM算法DTM算法的定义DTM算法只有当一个DTM程序对定义于其输入字符表上的所有可能字符串均停机时,才称其为一个算法。DTM算法时间复杂性函数TM(n)=max{t:x∈∑*,|x|=n,M识别x所需的计算时间t}多项式时间DTM算法存在多项式函数f(n),使得TM(n)≤f(n)第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析10P类问题P类问题P={DTM能在多项式时间内所接受的语言类}对于所有与DTM等价的计算模型来说,P是不变的。P大致对应计算机上实际可解的那类问题排序问题矩阵连乘问题最小生成树问题图搜索问题……第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析11NP类问题难解问题例:旅行售货员问题、团问题问题有解,蛮力搜索。时间复杂性是指数函数时间还未发现多项式时间DTM算法引入新的计算能力更强的计算模型123456第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析12非确定性图灵机计算模型非确定性图灵机NDTM提出了另一个能力更强的计算模型非确定性图灵机完全是一种假想的机器非确定性图灵机允许移动函数δ具有不确定性δ:QTk→(Q(T{L,R,S})k)(Q(T{L,R,S})k为Q(T{L,R,S})k的一个子集。δ(q;x1,x2,…,xk)可在该子集中中随意选定一个值作为它的函数值。第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析13非确定性图灵机的理解...b...-2-101234...bbb0(1)初始阶段(2)猜想阶段(3)验证阶段….-3-2-10123….|x|b...bbbb......变为DTMGMFCSwq0GMFCSwr/winactiveb第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析14NDTM的语言识别NDTM接受的语言NDTM程序M接受字符串对于每个字符串x∈∑*,对应若干包含一系列计算步的计算路径。若这些计算路径中至少存在一个可接受计算路径,即NDTM程序最终进入可接受状态qfLM={x∈∑*:M接受x}第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析15NDTM算法不确定性算法猜想阶段在多项式时间内产生一个任意字符串yy可能对应输入实例的解,也可能不是解验证阶段使用确定性算法验证字符串y是否解验证算法要求在多项式时间内完成接受拒绝T(n)第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析16NDTM算法NDTM算法NDTM算法M时间复杂性函数TM(n)=max{t:x∈∑*,|x|=n,M接受x所需的计算时间t}多项式时间的NDTM算法存在多项式函数f(n),使得TM(n)≤f(n)第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析17DTM与NDTM的关系DTM与NDTM的区别DTM的每一步只有一种选择,而NDTM却可以有多种选择。NDTM的计算能力比DTM的计算能力强得多。对于一台时间复杂性为T(n)的NDTM,可用一台时间复杂性为O(CT(n))DTM模拟,其中C为常数。接受拒绝T(n)第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析18NP类问题NP类问题NP={NDTM能在多项式时间内接受的语言类}例:CLIQUE问题判定图G是否包含一个k个顶点的完全子图123456164K=3第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析19CLIQUE∈NP证明过程图采用邻接矩阵编码非确定性算法输入分解计算n和k,O(n2)非确定性选择O(n)确定性验证O(n4)CLIQUE={w#v|w,v∈{0,1}*,w为邻接矩阵表示的图有一个k团}j=0//非确定性算法for(i=1;i=n;i++){m=choice(0,1);//猜想switch(m){case0:a[i]=0;break;case1:a[i]=1;j++;break;}}if(j!=k)thenreject;第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析20另一角度的看NP问题哈密顿路径问题求解:从图G中寻找HC?验证:判定回路C是否是HC?团问题求解:图G中是否存在k团?验证:给定子图是否是k团?猜想ABCDEFGHIJKLMN第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析21多项式时间验证多项式时间可验证语言类VP验证算法定义为两个自变量的算法A(x,y),其中x是待验证的输入串,y为称为“证据”的二进制串。如果对任意串x∈L,存在证据y,A(x,y)=1。A验证的语言L={x∈∑*:存在证据y∈∑*,满足A(x,y)=1}多项式时间可验证语言类VP={L|L∈∑*:存在一个多项式时间验证算法A(x,y)使得对任意x∈∑*,x∈L当且仅当存在y∈∑*,|y|≤O(|x|)k且A(x,y)=1}。第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析22NP类问题定理VP=NPNP类问题是确定性计算模型下的多项式时间可验证的语言类NP类问题的两个等价定义NP={NDTM能在多项式时间内接受的语言类}NP={DTM能在多项式时间内验证的语言类}接受p(n)第18讲P类问题和NP类问题2020/1/14计算机算法设计与分析23实验题二超市设置问题给定一个城市小区(用图G表示),现需设置k个超市,要求小区居民到超市购物的距离最小?
本文标题:17-P类问题和NP类问题.
链接地址:https://www.777doc.com/doc-3022812 .html