- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划法 -算法设计与分析
动态规划法的实质也是将较大问题分解为较小的同类子问题,这一点上它与分治法和贪心法类似。但动态规划法有自己的特点。分治法的子问题相互独立,相同的子问题被重复计算,动态规划法解决这种子问题重叠现象。贪心法要求针对问题设计最优量度标准,但这在很多情况下并不容易。动态规划法利用最优子结构,自底向上从子问题的最优解逐步构造出整个问题的最优解,动态规划则可以处理不具备贪心准则的问题。 7.1.1 一般方法 7.1.2 基本要素 7.1.3? 多段图问题 2. 向前处理策略求解 设 P(i,j)是一条从Vi中的结点j到汇点t的最小成本路径, cost(i,j)是这条路径的成本。 1) 向前递推式 cost(k,t)=0 2) 递推过程 ★ 第k-1段 c(j,t) j,t∈E COST(k-1,j) = ∞ ★各递推结果 第4段 COST(4,9) = c(9,12) = 4 COST(4,10) = c(10,12) = 2 COST(4,11) = c(11,12) = 5 第3段 COST(3,6) = min{6+COST(4,9),5+COST(4,10)} = 7 COST(3,7) = min{4+COST(4,9),3+COST(4,10)} = 5 COST(3,8) = min{5+COST(4,10),6+COST(4,11)} = 7 第2段 COST(2,2) = min{4+COST(3,6) , 2+COST(3,7), 1+COST(3,8)} = 7 COST(2,3) = 9 COST(2,4) = 18 COST(2,5) = 15 第1段 COST(1,1) = min{9+COST(2,2),7+COST(2,3), 3+COST(2,4),2+COST(2,5)} = 16 S到t的最小成本路径的成本 = 16 ★ 最小成本路径的求取 记 d(i,j)=每一cost(i,j)的决策 即,使c(j,p)+cost(i+1,p)取得最小值的p值。 例:d(3,6)=10, d(3,7)=10 ,d(3,8)=10 d(2,2)=7, d(2,3)=6, d(2,4)=8, d(2,5)=8 d(1,1)=2 根据d(1,1)的决策值向后递推求取最小成本路径: ● v2=d(1,1)=2 ● v3=d(2,d(1,1))=7 ● v4=d(3,d(2,d(1,1)))=d(3,7)=10 故由s到t的最小成本路径是:1→2→7→10→12 3) 算法描述 ★ 结点的编号规则 源点s编号为0,然后依次对V2、V3…Vk-1中的结点编号,汇点t编号为n-1。 目的:使对cost和d的计算仅按n-1,n-2,…,1的次序计算即可,无需考虑标示结点所在段的第一个下标。 ★ 算法描述 算法的时间复杂度 若G采用邻接表表示,总计算时间为: 3. 向后处理策略求解 设 BP(i,j)是一条从源点s到Vi中的结点j的最小成本路径,BCOST(i,j)是这条路径的成本。 1) 向后递推式 BCO
文档评论(0)