数学建模案例分析--最优化方法建模6动态规划模型举例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§6 动态规划模型举例
以上讨论的优化问题属于静态的,即不必考虑时间的变化,建立的模型——线性规划、非线性规划、整数规划等,都属于静态规划。多阶段决策属于动态优化问题,即在每个阶段(通常以时间或空间为标志)根据过程的演变情况确定一个决策,使全过程的某个指标达到最优。例如:
(1)化工生产过程中包含一系列的过程设备,如反应器、蒸馏塔、吸收器等,前一设备的输出为后一设备的输入。因此,应该如何控制生产过程中各个设备的输入和输出,使总产量最大。
(2)发射一枚导弹去击中运动的目标,由于目标的行动是不断改变的,因此应当如何根据目标运动的情况,不断地决定导弹飞行的方向和速度,使之最快地命中目标。
(3)汽车刚买来时故障少、耗油低,出车时间长,处理价值和经济效益高。随着使用时间的增加则变得故障多,油耗高,维修费用增加,经济效益差。使用时间俞长,处理价值也俞低。另外,每次更新都要付出更新费用。因此,应当如何决定它每年的使用时间,使总的效益最佳。
动态规划模型是解决这类问题的有力工具,下面介绍相关的基本概念及其数学描述。
(1)阶段 整个问题的解决可分为若干个相互联系的阶段依次进行。通常按时间或空间划分阶段,描述阶段的变量称为阶段变量,记为k 。
(2)状态 状态表示每个阶段开始时所处的自然状况或客观条件,它描述了研究过程的状况。各阶段的状态通常用状态变量描述。常用k x 表示第k 阶段的状态变量。n 个阶段的决策过程有1+n 个状态。用动态规划方法解决多阶段决策问题时,要求整个过程具有无后效性。即:如果某阶段的状态给定,则此阶段以后过程的发展不受以前状态的影响,未来状态只依赖于当前状态。
(3)决策 某一阶段的状态确定后,可以作出各种选择从而演变到下一阶段某一状态,这种选择手段称为决策。描述决策的变量称为决策变量。决策变量限制的取值范围称为允许决策集合。用)(k k x u 表示第k 阶段处于状态k x 时的决策变量,它是k x 的函数,用)(k k x D 表示k x 的允许决策集合。
(4)策略 一个由每个阶段的决策按顺序排列组成的集合称为策略。由第k 阶段的状态k x 开始到终止状态的后部子过程的策略记为)}(,),(),({)(11n n k k k k k k x u x u x u x p Λ++=。在实际问题中,可供选择的策略有一定范围,称为允许策略集合。其中达到最优效果的策略称为最优策略。
(5)状态转移方程 如果第k 个阶段状态变量为k x ,作出的决策为k u ,那么第1+k 阶段的状态变量1+k x 也被完全确定。用状态转移方程表示这种演变规律,写作(1k k T x =+k x ,)k u
(6)最优值函数 指标函数是系统执行某一策略所产生结果的数量表示,是用来衡量策略优劣的数量指标,它定义在全过程和所有后部子过程上。指标函数的最优值称为最优值函数。 下面的方程在动态规划逆序求解中起着本质的作用。
⎪⎩⎪⎨⎧-===+=+++++∈1,,1,),,(,0)()],())(,([min )(11
111)(Λn n k u x T x x f x f x u x v x f k k k k n n k k k k k k x D u k k k k k
称此为动态规划逆序求解的基本方程(贝尔曼方程)。
可以把建立动态规划模型归纳成以下几个步骤:
(1)将问题恰当地划分为若干个阶段;
(2)正确选择状态变量,使它既能描述过程的演变,又满足无后效性;
(3)规定决策变量,确定每个阶段的允许决策集合;
(4)写出状态转移方程;
(5)确定各阶段各种决策的阶段指标,列出计算各阶段最优后部策略指标的基本方程。
下面结合具体例子阐述建立动态规划模型的思路。 例13 生产计划问题。公司要对某产品制定n 周的生产计划,产品每周的需求量、生产和贮存费用、生产能力的限制、初始库存量等都是已知的,试在满足需求的条件下,确定每周的生产量,使n 周的总费用最少。
决策变量是第k 周的生产量,记作),,2,1(n k u k Λ=。已知下列数据及函数关系:第k 周的需求量k d :第k 周产量为k u 时的生产费为)(k k u c ;第k 周初贮存量为k x 时这一周的贮存费为)(k k x h ;第k 周的生产能力限制为k U ;初始(0=k )及终结(n k =)时贮存量均为零。按照最短路问题的思路,设从第k 周初贮存量为k x 到(n 周末)过程结束的最小费用函数为)(k k x f ,则下列逆向递推公式成立。
⎪⎩⎪⎨⎧=⋯=∈++=++++≤≤0
)(1,2,,)]()()([min )(11110n n k k k k k k k k U u k k x f n k X x x f x h u c x f k k , (1)
而k x 与1+k x 满足 ⎩⎨⎧==⋯=-+=++012,,111n k k k k x x n k d u x x ,, (2)
这里贮存量k x 是状态变量,(2)式给出了相邻阶段的状态在决策变量作用下的转移规律,称为状态转移规律。在用(1)式计算时,k x 的取值范围——允许状态集合k X 由(2)式及允许决策集合)0(k k U u ≤≤决定。
在实际问题中,为简单起见,生产费用常取)(k k u c ,0=k u ;k k k cu a u c +=)(,0>k u ,其中c 是单位产品生产费,而a 是生产准备费。贮存费用常取k k k hx x h =)(,h 是单位产品(一
周的)贮存费。
最优方程(1)和状态转移方程(2)构成了这个多阶段决策问题的动态规划模型。实际上,多阶段决策问题有时也可用静态规划方法求解,如例2的生产计划问题。
例14 资源分配问题。总量为1m 的资源A 和总量为2m 的资源B 同时分配给n 个用户,已知第k 用户利用数量k u 的资源A 和数量k v 的资源B 时,产生的效益为),(k k k v u g ,问如何分配现有资源使总效益最大。
这本来是个典型的静态规划问题:
∑==n
k k k k v u g Z Max 1),( (1)
∑=≥=n k k k u m u
t s 1
10,.. (2) ∑=≥=n k k k v m v
120, (3)
但是当k g 比较复杂及n 较大时,用非线性规划求解是困难的,特别是,若k g 是用表格或图形给出而无解析表达式时,则难以求解。而这种情况下,将其转化为动态规划,是一种可行的方法。 资源A ,B 每分配给一个用户划分为一个阶段,分配给第k 用户的数量是二维决策变量),(k k v u ,而把向第k 用户分配之前,分配者手中掌握的资源数量作为二维状态变量,记作),(k k y x ,这样,状态转移方程应为
⎩⎨⎧-=-=++k k k k k k v y y u x x 1
1 (4) 最优值函数),(k k k y x f 定义为将数量),(k k y x 的资源分配给第k 至第n 用户时能获得的最大效益,它满足最优方程
⎪⎩⎪⎨⎧=⋯=≤≤≤≤+=++++≤≤≤≤0)0,0(1,2,,,0,0)],,(),([max ),(12111100n k k k k k k k k y v x u k k k f n k m y m x y x f v u g y x f k k k k
(5)
对于由(4),(5)式构成的动态规划模型,不需要),(k k k v u g ,),(k k k y x f 的解析表达式,完全可以求数值解。
例15 系统可靠性问题。一个系统由若干部件串联而成,只要有一个部件故障,系统就不能正常