ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:87.50KB ,
资源ID:27015555      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27015555.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第3讲P类NP类NPC类.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第3讲P类NP类NPC类.docx

1、第3讲P类NP类NPC类上次内容:(1)5个算法设计技术,分而治之,贪心技术,回溯,动态规划,局部搜索(2)局部搜索设计近似算法,现在也有了。(3)许多问题设计不出多项式时间求解算法,也有很多问题能找到多项式算法,大学学的算法都是多项式时间的。(4)企图把问题分类,能否分为两类,一类可以设计多项式时间算法,另一类不能设计多项式时间算法。前人建立了一种模型,说明问题很难,怎样说明。实际也是多年研究的结果,科学就是解释现象。例子:实例:布尔变量集合:U=u1, u2, u3, u4, u5,C = , , , 询问:是否存在U真值指派,使() () () () = 1SAT问题一般描述:实例:布尔

2、变量集合:U=u1,u2,un,项集合C = c1, c2, , cm, ck=yk1,yk2,ykt, ykj u1,u2,un, .询问:是否存在U的真值指派,使c1c2cm=1,就是,ck=yk1yk2ykt在人工智能的搜索求解中,推理规则均采用合取范式表示。tsp问题:实例:城市集合:C = c1,c2,cm, d(ci, cj) Z+,ci, cjC,正整数K.询问:是否存在城市排列c(1)c(2)c(m),使Hamilton回路问题:实例:无向简单图G = (V, E),|V| = n。询问:是否存在定点排列v(1), v(2), , v(n),使(v(i),v(i+1)E(G),

3、 i=1,n-1,(v(n),v(1) E(G)。上述两个问题均是询问解得存在性,判断是否具有满足条件的解。书上的表:表上是以前的计算机的计算时间。问题的算法时间复杂性有很多,什么样的好呢?每秒100万次的计算机。T(n)问题输入长度n102030405060n0.000010.000020.000030.000040.000050.00006n20.00010.00040.00090.00160.00250.0036n30.0010.0080.0270.0640.1250.216n510.132012431.7p25.2p130p2n0.001117.9p12.7天35.7年366世纪3n0

4、.05958分6.5年3855世纪表说明多项式时间复杂度与指数时间复杂度,区别大。主要是增长速度区别。3.2确定型图灵机与P类下面要说明什么是多项式时间可以求解的问题,实际要定义多项式时间复杂度,什么是时间复杂度,什么是空间复杂度。自圆其说,说明自然界中的问题,解决问题。英文名字:DTM(1)一个硬壳;存储带:一个方格存一个符号;读写头在那里,可以左右移动,一次移动一个方格。状态控制器可以读写带方格中的内容;(2)硬壳中放入数据;带上放的符号:有限个,其中包括空白符号b,=b,是输入符号集合。符号有限个,不能无限多个。(3)有限个状态;状态个数不随问题实例长度变化而变化。Q = q0, q1,

5、 q2, , qy, qn,q0:起始状态,qy, qn都是停机状态,qy表示停机时回答yes,qn表示停机时回答no。qf=qy,qn(4)状态转换规则。什么是状态,三要素表示DTM状态:(qk,读写头位置,读写头指向位置的带符号),现在不关心读写头位置,只关心读写头指定带方格的符号。在造计算机时,有一个地址寄存器。(Q-qf)Q:这是一个映射。(qi, si)():含义,当前状态qi,当前读写头所指方格中的符号si,则下一个状态qi,将带方格中的符号修改为si,读写头移动一个位置: = L, R, S程序实际就是状态转换规则:初始状态q0,按照程序转换状态,到结束时状态qf,回答yes或n

6、o。我们编的程序就是告诉计算机怎样改变状态。真正实现计算机,还有很多工作,怎样用语言的形式描述状态转换规则。那些硬件,那些软件,电子计算机怎样实现。例子:利用turing机判断正整数的奇偶性。(1)=0,1,b;(2)Q=q0, q1, q2, qy, qn(3)状态转换规则如下:Q01bq0(q0,0,r)(q0,1,r)(q1,b,l)q1(q2,0,s)(q2,1,s)(q2,b,s)q2(qy,0,s)(qn,1,s)(q2,b,s)以下是输入的带符号,输入数据,实例,Bb1010bbbb-2-101234567(1)q0,1,r-q0,0读写头位置1;(2)Q0,0,r-q0,1读写

7、头位置2(3)q0,1,r-q0,0读写头位置3;(4)q0,0,r-q0,b读写头位置4;(5)q0,b,L-q1,0读写头位置3;(6)q1,0,s-q2,0读写头位置3直接讲就可以了。定义3.1:把问题的任意实例I输入给DTM,都能经过DTM有限步计算到达停机状态qfqy,qn,则称问题是确定turing机可计算的,否则称为确定turing机不可计算的。有的问题不可计算。不是所有问题都可以计算。团问题:实例:无向图G = (V, E),正整数J Z+,询问:是否存在G的一个完全子图G, |V(G)| J?输入数据格式认为是一种语言,规则当然是语言,带格式的数据,人们把它看作语言。问题的描

8、述:描述问题的符号集合,描述实例的形式化,输入数据的格式是什么,L,也称为一种语言。针对任意一个输入I L,回答是什么?(I) yes, no*实例有了以后,就有答案了,解也就有了, 回答yes的解可能多个。每个实例对应一个确定的答案。定义3.2:问题是用某个DTM程序可解的,任意实例IL,只要I写在带上,从q0状态开始执行,总可经过有限步计算停机,且在带上保留着该问题的解答(I)yes,no。所用的状态数为计算的时间复杂度:TM(I)。计算中所占用的带方格数为空间复杂度SM(I)。L(n)=I|IL, |I|=n,实例集合,长度为n的语言集合。问题规模怎么描述。TM(n)=maxTM(I)|

9、IL(n),问题输入长度为n时的时间复杂度。SM(n)=maxSM(I)|IL(n),问题输入长度为n时的空间复杂度。所有长度为n的实例中,计算时间最长的那个实例的时间复杂度定义为T(n)。本质上,TM(n)也是几乎不可能精确得到的,我们往往只能得到TM(n)的一个上界。定义3.4:多项式时间可解的:存在存在多项式函数P(n),使TM(n)P(n)。则称问题是多项式时间可计算的。P类问题-DTM多项式时间可计算的。3.3非确定图灵机与NP类素数分解问题:实例:大整数n询问:是否存在两个素数p1, p2,使得:p1*p2=n?密码学上十分重要的问题。验证容易,求解难。货郎判定问题,团问题都是这样

10、,Hamilton回路问题。Sat问题:实例: U = u1,u2,u3,u4,u5, C = (u1,u2,), (u2, ,u5), (,u3,), (u2,u3,u5)询问:是否存在U的真值指派使C中的项均满足。解释何谓满足,就是使项对应布尔表达式取值为1。TSP问题:实例:城市集合:C=c1,c2,cm,d(ci,cj)Z+,ci,cjC,正整数K.询问:是否存在城市排列c(1)c(2)c(m),使验证容易求解难。三个问题都是这样。Hamilton回路问题:实例:无向简单图G = (V, E),|V| = n。询问:是否存在定点排列v(1), v(2), , v(n),使(v(i),v

11、(i+1)E(G), i=1,n-1,(v(n),v(1) E(G)。所以给出NTM模型如下:(1)硬壳:(2)机器的符号,=b(3)状态集合:Q=q0,q1,q2,qf,qfqy,qn(4)状态转换函数:(qi,si)(qi,si,),哪一个状态,哪一个符号,怎么移动,NTM自己通过猜测部件获得选择。把这件事讲清楚很难。解释什么是NTM, 实际就是验证机器,由猜测部件猜测最好的动作,然后状态控制器去执行动作。求出最优解。根据猜测部件求出的解回答结果。 猜测部件猜测正确,则多项式时间内可以回答正确答案。我们只需要编验证程序就可以。 猜测部件猜测错了,就不能保证最后回答对了。猜测部件应该能够保证

12、,若是就能猜出来。 相当于验证了。猜测一个动作就相当于猜测一个解。一步一步猜,所以一步一步改变状态。 Sat问题若猜测部件给定一个解,能否编一个程序验证是否满足?能否编一个程序对任意猜测的解去验证是否满足?当然能,这有什么不确定的地方?因为不知道猜测什么解,所以下一步不确定。 问题是猜测部件有多大能力。可以认为猜测解。定义3.5:NTM可解,给定,任意I L, NTM总可在有限步停机,给出正确答案。定义3.6:时空复杂度。L(n)=I|IL,(I)=1,|I|=n,回答是的实例长度为n的集合。TNTM(n)=maxTNTM(I)|IL(n)SNTM(n)=maxSNTM(I)|IL(n)定义3

13、.7:NP类问题,TNTM(n)P(n)。问题类。NTM多项式时间可解的问题。是否可以编个程序,v1,vm:所有图的点P1=v1, L=0.For i= 2 To m do step 1Guess(v1, x)If xP1,Pi-1 return errorPi=x;If x=v2, L=L+d(vi-1,v2)If x=v3, L=L+d(vi-1,v3)If x=vm, L=L+d(vi-1,vm)End forIf LK Return YES else NO.v1,vm:所有图的点P1=v1, L=0.Guess(v1, x2m)For i= 2 To m do step 1If xiP

14、1,Pi-1 return errorPi=xi;If xi=v2, L=L+d(vi-1,v2)If xi=v3, L=L+d(vi-1,v3)If xi=vm, L=L+d(vi-1,vm)End forIf LK return YES else return NO.说明: P类,NP类,多项式时间可验证的问题类NP类。 PNP 定理3.1:NP类的问题,均可用DTM在T(n)=O(2P(n)时间内求解。存在P(n)。 简单说明怎样证明。因为每一步有好几个选择,用O(2P(n)可以全部枚举出来。不让猜测部件猜了,把所有可能的解都举出来,每个都验证,因为一次验证多项式时间:q(n),解的长度

15、不会超过q(n),总时间复杂度不超过:|q(n).3.4多项式变换与NPC类前面的东西没法证明TSP问题不存在多项式时间复杂度。举例子,很多人花费大量时间企图证明TSP问题不存在多项式算法,但是都没有证出来。求解问题时想到用变换。实际上求解问题用变换效果并不好。但是可以用变换证明问题的计算难度。用一个问题的语言描述另一个问题,任何一个实例都行方可。把一个问题转换为另一个问题解决。用1的语言描述2,若1存在多项式算法,则2也存在多项式算法。举个例子:sat,n皇后问题x11x12x13x1nx21x221x2n11111111xn1xnnsat,团问题Sat问题:实例:U=u1,u2,u3,u4

16、,u5, C=(u1,u2,), (u2, ,u5), (,u3,), (u2,u3,u5)询问:是否存在U的真值指派使C中的项均满足。1说明别人做过n皇后问题,速度很快,就是找不出好算法来。2说明怎样做?变量:x11,x12,x1n,xn1,xnn每行只有一个取1:xi1,xin,。,。每列只有一个取1:每个斜线只有一个取1。项个数,不超过,时间复杂度O(n3)变换:reductionHamilton回路可以用Sat表达:V1V2V3V41x11(1)x12x13x142x21x22x23(1)x243x31x32(1)x33x344x41x42x43x44(1)y12,y13,y14y21

17、,y23,y24y31,y32,y34y41,y42,y43每行一个1,每列一个1,第i行与第i+1行(x11,x12,x13,x14),(,),(,)(x21,x22,x23,x24),(,),(,)(x31,x32,x33,x34),(,),(,)(x41,x42,x43,x44),(,),(,)(x11,x21,x31,x41),(,),(,)(x12,x22,x32,x42),(,),(,)(x13,x23,x33,x43),(,),(,)(x14,x24,x34,x44),(,),(,)有边取1,无边取0。y12,y21,y14,y41,y23,y32,y24,y42,y34,y43。两点之间一定要有边。(,yjk), 1j,k4。(,yjk), 1j,k4。(,yjk), 1j,k4。(,yjk), 1j,k4。多项式变换定义: 1=;2= 变换f:1*2*,IL1,f(I)L2,1(I)=2(f(I) f变换可以在p(|I|=n)时间内计算完成。则f称为由1到2的多项式规约。若1可以多项式归约到2,则若2存在多项式算法,则1也有多项式算法。前面的多项式规约进一步修改如下: 1=;2= 变换f:1*2*,IL1,f(I)L2,1(I)=12(f(I)=1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1