网站大量收购独家精品文档,联系QQ:2885784924

算法分析第六章.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析第六章

第六章 动态规划 6.1 一般方法 最优化问题 动态规划--多阶段决策问题的通用方法 有这样一类问题, 它们的活动过程可分为若干个阶段, 在任一阶段i后的行为都依赖于i 阶段的过程状态,而与i 阶段之前的过程如何达到这种状态的方式无关, 这样的过程就构成了一个多阶段决策过程。 每一阶段都有多种可供选择的决策,必须从中选取一种。一旦各个阶段的决策选定之后,就构成了一个决策序列。决策序列不同会导致问题结果也不同。 目标是选取一个会获得问题最优解的决策序列,即最优决策序列。 6.1 一般方法 20世纪50年代,美国数学家Richard Bellman提出,利用最优性原理及得到的递推关系式解决该类问题。 最优性原理(Principle of Optimality) 过程的最优决策序列具有如下性质: 无论过程的初始状态和初始决策是什么, 其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。 如果对于所求解的问题最优性原理成立, 则说明用动态规划方法有可能解决该问题。而解决问题的关键在于获取各阶段间的递推关系式。 6.1 一般方法 动态规划适用条件 最优性原理(最优子结构性质) 无后向性(无后效性) 子问题的重叠性 6.1 一般方法 应用 1956年,庞特里雅金提出了最优控制的极大值原理,1957年贝尔曼创立了动态规划方法,非线性和时变系统的设计问题。 1969,1971年,Merton最早将动态规划方法运用到最优投资与消费问题的求解,以后的许多学者都运用了此方法。 1982年,曾赛星、李寿声采用动态规划方法确定内蒙古河套灌区各种作物的灌水定额及灌水次数。 1988年黄强把模糊动态规划方法用于求解水电站水库长期优化调度问题,较随机动态规划法简便,计算速度快。 1989年,曾赛星、李寿声等针对内蒙古河套灌区永联试区的具体情况,运用大系统分解协调方法建立了灌区优化灌溉制度及地面水、地下水联合运用的谱系模型,模型中第一层子系统优化采用动态规划方法确定各种作物的灌溉制度。 1991年,林学钛等人在对河南平顶山市地表水与地下水的联合管理研究中,运用动态规划方法对白龟山水库进行了优化调度。 6.1 一般方法 动态规划方法的一般步骤: 找出最优解的性质,刻画特征; 递归地定义最优值---递归关系式; 以自底向上的方式计算出最优值; 根据计算最优值时得到的信息,构造最优决策序列。 6.1 一般方法 例:0/1背包问题 背包问题中的xj限定只能取0或1值, 用KNAP(l, j, X)来表示这个问题 极大化 约束条件 xi= 0或1, 1?i?j 若对于有n个物品,容量为M的背包,则0/1背包问题就可表示为KNAP(1,n,M) 最优性原理对于0/1背包问题成立 设y1,y2,…,yn分别为x1,x2,…,xn的0/1值的最优序列。 若y1=0,则y2,y3,…,yn必须相对于KNAP(2,n,M)问题构成一个最优序列。如若不然,则y1,y2,…,yn就不是KNAP(1,n,M)的最优序列。 若y1=1,则y2,y3,…,yn必须是KNAP(2,n,M?w1)的最优序列。如若不然,则必有另一个0/1序列z2,z3,…,zn使得?wizi ?M? w1(2?i ?n)且?pizi ?piyi(2?i?n),序列y1,z2, z3,…,zn是一个对问题KNAP(1,n,M)具有更大效益值的序列,这与假设相矛盾。 所以0/1背包问题的最优性原理成立。 6.1 一般方法 无论向前处理法还是向后处理法,都将所有子问题的最优解保存下来,便于逐步递推得到原问题的最优解并避免重复计算。 在递推求解过程中,对包含次优子序列的决策序列不予考虑,因此节省了计算量。 6.2 多段图 向前处理法: 从最后阶段开始, 逐步向前递推, 根据xi+1, … xn的那些最优决策子序列来求取xi 决策值的关系式。 P(i, j)是一条从Vi中的节点j 到汇点t 的最小成本路径, COST(i, j)表示这条路径的成本。 6.2 多段图 k段图中, 对于k?1段, 若j,t?E, 有COST(k?1, j)= c(j, t), 所以可以通过公式6.5, 对所有j?Vk-2, 计算COST(k?2, j), 再对所有的j?Vk?3, 计算COST(k?3, j), 依次向前求解, 最后计算出COST(1, s). 应用—资源分配(n个资源分配给r个项目) N(i,j):将j个资源分配给项目i时获得的净利,1? j?n 用r+1段图表示该问题; 第1段和第r+1段分别只包含一个结点,第2段至第r段分别包含n+1个结点; V(i,j):第i段的结点,2?i?r;表示将j个资源分配

文档评论(0)

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

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

1亿VIP精品文档

相关文档