运筹学课程作业——动态规划算法的应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国地质大学研究生课程论文封面

课程名称运筹学

教师姓名王广民

研究生姓名谢盼盼

研究生学号120100887

研究生专业工商管理

所在院系经济管理学院

类别: A.博士 B.硕士 C.进修生

日期: 2010 年12 月25 日

评语

注:1、无评阅人签名成绩无效;

2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

动态规划算法的应用

摘要:从动态规划的基本概念入手,介绍了多阶段决策问题、阶段与状态、决策与策略等一些专有名词的定义;利用一些常见的实例阐述了动态规划在设计与实现时的多样性、模式性和技巧性等特点;最后通过一个具体问题的解决过程,可以看出动态规划是一个必不可少的有利工具。通过问题描述、样例分析、算法设计、问题实现、测试结果等几个步骤详细讨论了动态规划在应用中的实现过程和思考方法,体现出在应用中相应的实践指导意义。

关键词:动态规划;算法

1引言

动态规划(Dynamic Programming)是运筹学的一个分支,是求解决策过程(Decision Process)最优化的数学方法。20世纪50年代初美国数学家R.EBellman等人在研究多阶段决策过程(Multistep Decision Process)的优化问题时,提出了著名的最优化原理(Principle of Optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法—动态规划。

动态规划问世以来,在城市规划、经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如神经网络、生物有机体DNA的相似程度分析、最短路线、库存管理、资源分配、资产投资、证券交易、经营决策、企业生产物流控制、农业灌溉阅、施工计划安排、单一品种项目的生产批量问题、设备更新、最优化设计、学习方法、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。动态规划主要用于求解以时间划分阶段的动态过程的优化问题,而且一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。

2动态规划的基本概念

动态规划是算法设计的一种重要手段,在各行各业的程序设计中被应用得越来越普遍。因此,如何更深入地了解动态规划,从而更为有效地运用算法设计的这个有力武器,是一个值得深入研究的问题。首先来了解一些动态规划的基本概念:

(1)阶段与阶段变量

将所有问题的过程,按照时间或空间特征,划分成若干个相互联系的子问题,则每个子问题称为一个阶段。用来表示阶段的变量称为阶段变量。

(2)状态与状态变量

过程中各个阶段开始时所处的客观条件或位置称为状态。

动态规划的状态具有如下性质:当某阶段状态给定后,在这阶段以后过程的发展不受这阶段以前各段状态的影响。描述各阶段所处状态的变量成为状态变量。状态变量取值的集合称为状态集合。

(3)决策与决策变量

当各段状态取定后,就可以做出不同的决定和选择,从而确定下一阶段的状态,这种决定称为决策。表示决策的变量称为决策变量。决策变量可选择的范围称为允许决策集合。(4)状态转移

前阶段的状态和决策决定了下一阶段的状态,它们之间的关系称为状态转移。

(5)策略

由阶段K=1到阶段K=n的全部过程中,每个阶段所选择的决策构成一个决策序列,称之为一个策略。

(6)后部子过程与后部子策略

从K阶段某状态S k出发到终点的过程称为后部过程。后部子过程对应的后部子决策序列称为后部子策略。

(7)阶段指标

K阶段中,评价由状态S出发作出决策所产生的效果的数量指标称为阶段指标。

(8)指标函数与最优指标函数

评价由K阶段S状态出发到终点的后部子策略产生效果的数量指标,由于该指标由状态S和后部子策略所决定,所以称为指标函数,可以用它来评价和衡量所实现过程的优劣。由K阶段S状态出发,所有可能的后部子策略所产生的指标函数值中最优者称为最优指标函数。

3动态规划的设计与实现

有了动态规划的基本概念后,在实际中对其设计与实现时所体现的几种特性也是值得关注并具有指导意义的。

(1)动态规划的多样性

假设你想以最美观的方式布置花店的橱窗。现在你有F束不同品种的花束,同时你也有至少同样数量的花瓶被按顺序摆成一行。这些花瓶的位置固定于架子上,并从1至V顺序编号,V是花瓶的数目,从左至右排列,则最左边的是花瓶1,最右边的是花瓶V。花束可以移动,并且每束花用1至F间的整数唯一标识。标识花束的整数决定了花束在花瓶中的顺序,如果I

例如,假设一束杜鹃花的标识数为1,一束秋海棠的标识数为2,一束康乃馨的标识数为3,所有的花束在放入花瓶时必须保持其标识数的顺序,即:杜鹃花必须放在秋海棠左边的花瓶中,秋海棠必须放在康乃馨左边的花瓶中。如果花瓶的数目大于花束的数目。则多余的花瓶必须空置,且每个花瓶中只能放一束花。

每一个花瓶都具有各自的特点。因此,当各个花瓶中放入不同的花束时,会产生不同的美学效果,并以美学值(一个整数)来表示,空置花瓶的美学值为零。

在上述例子中,花瓶与花束的不同搭配所具有的美学值,如表1.1所示。

根据上表,杜鹃花放在花瓶2中,会显得非常好看;但若放在花瓶4中则显得十分难看。

为取得最佳美学效果,你必须在保持花束顺序的前提下,使花束的摆放取得最大的美学值。如果有不止一种的摆放方式具有最大的美学值,则其中任何一直摆放方式都可以接受,但你只要输出任意一种摆放方式。

这虽然是较为简单的一个问题,但其中大有文章可作。说它简单,是因为它有序,因此一眼便可看出这个问题应该用动态规划来解决。但是,如何动态规划呢?如何划分阶段,又如何选择状态呢?

〈方法1〉以花束的数目来划分阶段。在这里,阶段变量k表示的就是要布置的花束数目(前k束花),状态变量S k表示第k束花所在的花瓶。而对于每一个状态S k,决策就是第k-1束花应该放在哪个花瓶,用u k表示。最优指标函数丘(S k)表示前k束花,其中第k束插在第S k个花瓶中,所能取得的最大美学值。

状态转移方程为S k-1 = u k

规划方程为f k(S k)= max(f k-1(u k)+A(k, S k))

k≤u k< S k

相关文档
最新文档