动态规划多阶段决策问题的求解方法.docxVIP

动态规划多阶段决策问题的求解方法.docx

  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文档。上传文档
查看更多
动态规划 _多阶段决策问题的求解方法 构造状态网络 ; : 一: 解决多阶段决策最优化的过程为动态规划方法在程序设 计中,有一类活动的过程,由于它的特殊性,可将过程 2. 根据状态转移关系和状态转移方程建立最优值的 分成若干个互相联系的阶段,在它的每一阶段都需要做 出决策,从而 3. 按阶段的先后次序计算每个状态的最优值。 使整个过程达到最好 的活动效果。因此各个阶段决策的选取不能任 逆向思维法是指从问题目标状态出 发倒推回初始意确定,它依赖于当前面临的状态,又影响以后的发展。当各个阶段 态的思维方法。动态规划的逆向思维法的要点可归纳为以决策确定后,就组成一个 决策序列,因而也就确定了整个过程的一条 1. 分析最优值的结构,刻画其结构特 征 ; 活动路线。这种把一个问题看作是一个前后关联具有链状结构的多 2. 递归地 定义最优值 ; 阶段过程就称为多阶段决策过程,这种问题称为多阶段决策问题。 3. 按自底向上或自顶向下记忆化的方式计算最优 在多阶段决策问题中,各个阶段采 取的决策,一般来说是与时间 有关 的,决策依赖于当前状态,又随即引起状态的转移,一个决策序 列 如果原问 题可以分解成几个本质相同、规模较小的就是在变化的状态中产生出来的,故有 动态 的含义,我们称这种 就会联想到从逆向思维的角度寻求问题的解决。一般 解决多阶段决策最优化的过程为动态规划方法。策问题多采用动态规划逆向思维方 法解决。 二、举 : 二: 动态规划最优化原理 pascal 语例说明 本文以信息学奥赛用 语言——最优化原理是动态规划的基础。任何一个问题,如果失去了这 言为编程 个最优化原理的支持,就不可能用动态规划方法计算。这个“最优化 说明,其他编程语言编写方法相同,语句类似。原理”如果用数学化一点的语言来描述的话, 就是 : 假设为了解决某 : 一: 问题描述 一优化问题,需要依次作出 n 个决策 D1, D2, ,Dn,如若这个决策 设有 N 个不相同的整数组成的数列,记为 : 序列是最优的,对于任何一个整数 k ,1 k n ,不论前面 k 个决策是 怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即 () 且?? a1 a2 an aiajij 以后的决策 Dk+1, Dk+2, ,Dn 也是最优的。作为整个过程的 最优 例如 3 ,18,7,14,10, 12,23,41, 16,24 策略具有这样的性质 : 即无论 过去的状态和决策如何,对以前的决策 若存在 i1i2 ie 且有 称为长度 序列。如上例中 3,18,23,24 就是一个长度为 4 的不下 也有 3 , 7, 10,12,16,24 长度为 6 的不下降序列。程序  ai1ai2 aie  则 (1) 若  an-1an  则存在长度为  2  的不下降序列  an-1  ,an  。  begin [] k:=j;l:=aj,2; (2)  若  an-1an  则存在长度为  1  的不下降序列  an-1  或 an  。 end; 3(  一般若从  ai  开始,此时最长不下降序列应该按下列方法求出  : if l0 then  在  ai+1  , ai+2 ,  an  中,找出一个比  ai  大的且最长的不下降序 begin  ,作为它的后继。  4( 为算法上的需要,定义一个数组  : []ai,2:=l+1; []a:array1..n,1..3of integer; []ai,3:=k; [][] ai,1  表示  aiend []ai,2  表示 从  i  位置到达  n  的最长不下降序列长度  end; []ai,3  表示从  i  位置开始最长不 下降序列的下一个位置  []amax:=a1,2; 初始化 :for i:=1 to n do l:=1; ([])[][]begin readai,1;ai,2:=1;ai,3=0 for j:=2 to n-1 do end; []if ai,2amax then 下面给出求最长不下降序列的算法 :begin for i:=n-1 downto 1 do []amax:=ai,2; begin l:=i; end; l:=1;k:=0; ()writelnamax:3; for j:=i+1 to n do while l0 do [][][][] if aj,1ai,1and aj,2l then begin k:=j;l:=aj,2end; begin if l0 then ([])write al,1:3; begin []l:=al,3; []ai,2:=l+

文档评论(0)

153****8736 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档