算法分析与设计-2016第10讲.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析与设计 第10讲-2016 山东大学计算机学院/软件学院 上次内容: (1)先行约束排工,限制很强时是多项式可解的, 没有限制是NP-Complete。NPC和多项式可解有分界线吗? 找了一个问题来说明,分界线无为有时有为无。 (2)着色问题,限制顶点度不超过4的图3着色问题是NPC, 限制平面图的3着色问题是NPC。 说明有些问题的子问题仍然为NPC,有意思,有意义。 (3)划分问题的拟多项式算法。划分问题拟多项式时间算法。 nlog2B 需要重新认识时间复杂度。 例如:B = 2n*n*n Length(I)=n4 O(nB)=O(n2n*n*n) (1)一个问题实例的编码不是完全相同的, 因此输入长度和最大数值会跟据编码不同有所不同。 不同人编不同的程序。 (2)有的问题根本不含有数值参量,这样MAX(I)=0。 定义6.1:拟多项式算法:判定问题?,存在解答算法A, 算法A的时间复杂度为:T=P(Length(I), Max(I)),I为?的任意实例, 则称算法A为求解问题?的拟多项式算法。 看问题:问题怎样在计算机存储?首先明确输入长度为n, 则最大数值可能是2p(n)。 在考虑算法时间复杂度时,往往忽略怎样编码的,其实编码也有学问。 问题:另外的NPC问题是否也有这么好的算法? (1)SAT,该问题中根本没有MAX(I)这一项。 没有最大数值,Max(I)=0 (2)TSP,该问题中边长,或界值K是最大数值Max(I)项。 Max(I)=K (3)划分问题,元素价值或B是Max(I)项。O(nB) (4)团问题,最大数值,J?|V|。自然受到限制。 考虑(1),Max(I)=0,这个问题是NPC的, 可以认为,最大数值本身受到输入长度的限制。(4)也这样。 Max(I)?P(Length(I)),P(?)是多项式函数。 考虑问题(2)(3),TSP问题中, 边长根本不受输入长度的约束,每条边长可能很大, 问题(3)的元素价值也不受到输入长度约束。 怎样区分(1)(4)/(2)(3) 什么叫不受约束:如果长度为x,则数值大小为2p(x)。 受约束的含义:存在多项式函数P(?),使Max(I)?P(Length(I))。 最大数值不会增大到超过输入长度的某个多项式函数的程度。 将Max(I)不受Length(I)约束的问题单独分为一类,给个命名。 定义6.2:对于判定问题?,若不存在多项式函数P(?), 使对问题?的所有实例I有:Max(I)?P(Length(I)), 则称?为数问题。 最大数值不受约束。 就是最大数值可能很大的问题是数问题。不受输入长度约束。 SAT和团问题不是数问题, 划分问题和货郎问题是数问题。 证明:设?不是数问题,反证:若存在拟多项式算法A, 解答问题实例I的时间复杂度为: T(I)= q(Length(I), Max(I))?q(Length(I), p(Length(I))) =q1(Length(I))。 其实算法A是多项式时间算法。 即:若存在解答?的拟多项式算法, 则该算法是多项式算法(解答?)。 则P=NP,矛盾。 问题?,多项式函数P(?), D(?)表示该问题的所有实例组成的集合。 对于多项式函数P(?),定义一个新的实例集合: D(?P) = {I|I?D(?) ,Max(I)?P(Length(I))}, 由D(?P)中实例表达的问题就是多项式可解的吗。 B?P(n) 命题6.1:若NPC类判定问题不是数问题,P?NP, 则该问题不能被拟多项式算法解答。 解释什么问题不是数问题。数值不会很大的问题。 Max(I))?q(Length(I)。不存在这样的q(?)。 每个D(?P)的实例都是D(?)的实例。所以?P是?的子问题。 注意多项式函数给定。 例如划分问题中,每个元素长度S(a)?n2,n是元素个数。 P(n)=n3,则?P是多项式可解的。 再次强调问题是实例的集合! 定义6.3:判定问题?,存在多项式函数P, 使?P是NPC的,则称?是强NPC的。 (1)非数NPC问题一定是强NPC问题, 对于非数问题,NPC与强NPC是等价的。 (2)主要讨论数问题是否为强NPC问题 ?P中的每个实例I,都满足:Max(I)?P(Length(I)) 命题6.2:若问题?是强NPC的,P?NP, 则?一定不能被拟多项式算法解答。 证明:若?有拟多项式算法A, 则证明A是解答?p的多项式算法。 TA(I)=q(Max(I),Length(I)) 因存在P(?),?P是NPC的。 那算法A解答?P的实例I1,Max(I1)?P(Length(I1) TA(I1)=q(Max(I1),L

文档评论(0)

新起点 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档