计算复杂性与智能算法课件.ppt
《计算复杂性与智能算法课件.ppt》由会员分享,可在线阅读,更多相关《计算复杂性与智能算法课件.ppt(97页珍藏版)》请在三一办公上搜索。
1、第3章 计算复杂性与智能算法,第8课 计算复杂性 第9课 近似算法 第10课 智能型算法 第11课 线性规划,第8课 计算复杂性,算法复杂性问题 图灵机 P类与NP类问题 NP完全问题,算法的复杂性问题 算法本身能不能解,这个问题应该在求解问题前就应该首先确定,因为如果一个问题是不可解的,那么对这个问题寻求算法的努力也是徒劳的。问题否可解的相关内容,也就是算法复杂性理论所涉及到的内容。包括P、NP问题的定义以及比较,还有确定型图灵机的介绍。这些内容不足以构成算法复杂性理论体系,但是了解这些内容是复杂性理论深入学习的基础。,计算复杂性问题,可解问题与不可解问题 并不是任何计算问题都能够利用计算机
2、来解决。算法复杂性理论关心的是哪些问题是可以利用计算机来解决的,也就是说是“可解的问题”;哪些问题是在计算机也解决不了的,也就是“不可解的问题”。尽管理论上可解的问题在实际中未必能够找到实现的算法,但算法复杂性理论关心的是如何在理论上证明问题的可解,而不关心具体如何实现。,计算复杂性问题,P问题与NP问题 如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题的集合。通俗地称所有复杂度为多项式时间的问题为易解的问题类,否则为难解的问题。这种可以在多项式时间内验证一个解是否正确的问题称
3、为NP问题,亦称为易验证问题类。,计算复杂性问题,NP理论的核心问题 如果说P问题是NP问题的一个真子集,那么可以不必花太多时间寻找大规模输入NP问题的解,因为这样的努力都是徒劳的;然而如果能够证明NP问题是P问题,那么结果就很不一样了,它说明了现在许多的指数复杂度的问题都有多项式复杂度的解法,只不过是暂时找不到而已。,计算复杂性问题,三种常用计算模型.随机存取机RAM模型.随机存取存储程序机RASP模型.图灵机模型,计算复杂性问题,随机存取机RAM1.RAM的结构,计算复杂性问题,2.RAM程序 一个RAM程序定义了从输入带到输出带的一个映射。可以对这种映射关系作2种不同的解释。解释一:把R
4、AM程序看成是计算一个函数若一个RAM程序P总是从输入带前n个方格中读入n个整数x1,x2,xn,并且在输出带的第一个方格上输出一个整数y后停机,那么就说程序P计算了函数 f(x1,x2,xn)=y,计算复杂性问题,解释二:把RAM程序当作一个语言接受器将字符串S=a1a2an放在输入带上。在输入带的第一个方格中放入符号a1,第二个方格中放入符号a2,第n个方格中放入符号an。然后在第n+1个方格中放入0,作为输入串的结束标志符。如果一个RAM程序P读了字符串S及结束标志符0后,在输出带的第一格输出一个1并停机,就说程序P接受字符串S。,计算复杂性问题,3.RAM程序的耗费标准标准一:均匀耗费
5、标准在均匀耗费标准下,每条RAM指令需要一个单位时间;每个寄存器占用一个单位空间。RAM程序的复杂性一般按照均匀耗费标准衡量。,计算复杂性问题,标准二:对数耗费标准对数耗费标准是基于这样的假定,即执行一条指令的耗费与以二进制表示的指令的操作数长度成比例。在RAM计算模型下,假定一个寄存器可存放一个任意大小的整数。因此若设l(i)是整数i所占的二进制位数,则,计算复杂性问题,随机存取机RASP1.RASP的结构RASP的整体结构类似于RAM,所不同的是RASP的程序是存储在寄存器中的。每条RASP指令占据2个连续的寄存器。第一个寄存器存放操作码的编码,第二个寄存器存放地址。RASP指令用整数进行
6、编码。,计算复杂性问题,2.RASP程序的复杂性不管是在均匀耗费标准下,还是在对数耗费标准下,RAM程序和RASP程序的复杂性只差一个常数因子。在一个计算模型下T(n)时间内完成的输入-输出映射可在另一个计算模型下模拟,并在kT(n)时间内完成。其中k是一个常数因子。空间复杂性的情况也是类似的。,计算复杂性问题,图灵机1、图灵机的构成 图灵机由一个控制器和一条无限长的工作带组成,工作带:划分为许多单元,每个单元可以存放字母表 中的一个符号。控制器:具有有穷个内部状态和一个读写头。,计算复杂性问题,单带图灵机结构,计算复杂性问题,图灵机的工作过程 计算的每一步,控制器处于某个状态,读写头扫描工作
7、带的某一个单元符号;根据当前状态、被扫描单元的内容,决定下一步的执行动作:把当前单元内容,改写成某一个符号;使读写头停止不动、向左或向右移动一个单元;使控制器转移到某一个状态等等。,计算复杂性问题,计算开始时,输入符号串放在工作带上,控制器处于初始状态,读写头扫描输入符号串左端的第一个符号;如果对于当前的状态和所扫描的符号,没有下一步的动作,则图灵机就停止计算。,计算复杂性问题,图灵机形式定义 图灵机 是一个六元组:S:控制器的非空有限状态集合;:有限工作带符号集合,含空白符B;:输入符号字母表,;P0:初始状态,;Pf:最终状态或接受状态,;:转移函数。,计算复杂性问题,转移函数的说明转移函
8、数的定义域:转移函数的值域:,计算复杂性问题,L,P,R 读写头的动作:L:左移一个单元;P:停止不动;R:右移一个单元;转移函数的含义:控制器当前状态为P、读写头扫描到的符号为x 时,把控制器状态修改为P;把符号修改为符号x;使读写头向右移动一个单元。,计算复杂性问题,图灵机格局定义 是一个图灵机,M 的格局是一个二元组::是工作带上的内容。:表示在此格局下读写头的位置;1:表示处于读写头左边的符号串;2:表示处于读写头右边的符号串。读写头指向符号串2 的第一个符号。,计算复杂性问题,图灵机格局初始格局:,1 为空串;可接受格局:,P 是可接受状态,即。停机格局:中,2 的第一个符号是x,转
9、移函数 没有定义,则称是停机格局。,计算复杂性问题,图灵机的计算 是一个有穷、或无穷的格局序列,如果每一个i+1 都由i 经过一步得到,称这个序列是一个计算。,计算复杂性问题,图灵机计算的停机状态1)计算是有穷序列,是可接受的停机格局,称停机在接受状态。称图灵机 M 接受符号串;2)计算是有穷序列,不是可接受的停机格局,称停机在拒绝状态。称图灵机 M 不接受符号串,或拒绝符号串;3)计算是无穷序列,永不停机。,计算复杂性问题,图灵机对语言的识别构造一个识别语言 的图灵机设计思想:使读写头来回移动,成对地对输入符号串的左端和右端作标记。如果全部符号都作了标记,则左边的与右边的个数相等,;否则,。
10、,计算复杂性问题,图灵机的构造S=P0,P1,P2,P3,P4,PN;=a,b,x,B;=a,b,;Pf=P4,PN;其中,P4 为接受状态,PN 为拒绝状态。,计算复杂性问题,转移函数(p0,a)=(p0,b)=(p1,a)=(p1,x)=(p1,B)=(p2,b)=(p2,x)=(p2,B)=(p3,a)=(p3,x)=(p3,B)=,计算复杂性问题,对于,设n=2,图灵机的工作过程如下:,计算复杂性,计算复杂性问题,计算复杂性问题,K带图灵机结构 有K个工作带,每个工作带有一个读写头,都可以独立地移动。,计算复杂性问题,K带图灵机形式定义转移函数的形式:K带图灵机格局若x是输入符号串,则
11、初始格局表示为,计算复杂性问题,确定的图灵机和非确定的图灵机确定性图灵机 若图灵机的转移函数是单值的,则称该图灵机为确定性图灵机,记为 DTM,图灵机每一步的动作都是确定的。非确定的图灵机 若图灵机的转移函数是多值的,则称该图灵机为非确定性图灵机,记为 NDTM。,计算复杂性问题,图灵机的执行时间图灵机的计算的长度 设 是一个格局序列,它是图灵机对输入的一个计算。如果t 是一个可接受的停机格局,则称这个计算是可接受的计算,t 称为这个计算的长度。,计算复杂性问题,图灵机的执行时间 图灵机M 对输入x进行计算的执行时间,记为TM(x),它定义为:(1)如果M 对输入x有一个可接受的计算,则TM(
12、x)是最短的可接受计算的长度;(2)如果M 对输入 x没有一个可接受的计算,则 TM(x)=。,计算复杂性问题,图灵机的时间复杂性 图灵机M的时间复杂性T(n)是它处理所有长度为n的输入所需的最大计算步数。如果对某个长度为n的输入,图灵机不停机,T(n)对这个n值无定义。,计算复杂性问题,图灵机的空间复杂性 图灵机的空间复杂性S(n)是它处理所有长度为n的输入时,在k条带上所使用过的方格数的总和。如果某个读写头无限地向右移动而不停机,S(n)也无定义。,计算复杂性问题,图灵机模型与RAM模型的关系 图灵机模型与RAM模型的关系是指同一问题在这两种不同计算模型下的复杂性之间的关系。对于问题P的任
13、何长度为n的输入,设求解问题P的算法A在k带图灵机模型TM下的时间复杂性为T(n),那么,算法A在RAM模型下的时间复杂性为O(T2(n)。,计算复杂性问题,对于问题P的任何长度为n的输入,设求解问题P的算法A在RAM模型下,不含有乘法和除法指令,且按对数耗费标准其时间复杂性为T(n),那么,算法A在k带图灵机模型TM下的时间复杂性为O(T2(n)。通过问题变换的技巧,可以将不同问题的计算复杂性联系在一起。这样就可以将一个问题的计算复杂性归结为另一个问题的计算复杂性。,计算复杂性问题,易解的问题和难解的问题存在多项式时间算法的问题,称为易解的问题。指数时间算法或排列时间算法的问题,称为难解的问
14、题。,P类与NP类问题,难解问题的计算相关性计算相关:某类问题可以归约为另一类问题。计算相关问题 若它们之一可用多项式时间求解,则其它同类问题也可用多项式时间求解;若它们之一肯定不存在多项式时间算法,则同类的其它问题,也肯定不会找到多项式时间算法。,P类与NP类问题,P类和NP类语言的定义 P=L|L是一个能在多项式时间内被一台DTM所接受的语言 NP=L|L是一个能在多项式时间内被一台NDTM所接受的语言,P类与NP类问题,判定问题和优化问题判定问题:只牵涉到两种情况:YES 或 NO,可以容易地表达为语言的识别问题,方便在图灵机上进行求解。例如:排序问题的判定问题。给定一个整数数组,是否可
15、以按非降顺序排序;图着色的判定问题。给定无向图,是否可用K种颜色为N中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色。,P类与NP类问题,优化问题优化问题牵涉到极值问题。例:图着色的优化问题。为图G着色,使相邻两个顶点不会有相同颜色时所需要的最少颜色数目。,P类与NP类问题,例:求解为图G着色,使相邻两个顶点不会有相同颜色时所需最少颜色数num。令图G的顶点个数为n,彩色数是num,假定存在一个图G着色判定问题的多项式时间算法coloring:BOOL coloring(GRAPH G,int n,int num)则可用下面的方法,利用算法coloring来解图着色的优化问题。
16、,P类与NP类问题,void chromatic_number(GRAPH G,int n,int while(low=high),P类与NP类问题,num=(low+high)/2;if(coloring(G,n,num)low=mid+1;else high=mid 1;num=high;,P类与NP类问题,判定问题转换为优化问题 对算法coloring调用O(log n)次,就能找出为图着色的最优彩色数。根据假定,coloring是多项式时间算法;所以,这个算法也是一个多项式时间算法。,P类与NP类问题,P类问题确定性算法 若A是问题的一个算法。如果在处理问题的实例时,在算法的整个执行过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算复杂性 智能 算法 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3917449.html