《动态规划算法.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法二:递推 procedure work; begin for i:=1 to n do f[n,i]:=a[n,i]; for i:=n-1 downto 1 do {枚举行} for j:=1 to i do {枚举每行的元素} f[i,j]:=max(f[i+1,j],f[i+1,j+1])+a[I,j];{枚举走法} writeln(f[1,1]); end; Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 小问题?(有奖问答) 如果我特殊的加入如若干条件,使得该路径必须经过某些点,此题该如何求解? Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 正确解答? Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 什么是动态规划——无后效性原则 【引例3】:Mod M最大问题 给你N个数你可以选或者不选,使得所有选出的数的总和除M取余数最大。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 什么是动态规划——无后效性原则 【样例输入】: 3 4 (N=3,M=4) 1 1 2 【样例输出】 3 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 分析 我们设F[i]表示前i个数选与不选所得到的最大Mod M的值。 F[i]=Max((F[i-1]+X[i]) Mod M,F[i-1]) 不过这显然是不对的!因为我们观察样例如果照此F[4]=2,而Mod 4最大显然该是3。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 分析 观察我们当前的一步决策会影响到下一步的选择,这显然产生了后效性。即我们没有最优的决策!如此状态下我们就不能使用常见的动态规划了。 而事实上我们可以加一维Mod M的值是否出现,然后写一个递推解决此问题。但它不是严格意义上的DP。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 什么是动态规划——总结 动态规划是解决一类满足:重叠子问题、最优子结构和无后效性原则的问题的一种算法(思路)。 一般我们用F[i]表示某个状态(i可能是多个值)的最优值,而一般动态规划方程会写作:F[i]=opt(F[k]+W[k,i])(k能转移到i)的形式。其中Opt表示对于一个状态的决策。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 什么是动态规划——总结 几个概念: 阶段:状态可以从前一个阶段转移到下一个阶段。 状态:对于一类子问题的某种描述 状态转移:从一个状态转移到另一个状态 决策:对于某个状态的每个转移都是一个决策。 值得注意的是一个DP可能没有阶段划分,但不能没有状态、状态转移和决策。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 什么是动态规划——总结 Evaluation only. Crea

文档评论(0)

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

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

1亿VIP精品文档

相关文档