NP完全性理论.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《NP完全性理论.ppt》由会员分享,可在线阅读,更多相关《NP完全性理论.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、28.1 计算模型计算模型 8.1.1 随机存取机RAM 8.1.2 随机存取存储程序机RASP 8.1.3 RAM模型的变形与简化 8.1.4 图灵机 8.1.5 图灵机模型与RAM模型的关系 8.1.6 问题变换与计算复杂性归约38.1.1 随机存取机随机存取机RAMRAM1. RAMRAM的结构的结构48.1.1 随机存取机随机存取机RAMRAM2. RAMRAM程序程序 一个RAM程序定义了从输入带到输出带的一个映射。可以对这种映射关系作2种不同的解释。解释一:把解释一:把RAMRAM程序看成是计算一个函数程序看成是计算一个函数若一个RAM程序P总是从输入带前n个方格中读入n个整数x1
2、,x2,xn,并且在输出带的第一个方格上输出一个整数y后停机,那么就说程序P计算了函数f(xf(x1 1,x x2 2,x xn n)=y )=y 解释二:把解释二:把RAMRAM程序当作一个语言接受器。程序当作一个语言接受器。将字符串S=a1a2an放在输入带上。在输入带的第一个方格中放入符号a1,第二个方格中放入符号a2,第n个方格中放入符号an。然后在第n+1个方格中放入0,作为输入串的结束标志符。如果一个RAM程序P读了字符串S及结束标志符0后,在输出带的第一格输出一个1并停机,就说程序P接受字符串S。 58.1.1 随机存取机随机存取机RAMRAM3. RAMRAM程序的耗费标准程序
3、的耗费标准标准一:均匀耗费标准标准一:均匀耗费标准在均匀耗费标准下,每条RAM指令需要一个单位时间;每个寄存器占用一个单位空间。以后除特别注明,RAM程序的复杂性将按照均匀耗费标准衡量。 标准二:对数耗费标准标准二:对数耗费标准对数耗费标准是基于这样的假定,即执行一条指令的耗费与以二进制表示的指令的操作数长度成比例。在RAM计算模型下,假定一个寄存器可存放一个任意大小的整数。因此若设l(i)是整数i所占的二进制位数,则 001|log)(iiiil68.1.2 随机存取存储程序机随机存取存储程序机RASPRASP1. RASPRASP的结构的结构 RASP的整体结构类似于RAM,所不同的是RA
4、SP的程序是存储在寄存器中的。每条RASP指令占据2个连续的寄存器。第一个寄存器存放操作码的编码,第二个寄存器存放地址。RASP指令用整数进行编码。2. RASPRASP程序的复杂性程序的复杂性不管是在均匀耗费标准下,还是在对数耗费标准下,RAM程序和RASP程序的复杂性只差一个常数因子。在一个计算模型下T(n)时间内完成的输入-输出映射可在另一个计算模型下模拟,并在kT(n)时间内完成。其中k是一个常数因子。空间复杂性的情况也是类似的。 78.1.3 RAMRAM模型的变形与简化模型的变形与简化1. 实随机存取机实随机存取机 RRAMRRAM 在RRAM模型下,一个存储单元可以存放一个实数。
5、下列的各运算为基本运算且每个运算只耗费单位时间。 (1)算术运算+,。(2)2个实数间的比较()。(3)间接寻址(整数地址)。(4)常见函数的计算,如三角函数,指数函数,对数函数等。优点:能够方便处理实数;适合于用FORTRAN,PASCAL等高级语言写的算法。 88.1.3 RAMRAM模型的变形与简化模型的变形与简化2. 直线式程序直线式程序对于许多问题,所设计的RAM程序中的转移指令仅用于重复一组指令,而且重复的次数与问题的输入规模n成比例。在这种情况下,可以用重复地写出相同指令组的方法来消除程序中的循环。由此,对每一个固定的n得到一个无循环的直线式程序。 经过对RAM模型的简化,得到直
6、线式程序的指令系统如下:xy+zxy-zxy*zxy/zxi其中x,y和z是符号地址(或变量),而i是常数。每条指令耗费一个单位时间。每条指令耗费一个单位时间。98.1.3 RAMRAM模型的变形与简化模型的变形与简化3. 位式计算位式计算直线式程序计算模型显然是基于均匀耗费标准的。在对数耗费标准下,使用另一个RAM的简化计算模型,称之为位式计算(Bitwise Computation)模型。 除了下列2点外,该计算模型与直线式程序计算模型基本相同:(1)假设所有变量取值0或1,即为位变量。(2)所用的运算是逻辑运算而不是算术运算。用代表与,代表或,代表异或,代表非。 在位式计算模型下,每个逻
7、辑运算指令耗费一个单位时间。在位式计算模型下,每个逻辑运算指令耗费一个单位时间。 108.1.3 RAMRAM模型的变形与简化模型的变形与简化4. 位向量运算位向量运算( (Bit Vector Operations)Bit Vector Operations) 若在直线式程序计算模型中,假设所有变量均为位向量,而且所用的运算均为位操作指令,则得到位向量运算计算模型。 例如,要表示一个有100个顶点的图中从顶点v到其余各顶点间有没有边相连,可以用100位的一个位向量表示。若顶点v到顶点vj之间有边相连,则该位向量的第j位为1,否则为0。 缺点:所需的机器字长要远大于其他模型。 118.1.3
8、RAMRAM模型的变形与简化模型的变形与简化5. 判定树判定树 判定树是一棵二叉树。它的每个内结点表示一个形如xy的比较。指向该结点左儿子的边相应于xy,标号为。指向该结点右儿子的边相应于xy,标号为。每一次比较耗费一个单位时间。下图是对a,b,c三个数进行排序的一棵判定树。 在判定树模型下,在判定树模型下,算法的时间复杂性算法的时间复杂性可用判定树的高度可用判定树的高度衡量。最大的比较衡量。最大的比较次数是从根到叶的次数是从根到叶的最长路径的长度。最长路径的长度。 128.1.3 RAMRAM模型的变形与简化模型的变形与简化6. 代数计算树代数计算树ACTACT以x=(x1,x2,xn)为输
9、入的一棵代数计算树T是一棵二叉树,且:(1)每个叶结点表示一个输出结果YES或NO。(2)每个单儿子内部结点(简单结点)v表示下列形式运算指令: op 或 op 或其中, 和 分别是结点v在树T中的祖先结点v1和v2处得到的结果值,或是x的分量;op+,/;c是一个常数。(3)每个有2个儿子的内部结点(分支结点)v,表示下列形式的测试指令: 0或 0或 =0其中, 是结点v在树T中的祖先结点v1处得到的结果值,或是x的分量。 1 vvff 2vfcfv1vf1vvff1vf2vf1vf1vf1vf1vf138.1.3 RAMRAM模型的变形与简化模型的变形与简化7. 代数判定树代数判定树ADT
10、(Algebraic Decision Tree)ADT(Algebraic Decision Tree)在代数计算树T中,若将所有的简单结点都压缩到其最近的子孙分支结点处,并将简单结点处的计算在压缩后的分支结点处同时完成,则计算结果可看作是输入x的一个代数函数fv(x)。由此引出另一个称为代数判定树的计算模型。 代数判定树T是一棵二叉树,且(1)每个叶结点表示输出结果YES或NO。(2)每个内部结点v表示一个形如fv(x1,x2,xn)0的比较。其中,x=( x1,x2,xn)是输入,fv是一个代数函数。 148.1.4 图灵机图灵机1. 多带图灵机多带图灵机158.1.4 图灵机图灵机1.
11、 多带图灵机多带图灵机 根据有限状态控制器的当前状态及每个读写头读到的带符号,图灵机的一个计算步可实现下面3个操作之一或全部。 (1)改变有限状态控制器中的状态。 (2)清除当前读写头下的方格中原有带符号并写上新的带符号。 (3)独立地将任何一个或所有读写头,向左移动一个方格(L)或向右移动一个方格(R)或停在当前单元不动(S)。 k带图灵机可形式化地描述为一个7元组(Q,T,I,b,q0,qf),其中: (1)Q是有限个状态的集合。(2)T是有限个带符号的集合。(3)I是输入符号的集合,IT。(4)b是惟一的空白符,bT-I。(5)q0是初始状态。(6)qf是终止(或接受)状态。 (7)是移
12、动函数。它是从QTk的某一子集映射到Q (TL,R,S)k的函数。 168.1.4 图灵机图灵机1. 多带图灵机多带图灵机图灵机M的时间复杂性T(n)是它处理所有长度为n的输入所需的最大计算步数。如果对某个长度为n的输入,图灵机不停机,T(n)对这个n值无定义。 图灵机的空间复杂性S(n)是它处理所有长度为n的输入时,在k条带上所使用过的方格数的总和。如果某个读写头无限地向右移动而不停机,S(n)也无定义。 与RAM模型类似,图灵机既可作为语言接受器,也可作为计算函数的装置。 178.1.5 图灵机模型与图灵机模型与RAMRAM模型的关系模型的关系图灵机模型与RAM模型的关系是指同一问题在这2
13、种不同计算模型下的复杂性之间的关系。 定理定理8-3 8-3 对于问题P的任何长度为n的输入,设求解问题P的算法A在k带图灵机模型TM下的时间复杂性为 ,那么,算法A在RAM模型下的时间复杂性为 。)(nT)(2nTO定理定理8-4 8-4 对于问题P的任何长度为n的输入,设求解问题P的算法A在RAM模型下,不含有乘法和除法指令,且按对数耗费标准其时间复杂性为 ,那么,算法A在k带图灵机模型TM下的时间复杂性为 。 )(nT)(2nTO188.1.6 问题变换与计算复杂性归约问题变换与计算复杂性归约具体地说,假设有2个问题A和B,将问题问题A A变换为问题变换为问题B B是指:(1)将问题A的
14、输入变换为问题B的适当输入。(2)解出问题B。(3)把问题B的输出变换为问题A的正确解。若用O(n)时间能完成上述变换的第(1)步和第(3)步,则称问题A是(n)时间可变换到问题B,且简记为AA(n)(n)B B。其中的n通常为问题A的规模(大小)。当(n)为n的多项式时,称问题A可在多项式时间内变换为问题B。特别地,当(n)为n的线性函数时,称问题A可线性地变换为问题B。 通过问题变换的技巧,可以将2个不同问题的计算复杂性联系在一起。这样就可以将一个问题的计算复杂性归结为另一个问题的计算复杂性,从而实现问题的计算复杂性归约。198.1.6 问题变换与计算复杂性归约问题变换与计算复杂性归约命题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NP 完全性 理论
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内