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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(算法分析与设计2009第a讲.doc)为本站会员(scg750829)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

算法分析与设计2009第a讲.doc

1、上次内容:(1)先行约束排工,限制很强时是多项式可解的,没有限制是 NP-Complete。(2)着色问题,限制顶点度不超过 4 的图 3 着色问题是 NPC,限制平面图的 3 着色问题是 NPC。(3)拟多项式变换与 NPC 类,划分问题的拟多项式算法。划分问题拟多项式时间算法。一个问题实例中有两个因素影响算法时间复杂度:划分问题。输入长度:Length(I)=|A|log2|A|+|A|log2( )AaiiS最大数值:问题的实例中碰到的最大数值。Max(I)=B= AaiiS)(算法时间复杂性:O(nB )=P(Length(I),Max(I)说明:可以设计算法与两个参数有关系。 一个问

2、题的编码不是完全相同的,因此输入长度和最大数值会根据编码不同有所不同。不同人编不同的程序。 有的问题根本不含有数值参量,这样 MAX(I)=0。定义 6.1:拟多项式算法:判定问题,存在解答算法 A,算法 A 的时间复杂度为:T=P(Length (I), Max(I),I 为任意实例,则称算法 A为求解问题的拟多项式算法。看问题:问题怎样在计算机存储?首先明确输入长度为 n,则最大数值可能是 2n。(1)SAT,该问题中根本没有 MAX(I)这一项。没有最大数值,Max(I)=0(2)TSP,该问题中 边长或 K 是最大数值 MAX(I)项。(3)划分问题,元素重量或 B 是 Max(I)项

3、。O (nB)(4)团问题,最大数值,J |V|。自然受到限制。考虑(1),Max(I)=0,这个问题是 NPC 的,可以认为,最大数值本身受到输入长度的限制。Max(I)P(Length(I),P ()是多项式函数。考虑问题(2)(3),TSP 问题中,边长根本不受输入长度的约束 ,每条边长可能很大,问题 3 的元素重量也不受到输入长度约束。受约束的含义:存在多项式函数 P(),使 Max(I)P(Length(I)。将 Max(I)不受 Length(I)约束的问题单独分为一类,给个名份。定义 6.2:对于判定问题,若不存在多项式函数 P(),使对所有实例 I 有:Max (I)P(Len

4、gth(I),则称 为数问题。最大数值不受约束。就是最大数值可能很大的问题是数问题。不受输入长度约束。命题 6.1:若判定问题不是数问题,P NP,则该问题不能被拟多项式算法解答。解释什么问题不是数问题。证明:设不是数问题,T= q(Length(I), Max(I) q(length(I), p(length(I)=q1(length(I)。若存在解答的拟多项式算法,则有多项式算法解答,则 P=NP,矛盾。问题,多项式函数 P(),D( )表示该问题的所有实例组成的集合。对于多项式函数 P(),定义一个新的实例集合:D( P) = I|ID, Max(I)P(Length(I),由 D(P)

5、中实例表达的问题就是多项式可解的吗。注意多项式函数给定。例如划分问题中,每个元素长度 S(a)n2,n 是元素个数。P(n)=n 2,则 P 是多项式可解得。再次强调问题是实例的集合! ID() ID(P) 定义 6.3:判定问题,存在多项式函数 P,使 P 是 NPC 的,则称 是强 NPC 的。(1)非数 NPC 问题一定是强 NPC 问题(2)主要讨论数问题是否为强 NPC 问题命题 6.2:若问题是强 NPC 的,PNP,则一定不能被拟多项式算法解答。强 NPC 问题不能有拟多项式算法,否则 NPC 问题就可以多项式解答了。受限子问题是 NPC 的,能被多项式时间算法解答,则任意 NP

6、 问题都能被多项式时间算法解答。6.2 证明强 NPC 与拟多项式变换先证明货郎问题是强 NPC 的。限制货郎问题的边长不是很大,也是 NPC。结论:限制边长为 1 或 2 的 TSP 问题是 NPC 的。HCTSPHC 实例为: a e d c b a e d c b 1 1 1 1 1 1 1 2 2 1 将该实例变为货郎问题实例如下:d(a,b)=d(a,c)=d(a,d)=d(a,e)=d(b,c)=d(c,d)=d(c,e)=d(d,e)=1,d(b,d)= d(b,e)=2常数 K=5显然,若 HC 实例存在 hamilton 回路,则相应 TSP 实例存在不超过K 的旅游,若 T

7、SP 实例存在不超过 K 的旅游,则 HC 实例存在hamilton 回路。每条边的长度不超过 2,可以认为 Max(I)=2。满足下式否?Max(I)Length(I),满足这种限制的 TSP 仍然是 NPC 的。所以 TSP问题是强 NPC 的。对于一个 NPC 问题,如果你能说明其受限子问题是 NPC 的,则就说明这个问题是强 NPC 的。先讲一个问题,3 划分问题实例:讲清楚,但不证明。(1)集合 A,含有 3m 个元素,A=a 1,a2,a3m,(2)S(ai)Z+,(3)存在正整数 BZ+,满足:B/4 S(ai)B/2,(4) Aaii)(询问:是否存在 A 的划分:A =S1S

8、2Sm,即将 A 划分为 m 个子集,使 =B。iSa)(简单解释:*三划分不是划分为三份。(1)划分的每个子集中肯定是 3 个元素。因为:B /4S(ai)B/2。(2)每个集合中 3 个元素,就是 3 划分的含义。有很多东西,我们不讲了,4 划分是强 NPC,3 划分也是强 NPC。说明:不要看书上有很复杂的符号,很多内容,看懂也应该比较简单。下面先定义什么是拟多项式变换:定义 6.4:(1)判定问题 1 和 2,实例集合分别为: D1,D 2,(2)回答 yes 的实例集合为: Y1 和 Y2(3)两个问题的实例编码后分别有:Length( I),Max (I),Lengthf( I),

9、Maxf(I)。(4)存在一个变换 f:D 1D2,满足:(a)对任意实例 ID1,计算 f(I)的时间复杂度是 Length(I)和 Max(I)的多项式函数。T( f(I)=P(Max(I),Length(I)。(b)对 ID1,IY 1 当且仅当 f(I)Y2(c)存在多项式函数 p1()使对 ID1 有LengthIp1(Lengthf(I),这个限制很有用, I 的长度不能很大。仔细研究研究的话,估计这个条件可以去掉。一般越变越长,不会变短。推导的一步需要这个条件。Lengthf(I)p2(LengthI, MaxI),这个由前面就能得到。(d)存在两个变量的多项式函数 q1,使Ma

10、xf(I)q1(MaxI,LengthI)则 f 称为 1 到 2 的拟多项式变换。变换与数值和长度都有关。说明:如果数值参量受到输入长度限制,就是多项式时间变换。 条件(a)(b) 是拟多项式变换的基本要求,变换计算时间复杂度要求更宽一些。 (c)需要这个条件 (d)要求 Max(*)不能增大到超过 Max(*)和 Length(*)的界定范围。拟多项式变换 P引理 6.1:是强 NPC, 是 NP 问题,存在一个 到 的拟多项式变换,则判定问题 也是强 NPC 的。证明:将 和 中的最大数值都限定受输入长度的多项式限制,则受 P 限制的 是 NPC 问题,存在的拟多项式变换就是多项式变换

11、Pq,所以受 q()限制的 q 是 NPC 的,所以不受限制的 是强 NPC 的。 P q 区间排工问题:实例:有限任务集合,T=t 1,t2,tn,只有一台机器。r(tk):最早起始时间d(tk):最晚结束时间L(tk):加工长度询问:是否存在排工表: (tk),k=1,2,n,使d(tk)-L(tk)(tk)r(tk),每个任务都能按时完成。任意 ti, tj,ij,|( ti)-(tj)|maxL(ti),L(tj)定理 6.3:区间排工是强 NPC。证明:三划分 P 区间排工。三划分的实例:A=a 1,a2,a3,a3m,S(a i)Z+,BZ +。由此构造区间排工实例:T=At1,

12、t2, , tm-1L(ai)=S(ai),i=1,3mL(t1) = L(t2) = = L(tm-1) = 1+ =mB+m-131(miiLa1(iitr(ai)=0,i=1,3md(ai)=mB+m-1r(ti)=iB+i-1,i=1, , m-1;d(t i) = iB+i, i = 1, , m-1说明:=mB+m-1,所以从 0 开始,总用时间是 mB+m-1311()()miiiLat t1 t2 t3 tm-1 B +1 2B+1 2B+2 3B+2 3B+3 (m-1)B+m-2 mB+-1 B B B B (1)变换可以在三划分实例输入长度的多项式时间内完成。(2)若三划

13、分实例回答 yes,则变换后的区间排工实例也回答 yes,若区间排工实例回答 yes,则相应三划分实例一定有一个三划分。(3)条件( c)几乎总是满足。(4)最大数值变化不大。符合条件(d) 。三划分中的最大数值为 B,区间排工的最大数值为:mB+ m-1,当然是 B 的多项式函数。所以区间排工是强 NPC。就是说区间排工中的数值 r(),d(),L()都不必很大,问题就很难解。子林同构实例:图 G 和 H,G 为树,H 为林。询问:图 G 是否包含一个子图与 H 同构。限制 G 和 H 都是树,则该问题是多项式时间可解的。限制 G 为树,H 为林,则该问题是强 NPC。首先判定两个图是否完全

14、同构也是多项式时间可解的。子林同构问题根本就没有数值参量,所谓强 NPC 与 NPC 等价的。这个例子的意义在于说明可以用证明强 NPC 的方法证明 NPC。定理 6.4:子林同构问题是强 NPC。证明:三划分拟多项式变换到子林同构。A=a1,a2,a3m,S(a i), BZ+构造 G 和 H 如下:B+1 个点。GH 构造为:(1)(2)aiS(ai)个点的线: S(ai)个点的线。首先说明若三划分回答 yes,则显然可以将对应的 H 的线图接起来对到 G 上去。另外若 H 中的线图接到星图上形成完全 G 的形状,则接到每一条线上去的线段的总长均为 B,所以原来的三划分问题一定可以三划分。

15、(3)变换的时间复杂度与 B 有关,变换出来的树的点的个数与 B 有关。主要说明: 限制 B 不大时,即为输入长度的多项式函数时,三划分问题是NPC 的, 变换本身是输入长度和最大数值的多项式函数,所以是多项式变换 所以子林同构是 NPC 的。 子林同构中根本没有数值参量,当然是强 NPC 的。6.3:复杂性类之间的关系很多问题不是 NP 的,所以不是 NPC 的,但是比 NPC 问题更难,这样的问题怎样说明难度。Hamilton 问题补问题:实例:无向简单图 G=(V,E)询问:图 G 没有 hamilton 回路吗?这个问题不能确定是多项式时间可验证的,不能确定是 NP 的,所以不能说是

16、NPC 的。这个问题能够正确回答,则 hamilton 回路问题也能正确回答。Tsp 优化问题:实例:城市集合 C = C1,Cm,城市之间距离 d(Ci,Cj),询问:求城市排列: , , , 使*2*=min |C1C2Cm 为城市排列miiCd1*1),(miid1),(这个问题也不是 NP 的,所以不是 NPC 的。这个问题能够正确回答,货郎判定问题也能正确回答。在问题中要找一个解的问题称为搜索问题。多项式规约,本身就说明一件事,若 2能多项式时间正确解答,则1也能多项式时间正确解答。所以有 turing 规约的概念:turing 规约是用神喻图灵机定义的,那是为了严格,这里就不再讲神

17、喻图灵机了。讲一下直观的定义:条件:(1)1 是一个搜索问题, 2 是一个搜索问题 。(2)可以设计一个求解 1 的算法,算法中调用求解 2 的算法 A(2)。(3)若 A(2)的时间复杂度记为 O(1),则求解 1 的算法是多项式时间复杂度。若有上述条件(1)(2)(3),则称 1 图灵规约到 2。首先多项式变换也是图灵规约!图灵归约不局限于 NP 问题之间,任意搜索问题都行。解释:(1)什么是搜索问题,搜索最优解的问题。(2)上述说法不严格,但是道理是这样的。举例,*若 1 是 NPC 问题, 1 可以图灵规约到 2,则称 2 是 NP-hard 问题。这个定义说明所有 NPC 问题都是 NP-Hard 问题。还有一些问题不是 NPC 的,仍然是 NP-Hard 问题。*若 1 是 NP-Hard 问题, 1 可以图灵规约到 2,则称 2 是 NP-hard 问题。举个例子:假设有一个货郎优化问题的算法为 A设计货郎判定问题求解算法如下:假设货郎判定问题的实例为G,d,K1 调用算法 A(G,d)求得最优解,设得到的最短旅游长度为 OPT(G,d).2 若 OPT(G,d)K,则回答 yes,否则回答 no。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报