- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)