算法设计与分析6章 动态规范算法.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈密尔顿回路:(环球旅行问题)即从一个结点出发,经过所有结点回到出发点(结点不能重复经过)。 设v1,v2,……..,vn是已知的n个城镇,城镇vi到城镇vj的距离为dij,现求从v1出发,经各城镇一次且仅一次返回v1的最短路程。 问题描述: 解决方案: 1.穷举法? 2.动态规划? 设S表示从v1到vi中间所可能经过的城市集合,S实际上是包含除v1和vi两个点之外的其余点的集合,但S中的点的个数要随阶段数改变。 阶段: S中的点的个数 建立动态规划模型: 状态变量(i,S)表示:从v1点出发,经过S集合中所有点一次最后到达vi。 最优指标函数fk(i,S)为从v1出发,经过S集合中所有点一次最后到达vi。 决策变量Pk(i,S)表示:从v1经k个中间城镇的S集合到vi城镇的最短路线上邻接vi的前一个城镇,则动态规划的顺序递推关系为: 建立动态规划模型: fk(i,S)= min{ fk-1(j,S、{ j }+dji} j属于S f0(i,空集)=d1i (k=1,2,…,n-1, i=2,3,…n) 例12 已知4个城市间距离如下表,求从v1出 发,经其余城市一次且仅一次最后返回v1的最短路径和距离。 Vj 距离 Vi 1 2 3 4 1 0 6 7 9 2 8 0 9 7 3 5 8 0 8 4 6 5 5 0 解:K=0 由边界条件(7.21b)知: f0(2,空集)=d12=6 f0(3,空集)=d13=7 f0(4,空集)=d14=9 当k=1时: 从城市V1出发,经过1个城镇到达Vi的最短距离为: f1(2,{ 3 }) = f0 (3, 空)+d 32 =7+8=15 f1(2,{ 4 }) = f0 (4, 空)+d 42 =9+8=14 f1(3,{ 2 }) = f0 (2, 空)+d 23 =6+9=15 f1(3,{ 4 }) = f0 (4, 空)+d 43 =9+5=14 f1(4,{ 2 }) = f0 (2, 空)+d 24 =6+7=13 f1(4,{ 3 }) = f0 (3, 空)+d 34 =7+8=15 例12 已知4个城市间距离如下表,求从v1出发,经其余城市一次且仅一次最后返回v1的最短路径和距离。 Vj 距离 Vi 1 2 3 4 1 0 6 7 9 2 8 0 9 7 3 5 8 0 8 4 6 5 5 0 当k=2时, 从城市V1出发,中间经过2个城镇到达Vi的最短距离. f2(2,{ 3,4 }) = min[ f1(3,{4})+d 32, f1(4,{3})+ d42 ] =min[14+8,15+5]=20 P2(2,{3,4})=4 f2(3,{ 2,4 })= min[14+9,13+5]=18 P2(3,{2,4})=4 f2(4,{ 2,3 })= min[15+7,15+8]=22 P2(4,{2,3})=2 当k=3时: 从城市V1出发,中间经过3个城镇最终回到Vi的最短距离. f3(1,{ 2,3, 4 })= min[f2(2,{ 3,4 }) + d 21, f2(3,{ 2,4 })+ d 31, f2(4,{ 2,3 }) + d 41 ] =min[20+8,18+5,22+6]=23 P3(1,{2,3,4})=3 逆推回去,货郎的最短路线是1?2?4?3?1, 最短距离为23. 货郎担问题当城市数目增加时,用动态规划方法求解,无论是计算量还是存储量都会大大增加,所以本方法只适用于n较小的情况. 在很多货郎担问题中,经

文档评论(0)

317960162 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档