算法分析与设计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文档。上传文档
查看更多
算法分析与设计b讲

第B讲 第 PAGE 13页 上次内容: (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)

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

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

1亿VIP精品文档

相关文档