算法分析与设计2007第b讲.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析与设计2007第b讲.doc

上次内容: (1)什么是拟多项式算法PESEUDO polynomial,在考虑问题实例描述的两个参数,Max[I],Length[I]。 (2)什么是拟多项式变换,什么是数问题。 (3)什么是强NPC问题,限制数不很大时也很难解。数值参量受限时亦为NPC的。 (4)什么是NP-hard问题。Turing规约。神喻图灵机。 (5)NPC问题对应的优化形式都是NP-hard问题。 很多问题具有与NPC问题同样的复杂度,但不是NP问题,用图灵规约,可以把这些问题统一起来。 图灵归约:(1((2,要说明若(2有多项式时间求解算法,则(1也有多项式时间求解算法。设求解(2的算法为A2。有一个将(1实例转换为(2实例的变换f:I(f(I)。 设计求解(1的算法A1(I),其中调用A2(f(I)), (1)若A2(*)能求得满足条件的解,则A1(*)求得的解也满足条件。 (2)若A2(*)时间复杂度为O(1),则A1(*)时间复杂度是多项式时间复杂度。 实际可以假设A2(f(I))的计算不需要时间。 这样就叫(1图灵归约到(2,图灵规约是多项式变换的推广。 若(1能图灵规约到(2,则(2就不必(1容易。 仔细解释, 难:不存在多项式算法 易:存在多项式算法 若(1 (T (2 则(1 难(2也难,(2易(1也易,(1 易(2难易均可能。 NP-Hard的定义: 一个问题是NPC的,则该问题推广称为NP-hard问题, 若(1是NP-hard问题,(1可以图灵归约到(2,则(2也是NP-hard问题。 TSP优化问题: 实例:城市集合C={C1,…,Cm},城市之间距离d(Ci,Cj), 询问:求城市排列:,,…,,使=min{|C(1C(2…C(m为城市排列} 定理:TSP优化问题是NP-hard。 证明:TSP判定问题图灵归约到TSP优化问题。TSP判定问题是NPC,所以是NP-Hard。 设存在TSP优化问题求解算法A,设计tsp判定问题的算法如下: 1对于给定TSP判定问题的给定实例:G,d,K,调用A(G, d),求得城市排列:, 2若(K,则回答yes,否则回答No。 若A是多项式算法,则上述算法能够在多项式时间解答。 所以TSP优化问题是NP-hard问题。 货郎延伸问题 实例: (1)城市集合C={C1,C2,…,Cm}, (2)任意两个城市之间的距离d(Ci, Cj)(Z+, (3)正整数界值B(Z+, (4)C中K个城市的部分旅游(=C((1), C((2), …, C((k) 询问:能否将(延伸为一个长度不超过B的全程旅游回路: ( C((1), C((2), …, C((k), C((k+1), …, C((m), C((1)( 定理:货郎延伸问题是NP-hard。 证明:将货郎优化问题图灵归约到货郎延伸问题。 设计货郎判定算法如下:折半法。假设货郎延伸问题算法为: S[C, d, C1, Bmid] 1 Bmin=m; Bmax=m*max{d(ci,cj)}|ci,cj(C}//最大就这么大。 2若Bmax-Bmin=0,则B*=Bmin,暂停。 3 Bmid=((Bmin+Bmax)/2(; 4调用子程序:S[C, d, C1, Bmid], 若回答yes,则Bmax=Bmid转2,否则Bmin=Bmid,转2。 //最优解值为B*,最优解怎么求? S[C, d, C1, C2, B*], S[C, d, C1, C3, B*], … … …, S[C, d, C1, Cm, B*] 由此确定C((2) S[C, d, C1, C((2),C2, B*], S[C, d, C1, C((2), C3, B*], … … …, S[C, d, C1, C((2), Cm, B*] 由此确定C((3) 5 C((1)=C1, 6 for i=2 to m do for j=1 to m do 若Cj({C1,C((2),…,C((i-1)}且S[C,d,C1,C((2),…,C((i-1),Cj,B*]回答yes,则C((i)=Cj。 没有判定货郎延伸是否NP,但是已经将货郎判定问题图灵归约到货郎延伸。这样最后求得C1, C((2), …, C((i-1),…, C((m),为最优解。 还有第k个最大子集问题是NP-Hard,证明自己看。 第7章:近似算法和概率算法 只讲近似算法,不讲概率算法。搜索问题,就是求解,求满足条件的解,不再是判定问题了。 含义:虽然不能得到最优解,但能离最优解不远。达不到最好,力争更好。 §7.1:近似算法及其性能评估 符号:(,D(,I(D(,求解的目标是最大化或最小化的优化问题。 询问时要求解,按照解的格式,并满足解的条件。 S((I):可行解集,现在不求最优解了,只要符合解的

文档评论(0)

zhoujiahao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档