8.2.24 多项式时间算法策略求解思路.pptVIP

  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文档。上传文档
查看更多
8.2.24 多项式时间算法策略求解思路

* 8.2 图问题中的流塑法 8.2.24 多项式时间算法策略求解思路 多项式时间算法策略求解思路 :它的每一个内部结点对应一个形如x≤y的比较,如果关系成立,则控制转移到该结点的左子树,否则,控制转移到该结点的右子树,它的每一个叶子结点表示问题的一个结果。 在用判定树模型建立问题的时间下界时,通常忽略求解问题的所有算术运算,只考虑分支执行时的转移次数。 8.2.24 多项式时间算法策略求解思路 通常将存在多项式时间算法的问题看作是易解问题(Easy Problem),将需要指数时间算法解决的问题看作是难解问题(Hard Problem)。 如果一个问题П存在一个时间复杂性是O(nk)的算法,其中,n是问题规模,k是一个非负整数,则称问题П存在多项式时间算法。 例:易解问题——排序问题、查找问题、欧拉回路 难解问题——TSP问题、 Hanio问题、Hamilton回路 1.多项式函数与指数函数的增长率有本质的差别 2.计算机性能的提高对多项式时间算法和指数时间算法的影响不同 3.多项式时间复杂性忽略了系数,但不影响易解问题和难解问题的划分 4.多项式时间复杂性的闭包性 5.多项式时间复杂性的独立性 规模为n的原问题的解与较小规模(通常是n/2)的子问题的解之间具有关系: (1)原问题的解只存在于其中一个较小规模的子问题中; (2)原问题的解与其中一个较小规模的解之间存在某种对应关系。 由于原问题的解与较小规模的子问题的解之间存在这种关系,所以,只需求解其中一个较小规模的子问题就可以得到原问题的解。 * Page * 所以,通常来说,应用层治法处理问题的效率是很高的,一般是O(log2n)数量级。 只对一个子问题求解,并且不需要进行解的合并。应用层治法(例如层半法)得到的算法通常具有如下递推式: 对比分治法: * Page * 例:计算an的值,应用层治技术得到如下计算方法: 应用分治法得到an的计算方法是: O (log2n) O (nlog2n) ? ? ? í ì ′ = = - 且是奇数 且是偶数 1 ) ( 1 ) ( 1 2 2 ) 1 ( 2 2 n a a n a n a a n n n 2. 独立子问题:各子问题之间相互独立,这涉及到离治法的效率,如果各子问题不是独立的,则离治法需要重复地解公共的子问题。 1. 平衡子问题:最好使子问题的规模大致相同。也就是将一个问题划分成大小相等的k个子问题(通常k=2),这种使子问题规模大致相等的做法是出自一种平衡(Balancing)子问题的思想,它几乎总是比子问题规模不等的做法要好。 例:计算an,应用离治技术得到如下计算方法: 34 32 32 81 31 31 9 31 31 9 3 3 3 3 分解问题 求解每个子问题 合并子问题的解 不是所有的都比简单的更有效。 分析时 间性能 ? ? é ù ? í ì ′ = = 1 1 2 2 n a a n a a n n n 如果 如果 Hanio(3,A,B,C) Hanio(2,A,C,B) Hanio(1,A,B,C) Move (A,C) Move (A,B) Hanio(1,C,A,B) Hanio(1,A,B,C) Hanio(2,A,C,B) Move (C,B) Hanio(1,C,A,B) Move (A,C) Hanio(2,B,A,C) Hanio(1,B,C,A) Move (B,C) Hanio(1,A,B,C) Hanio(1,B,C,A) Move (A,C) Hanio(2,B,A,C) Move (B,A) Hanio(1,A,B,C) 结束 *

文档评论(0)

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

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

1亿VIP精品文档

相关文档