动态规划

Download Report

Transcript 动态规划

运筹学
动态规划
学筹运
1
本章内容重点
多阶段决策过程的最优化
动态规划的基本概念和基本原理
动态规划方法的基本步骤
动态规划方法应用举例
2
1.多阶段决策过程的最优化
一、多阶段决策问题
(Multi-Stage decision process)
多阶段决策过程特点:
决策u1
决策u2
决策uk
决策un
状态 阶段1 状态 阶段2 状态...状态 阶段k 状态...状态 阶段n 状态
x
x1
x2
T1
x3
T2
xk
xk+1
Tk
xn
n+1
Tn
3
1.多阶段决策过程的最优化
动态规划方法与“时间”关系
很密切,随着时间过程的发展而决
定各时段的决策,产生一个决策序
列,这就是“动态”的意思。然而
它也可以处理与时间无关的静态问
题,只要在问题中人为地引入“时
段”因素,就可以将其转化为一个
多阶段决策问题。在本章中将介绍
这种处理方法。
4
1.多阶段决策过程的最优化
二、多阶段决策问题举例
属于多阶段决策类的问题很多,
例如:
1)工厂生产过程:由于市场需求是
一随着时间而变化的因素,因此,为了
取得全年最佳经济效益,就要在全年的
生产过程中,逐月或者逐季度地根据库
存和需求情况决定生产计划安排。
5
1.多阶段决策过程的最优化
2)设备更新问题:一般企业用于生产活动
的设备,刚买来时故障少,经济效益高,即使进
行转让,处理价值也高,随着使用年限的增加,
就会逐渐变为故障多,维修费用增加,可正常使
用的工时减少,加工质量下降,经济效益差,并
且,使用的年限越长、处理价值也越低,自然,
如果卖去旧的买新的,还需要付出更新费.因此
就需要综合权衡决定设备的使用年限,使总的经
济效益最好。
6
1.多阶段决策过程的最优化
3)连续生产过程的控制问题:
一般化工生产过程中,常包含一
系列完成生产过程的设备,前一
工序设备的输出则是后一工序设
备的输入,因此,应该如何根据
各工序的运行工况,控制生产过
程中各设备的输入和输出,以使
总产量最大。
7
1.多阶段决策过程的最优化
以上所举问题的发展过程都与时间因素
有关,因此在这类多阶段决策问题中,阶段
的划分常取时间区段来表示,并且各个阶段
上的决策往往也与时间因素有关,这就使它
具有了“动态”的含义,所以把处理这类动
态问题的方法称为动态规划方法。不过,实
际中尚有许多不包含时间因素的一类“静态”
决策问题,就其本质而言是一次决策问题,
是非动态决策问题,但是也可以人为地引入
阶段的概念当作多阶段决策问题,应用动态
规划方法加以解决。
8
1.多阶段决策过程的最优化
4)资源分配问题:便属于这类静态
问题。如:某工业部门或公司,拟对其
所属企业进行稀缺资源分配,为此需要
制定出收益最大的资源分配方案。这种
问题原本要求一次确定出对各企业的资
源分配量,它与时间因素无关,不属动
态决策,但是,我们可以人为地规定一
个资源分配的阶段和顺序,从而使其变
成一个多阶段决策问题(后面我们将详细
讨论这个问题)。
9
1.多阶段决策过程的最优化
5)运输网络问题:如图5-1所示的
运输网络,点间连线上的数字表示两地
距离(也可是运费、时间等),要求从
fk(sk)至v10的最短路线。
这种运输网络问题也是静态决策问
题。但是,按照网络中点的分布,可以
把它分为4个阶段,而作为多阶段决策
问题来研究。
10
1.多阶段决策过程的最优化
图5-11 运输网络图示
11
1.多阶段决策过程的最优化
三、动态规划求解的多阶段决策问题的特点
通常多阶段决策过程的发展是通过状态的一
系列变换来实现的。一般情况下,系统在某个阶
段的状态转移除与本阶段的状态和决策有关外,
还可能与系统过去经历的状态和决策有关。因此,
问题的求解就比较困难复杂。而适合于用动态规
划方法求解的只是一类特殊的多阶段决策问题,
即具有“无后效性”的多阶段决策过程。所谓无
后效性,又称马尔柯夫性,是指系统从某个阶段
往后的发展,仅由本阶段所处的状态及其往后的
决策所决定,与系统以前经历的状态和决策(历史)
无关。
12
1.多阶段决策过程的最优化
四、动态规划方法导引
例5.1:为了说明动态规划的基本思想方法
和特点,下面以图5-1所示为例讨论的求最短路
问题的方法。
第一种方法称做全枚举法或穷举法。它的
基本思想是列举出所有可能发生的方案和结果,
再对它们一一进行比较,求出最优方案。这里从
v1 到 v10 的路程可以分为4个阶段。第一段的走法
有三种,第二三两段的走法各有两种,第四段的
走法仅一种,因此共有3×2×2×1=12条可能的
路线,分别算出各条路线的距离,最后进行比较,
可知最优路线是 v1 →v3 → v7 → v9 →v10 ,最短
距离是18.
13
1.多阶段决策过程的最优化
显然,当组成交通网络的节点很多时,用
穷举法求最优路线的计算工作量将会十分庞大,
而且其中包含着许多重复计算.
第二种方法即所谓“局部最优路径”法,
是说某人从k出发,他并不顾及全线是否最短,
只是选择当前最短途径,“逢近便走”,错误
地以为局部最优会致整体最优,在这种想法指
导下,所取决策必是v1 →v3 →v5 → v8 → v10 ,
全程长度是20;显然,这种方法的结果常是错
误的.
14
1.多阶段决策过程的最优化
第三种方法是动态规划方法。动态
规划方法寻求该最短路问题的基本思想
是,首先将问题划分为4个阶段,每次的
选择总是综合后继过程的一并最优进行
考虑,在各段所有可能状态的最优后继
过程都已求得的情况下,全程的最优路
线便也随之得到。
为了找出所有可能状态的最优后继
过程,动态规划方法总是从过程的最后
阶段开始考虑,然后逆着实际过程发展
的顺序,逐段向前递推计算直至始点。
15
1.多阶段决策过程的最优化
具体说,此问题先从 v10 开始,因为 v10 是终点。
再无后继过程,故可以接着考虑第4阶段上所有可能
状态 v8 ,v9 的最优后续过程.因为从 v8 ,v9 到 v10 的
路线是唯一的,所以v8 ,v9 的最优决策和最优后继
过程就是到v10 ,它们的最短距离分别是5和3。
接着考虑阶段3上可能的状态 v5 ,v6 , v7 , 到
v10的最优决策和最优后继过程.在状态V5上,虽然
到 v8 是8,到 v9 是9,但是综合考虑后继过程整体最
优,取最优决策是到 v9,最优后继过程是 v5→v9 →
v10 ,最短距离是12.同理,状态v6的最优决策是至
v8 ;v7的最优决策是到v9 。
16
1.多阶段决策过程的最优化
同样,当阶段3上所有可能状态的最
优后继过程都已求得后,便可以开始考虑
阶段2上所有可能状态的最优决策和最优
后继过程,如v2的最优决策是到v5,最优路
线是 v2→v5→v9→v10 ,最短距离是15…依此
类推,最后可以得到从初始状态 v1的最优
决策是到 v3 最优路线是 v1→v3→v7→v9→v10 ,
全程的最短距离是18。图5—1中粗实线表
示各点到的最优路线,每点上方括号内的
数字表示该点到终点的最短路距离。
17
1.多阶段决策过程的最优化
综上所述可见,全枚举法虽可找出最优
方案,但不是个好算法,局部最优法则完全
是个错误方法,只有动态规划方法属较科学
有效的算法。它的基本思想是,把一个比较
复杂的问题分解为一系列同类型的更易求解
的子问题,便于应用计算机。整个求解过程
分为两个阶段,先按整体最优的思想逆序地
求出各个子问题中所有可能状态的最优决策
与最优路线值,然后再顺序地求出整个问题
的最优策略和最优路线。计算过程中,系统
地删去了所有中间非最优的方案组合,从而
使计算工作量比穷举法大为减少。
18
2.动态规划的基本概念
一、动态规划的基本概念
使用动态规划方法解决多阶段
决策问题,首先要将实际问题写成
动态规划模型,同时也为了今后叙
述和讨论方便,这里需要对动态规
划的下述一些基本术语进一步加以
说明和定义:
19
2.动态规划的基本概念
(一) 阶段和阶段变量
为了便于求解和表示决策及过程的发展顺
序,而把所给问题恰当地划分为若干个相互联系
又有区别的子问题,称之为多段决策问题的阶段。
一个阶段,就是需要作出一个决策的子问题,通
常,阶段是按决策进行的时间或空间上先后顺序
划分的。用以描述阶段的变量叫作阶段变量,一
般以k表示阶段变量.阶段数等于多段决策过程
从开始到结束所需作出决策的数目,图5—1所示
的最短路问题就是一个四阶段决策过程。
20
2.动态规划的基本概念
(二)状态、状态变量和可能状态集
1.状态与状态变量。用以描述事物
(或系统)在某特定的时间与空间域中所处
位置及运动特征的量,称为状态。反映状
态变化的量叫做状态变量。状态变量必须
包含在给定的阶段上确定全部允许决策所
需要的信息。按照过程进行的先后,每个
阶段的状态可分为初始状态和终止状态,
或称输入状态和输出状态,阶段k的初始
状态记作 sk ,终止状态记为 sk+1 。但为了
清楚起见,通常定义阶段的状态即指其初
始状态。
21
2.动态规划的基本概念
2.可能状态集
一般状态变量的取值有一定的范围或允许集
合,称为可能状态集,或可达状态集。可能状态
集实际上是关于状态的约束条件。通常可能状态
集用相应阶段状态sk的大写字母Sk表示,sk∈Sk,
可能状态集可以是一离散取值的集合,也可以为
一连续的取值区间,视具体问题而定.在图5—1
所示的最短路问题中,第一阶段状态为 v1 ,状态
变量s1的状态集合S1={v1};第二阶段则有三个状
态 : v2 ,v3 ,v4 , 状 态 变 量 s2 的 状 态 集 合
S2={v2 ,v3 ,v4} ; 第 三 阶 段 也 有 三 个 状
态 :v5 ,v6 ,v7 , 状 态 变 量 s3 的 状 态 集 合
S3={v5 ,v6 ,v7} ; 第 四 阶 段 则 有 二 个 状 态 :
v8 ,v9 , 状态变量s4的状态集合S4={v8 ,v9} ;
22
2.动态规划的基本概念
(三)决策、决策变量和允许决策集合
所谓决策,就是确定系统过程发展的方案。
决策的实质是关于状态的选择,是决策者从给定
阶段状态出发对下一阶段状态作出的选择。
用以描述决策变化的量称之决策变量和状
态变量一样,决策变量可以用一个数,一组数或
一向量来描述,也可以是状态变量的函数,记以
uk= uk(sk),表示于阶段k状态sk时的决策变量。
决策变量的取值往往也有一定的允许范围,
称之允许决策集合。决策变量uk(sk)的允许决策
集用 Uk(sk)表示, uk(sk)∈ Uk(sk)允许决策集合
实际是决策的约束条件。
23
2.动态规划的基本概念
(四)、策略和允许策略集合
策略(Policy)也叫决策序列.策略有全过程
策略和k部子策略之分,全过程策略是指具有 n个
阶段的全部过程,由依次进行的 n 个阶段决策构
成 的 决 策 序 列 , 简 称 策 略 , 表 示 为
p1,n{u1,u2,…,un}。从k阶段到第n阶段,依次进行
的阶段决策构成的决策序列称为 k部子策略,表示
为pk,n{uk,uk+1,…,un} ,显然当k=1时的k部子策略
就是全过程策略。
在实际问题中,由于在各个阶段可供选择的决策
有许多个,因此,它们的不同组合就构成了许多
可供选择的决策序列(策略),由它们组成的集合,
称之允许策略集合,记作P1,n ,从允许策略集中,
找出具有最优效果的策略称为最优策略。
24
2.动态规划的基本概念
(五)状态转移方程
系统在阶段 k 处于状态 sk ,执行决策 uk(sk)
的结果是系统状态的转移,即系统由阶段k的初
始状态sk转移到终止状态sk+1 ,或者说,系统由
k阶段的状态sk转移到了阶段k+1的状态sk+1 ,多
阶段决策过程的发展就是用阶段状态的相继演变
来描述的。
对于具有无后效性的多阶段决策过程,系统
由阶段k 到阶段k+1的状态转移完全由阶段 k 的状
态 sk 和决策 uk(sk) 所确定,与系统过去的状态
s1,s2,… ,sk-1 及其决策 u1(s1), u2(s2)…uk-1(sk-1)
无关。系统状态的这种转移,用数学公式描述即
有:
sk 1  Tk ( sk , uk ( sk ))
(5-1)
25
2.动态规划的基本概念
通常称式(5-1)为多阶段决策过程的状态转移方
程。有些问题的状态转移方程不一定存在数学
表达式,但是它们的状态转移,还是有一定规
律可循的。
(六) 指标函数
用来衡量策略或子策略或决策的效果的某
种数量指标,就称为指标函数。它是定义在全
过程或各子过程或各阶段上的确定数量函数。
对不同问题,指标函数可以是诸如费用、成本、
产值、利润、产量、耗量、距离、时间、效用,
等等。例如:图5—1的指标就是运费。
26
2.动态规划的基本概念
(1) 阶 段 指 标 函 数 ( 也 称 阶 段 效 应 ) 。 用
gk(sk,uk) 表 示 第 k 段 处 于 sk 状 态 且 所 作 决 策 为
uk(sk)时的指标,则它就是第k段指标函数,简记
为gk 。图5-1的gk值就是从状态sk到状态sk+1的距
离。譬如,gk(v2,v5)=3,即v2到v5的距离为3。
(2) 过 程 指 标 函 数 ( 也 称 目 标 函 数 ) 。 用
Rk(sk,uk)表示第k子过程的指标函数。如图5-1的
Rk(sk,uk)表示处于第k段sk状态且所作决策为uk时,
从sk点到终点v10的距离。由此可见,Rk(sk,uk)不
仅跟当前状态 sk 有关,还跟该子过程策略 pk(sk)
有关,因此它是 sk 和 pk(sk)的函数,严格说来,
应表示为:
Rk ( s k , pk ( s k ))
27
2.动态规划的基本概念
不 过 实 际 应 用 中 往 往 表 示 为 Rk(sk,uk) 或
Rk(sk)。还跟第k子过程上各段指标函数有关,
过程指标函数 Rk(sk)通常是描述所实现的全过
程或 k 后部子过程效果优劣的数量指标,它是
由各阶段的阶段指标函数 gk(sk,uk)累积形成的,
适于用动态规划求解的问题的过程指标函数
(即目标函数),必须具有关于阶段指标的可
分离形式.对于部子过程的指标函数可以表示
为:
Rk ,n  Rk ,n ( s k , u k , s k 1 , u k 1 ,, s n , u n )
 g k ( s k , u k )  g k 1 ( s k 1 , u k 1 )    g n ( s n , u n )
式中,表示某种运算,可以是加、减、乘、
除、开方等。
(5-2)
28
2.动态规划的基本概念
多阶段决策问题中,常见的目标函数形式之
一是取各阶段效应之和的形式,即:
Rk 
n
g
( si , ui )
(5-3)
有些问题,如系统可靠性问题,其目标函数
是取各阶段效应的连乘积形式,如:
i k
i
n
Rk   g i ( si , ui )
i k
(5-4)
总之,具体问题的目标函数表达形式需要视
具体问题而定。
29
2.动态规划的基本概念
(七) 最优解
用fk(sk)表示第k子过程指标函数 Rk (s k , pk ( s k ))
在状态sk下的最优值,即
f k (sk )  opt {Rk (sk , pk (sk ))}, k  1,2,, n
pk PK ( sk )
称fk(sk)为第k子过程上的最优指标函数;与它
相应的子策略称为sk状态下的最优子策略,记
为pk*(sk) ;而构成该子策赂的各段决策称为该
过程上的最优决策,记为u  ( s ), u  ( s ), , u  ( s;)
k k
k 1 k 1
n n
有
pk (sk )  {u k (sk ), u k1 (sk 1 ),, u n (sn )}, k  1,2,, n
简记为
p k  {u k , u k1 ,, u n }, k  1,2,, n
30
2.动态规划的基本概念
特别当k=1且s1取值唯一时,f1(s1)就是问题的最
优值,而p1*就是最优策略。如例只有唯一始点v1
即s1取值唯一,故f1(s1)=18就是例的最优值,而
p1  {v3 , v7 , v9 , v10 }
就是例的最优策略。
但若取值不唯一,则问题的最优值记为f0有
f 0  opt{ f 1 ( s1 )}  f 1 ( s1  s1 )
s1S1
最优策略即为s1=s1*状态下的最优策略:
p1 ( s1  s1 )  {u1 ( s1 ), u 2 ,, u n }
我们把最优策略和最优值统称为问题的最
优解。
31
2.动态规划的基本概念
按上述定义,所谓最优决策是指它们在
u k ( k  1,2,, n)
全过程上整体最优(即所构成的全过程策略
为最优),而不一定在各阶段上单独最优。
(八) 多阶段决策问题的数学模型
综上所述,适于应用动态规划方法求
解的一类多阶段决策问题,亦即具有无后效
性的多阶段决策问题的数学模型呈以下形式:
f  opt R  R ( s1 , u1 , s 2 , u 2 ,  , s n , u n )
u1 ~ u n
s k 1  Tk ( s k , u k )
s  S
 k
k
s.t.
u k  U k

k  1,2,  , n
(5-5)
32
2.动态规划的基本概念
式中“OPT”表示最优化,视具体问
题取max或min。
上述数学模型说明了对于给定的
多阶段决策过程,求取一个(或多个)最
优策略或最优决策序列
,
{u1 , u 2 ,, u n }
使之既满足式(5-5)给出的全部约束条件,
又使式(5-5)所示的目标函数取得极值,
并且同时指出执行该最优策略时,过程
状态演变序列即最优路线
{s1 , s 2 ,, s n , s n1 }
33
2.动态规划的基本原理
二、动态规划的最优化原理与基本方程
1.标号法
为进一步阐明动态规划方法的基本思路,
我们介绍一种只适用于例这类最优路线问题的
特殊解法——标号法。标号法是借助网络图通
过分段标号来求出最优路线的一种简便、直观
的方法。通常标号法采取“逆序求解”的方法
来寻找问题的最优解,即从最后阶段开始,逐
次向阶段数小的方向推算,最终求得全局最优
解。
34
2.动态规划的基本原理
下面给出标号法的一般步骤:
1.从最后一段标起,该段各状态(即
各始点)到终点的距离用数字分别标在各
点上方的方格内,并用粗箭线连接各点和
终点。
2.向前递推,给前一阶段的各个状
态标号。每个状态上方方格内的数字表示
该状态到终点的最短距离。即为该状态到
该阶段已标号的各终点的段长,再分别加
上对应终点上方的数字而取其最小者。将
刚标号的点沿着最短距离所对应的已标号
的点用粗箭线连接起来,表示出各刚标号
的点到终点的最短路线。
35
2.动态规划的基本原理
3.逐次向前递推,直到将第一阶段的状态(即
起点)也标号,起点方格内的数字就是起点到终点
的最短距离,从起点开始连接终点的粗箭线就是最
短路线。
用标号法来求解下例
例5.2:网络图5—2表示某城市的局部道路分
布图。一货运汽车从S出发,最终到达目的地E。其
中Ai(i=1,2,3),Bj(j=1,2)和Ck(k=1,2)是可
供汽车选择的途经站点,各点连线上的数字表示两
个站点问的距离。问此汽车应走哪条路线,使所经
过的路程距离最短?
36
2.动态规划的基本原理
图5-2
某城市的局部道路分布图
37
2.动态规划的基本原理
第一步:先考虑第四阶段,即 k=4,该阶段共
有两个状态:C1、C2,设f4(C1)和f4(C2)分别表示C1、
C2到E的最短距离,显然有f4(C1)=5和f4(C2)=8,边
界条件f5(E)=0 。
第二步:即k=3,该阶段共有两个状态:B1 , B2
(1) 从 B1 出发有两种决策:B1→C1 , B1→C2 。
记d3(B1,C1)表示B1到C1的距离,即,这里的每一种决
策的阶段指标函数就是距离,所以,B1→C1的阶段
指标函数为 d3(B1,C1)=6, B1→C2 的阶段指标函数
为d3(B1,C2)=5。因此有,
f3(B1)=min{d3(B1,C1)+f4(C1),d3(B1,C2)+f4(C2)}=
min(6+5,5+8)=11。那么,从出发到E的最短路
线是B1→C1→E,对应的决策u3(B1) = C1 。
38
2.动态规划的基本原理
(2) 从 B2 出 发 也 有 两 种 决 策 :B2→C1,B2→C2 同 理 ,
有 f3(B2)=min{d3(B2,C1)+f4(C1),d3(B2,C2)+f4(C2)} =
min(9+5,8+87)=14,那么,从 B2 出发到 E 的最短路线
是B2→C1→E,且u3(B2)=C1 。
第三步:即k=2,该阶段共有三个状态:Al,A2,A3
(1)从Al出发有两种决策:A1→B1,A1→B2。则
f2(A1)=min{d2(A1,B1)+f3(B1),d2(A1,B2)+f3(B2)} = min{6
+ 11 , 5 + 14} = 17 , 即 A1 到 E 的 最 短 路 线 为
A1→B1→C1→E,且u3(A1)=B1 。
(2)从 A2 出发也有两种决策:A2→B1,A2→B2 。此时,
f2(A2) = min{d2(A2,B1)+f3(B1),d2(A2,B2)+f3(B2)} =
min{8+11 , 6+14} = 19 , 即 A2 到 E 的 最 短 路 线 为
A2→B1→C1→E,且u3(A2)=B1。
39
2.动态规划的基本原理
(3)从A3出发也有两种决策:A3→B1,A3→B2 此时
f2(A2)=min{d2(A3,B1)+f3(B1),d2(A3,B2)+f3(B2)}
=
min{7+11 , 4+14} = 18 , 即 A3 到 E 的 最 短 路 线 为
A3→B1→C1→E ,对应的u2(A3)=B2 。
第四步:即 k =1,该阶段只有一个状态 S,从 S 出
发有三种决策:S→A1,S→A2,S→A3,那么,
f1(S)=min{d1(S,A1)+f2(A1),d2(S,B2)+f3(B2)}
=
min{8+11 , 6+14} = 19 , 即 A2 到 E 的 最 短 路 线 为
A2→B1→C1→E ,且u3(A2)=B1 。
那么,从S到E共有三条最短路线:S  A1  B1  C1  E
此时,u1(S)=A1题 S  A3  B1  C1  E 和 S  A3  B2  C1  E
此时,u1(S)=A3 ,最短距离为21。
40
2.动态规划的基本原理
结果如图5-3所示。
每个状态上方的方格内的数字表示
该状态到E的最短距离,首尾相连的粗箭
线构成每一状态到E的最短路线。因此,
标号法不但给出起点到终点的最短路线
和最短距离,同时也给出每一状态到终
点的最短路线及其最短距离。如,A1 到 E
的最短路线是
,最短矩离是
A  B C  E
17
1
1
1
图见下页
41
2.动态规划的基本原理
图5-3某城市局部道路求最短路径的过程
42
2.动态规划的基本原理
2.最优化原理 (贝尔曼最优化原理)
作为一个全过程的最优策略具有这样
的性质:对于最优策略过程中的任意状态
而言,无论其过去的状态和决策如何,余
下的诸决策必构成一个最优子策略。该原
理的具体解释是,若某一全过程最优策略
为:
p1 ( s1 )  {u1 (s1 ), u 2 ( s 2 ), , u k ( s k ), u n (s n )}
则对上述策略中所隐含的任一状态而言,
第k子过程上对应于该状态的最优策略必然
包含在上述全过程最优策略p1*中,即为
p k ( s k )  {u k ( s k ), u k1 ( s k 1 ), , u n ( s n )}
43
2.动态规划的基本原理
如第一节所述,基于上述原理,提出了一
种逆序递推法;这里可以指出,该法的关键在
于给出一种递推关系。一般把这种递推关系称为
动态规划的函数基本方程。
3.函数基本方程
在例中,用标号法求解最短路线的计
算公式可以概括写成:
 f 5 (s5 )  0
 f (s )  min {g (s , u (s ))  f (u (s ))}, k  4,3,2,1 (5-6)
k 1 k 1 k 1
 k k uk U k ( sk ) k k k k
其中,g ( s , u ( s ))在这里表示从状态sk到由决
策uk(sk)所决定的状态sk+1之间的距离,是边界条
件,表示全过程到第四阶段终点结束。
k
k
k
k
f 5 ( s5 )  0
44
2.动态规划的基本原理
一般地,对于n个阶段的决策过程,假设只
考虑指标函数是“和”与“积”的形式,第k 阶
段和第k+1阶段间的递推公式可表示如下:
(1)当过程指标函数为下列“和”的形式时,
f k (sk )  opt {Rk (sk , pk (sk ))} 
pk PK ( sk )
n
g
ik
i
( si , u i )
相应的函数基本方程为
 f n1 ( s n1 )  0
 f k ( s k )  opt {g k ( s k , u k ( s k ))  f k 1 (u k 1 ( s k 1 ))}, k  n, n  1,,2,1

u k U k
(5—7)
45
2.动态规划的基本原理
(2) 当过程指标函数为下列“积”的形式时,
f k (sk ) 
opt {Rk ( s k , pk ( s k ))}
pk PK ( sk )
相应的函数基本方程为
n
g
i
( si , u i )
i k
 f n1 ( s n1 )  1
 f k ( s k )  opt {g k ( s k , u k ( s k ))  f k 1 (u k 1 ( s k 1 ))}, k  n, n  1,,2,1

u k U k
(5—8)
可以看出,和、积函数的基本方程中边界
条件(即 f n 1 ( s n 1 ) 的取值)是不同的。
46
3.动态规划方法的基本步骤
标号法仅适用于求解象最短路线问题那样
可以用网络图表示的多阶段决策问题。但不少
多阶段决策问题不能用网络图表示。此时,应
该用函数基本方程来递推求解.一般来说,要用
函数基本方程逆推求解,首先要有效地建立动
态规划模型,然后再递推求解,最后得出结论.
然而,要把一个实际问题用动态规划方法来求
解,还必须首先根据问题的要求。把它构造成
动态规划模型,这是非常重要的一步。正确地
建立一个动态规划模型,往往问题也就解决了
一大半,而一个正确的动态规划模型,应该满足
哪些条件呢?
47
3.动态规划方法的基本步骤
1.应将实际问题恰当地分割成n个
子问题(n个阶段)。通常是根据时间或空
间而划分的,或者在经由静态的数学规
划模型转换为动态规划模型时,常取静
态规划中变量的个数n,即k=n。
2.正确地定义状态变量sk,使它既
能正确地描述过程的状态,又能满足无
后效性.动态规划中的状态与一般控制
系统中和通常所说的状态的概念是有所
不同的,动态规划中的状态变量必须具
备以下三个特征:
48
3.动态规划方法的基本步骤
(1)要能够正确地描述受控过程的变化特征。
(2)要满足无后效性。即如果在某个阶段状态
已经给定,那么在该阶段以后,过程的发展不受
前面各段状态的影响,如果所选的变量不具备无
后效性,就不能作为状态变量来构造动态规划的
模型。
(3)要满足可知性。即所规定的各段状态变量
的值,可以直接或间接地测算得到。一般在动态
规划模型中,状态变量大都选取那种可以进行累
计的量。此外,在与静态规划模型的对应关系上,
通常根据经验,线性与非线性规划中约束条件的
个数,相当于动态规划中状态变量sk的维数.而
前者约束条件所表示的内容,常就是状态变量sk
所代表的内容。
49
3.动态规划方法的基本步骤
3.正确地定义决策变量及各阶段的允许
决策集合 Uk(sk),根据经验,一般将问题中待
求的量,选作动态规划模型中的决策变量。或
者在把静态规划模型(如线性与非线性规划)转
换为动态规划模型时,常取前者的变量 xj 为后
者的决策变量uk。
4. 能够正确地写出状态转移方程,至少
要能正确反映状态转移规律。如果给定第k阶
段状态变量 sk 的值,则该段的决策变量 uk 一经
确定,第k+1段的状态变量sk+1的值也就完全确
定,即有sk+1=Tk(sk ,uk)
50
3.动态规划方法的基本步骤
5.根据题意,正确地构造出目标与变量的
函数关系——目标函数,目标函数应满足下列性
质:
(1)可分性,即对于所有 k 后部子过程,其
目 标 函 数 仅 取 决 于 状 态 sk 及 其 以 后 的 决 策
uk ,uk+1,┈,un,就是说它是定义在全过程和所
有后部子过程上的数量函数。
(2)要满足递推关系,即
Rk ,n ( s k , u k , s k 1 , u k 1 ,, s n1 )   k [ s k , u k , Rk 1 ( s k 1 ,, s n1 )]
(3)函数  k [s k , u k , Rk 1 (sk 1 ,, sn1 )] 对其变元Rk+1来
说要严格单调。
51
3.动态规划方法的基本步骤
6.写出动态规划函数基本方程
例如常见的指标函数是取各段指标和的形
n
式
Rk ( s k ) 
g
i k
i
( si , u i )
其中 g i ( si , u i ) 表示第i阶段的指标,它
显然是满足上述三个性质的。所以上式
可以写成 :
Rk  g k (sk , u k )  Rk 1 (sk 1 ,, sn1 )
52
3.动态规划方法的基本步骤
二.动态规划方法的基本步骤
为进一步说明动态规划模型建立的基本方
法及其求解过程,下面通过实际例子用上述方
法具体给出求解动态规划方法的基本步骤:
例5.3:有某种机床,可以在高低两种不同
的负荷下进行生产,在高负荷下生产时,产品的
年产量为g,与年初投入生产的机床数量 u1 的关
系为g=g(u1)=8u1,这时,年终机床完好台数将为
au1,(a为机床完好率,0<a<1,设a=0.7).在低负
荷下生产时,产品的年产量为 h,和投入生产的
机床数量 u2 的关系为 h=h(u2)=5u2,相应的机床
完好率为b(0<b<1,设b=0,9),一般情况下a<b。
53
3.动态规划方法的基本步骤
假设某厂开始有 x=1000台完好的机床,现要
制定一个五年生产计划,问每年开始时如何重新
分配完好的机床在两种不同的负荷下生产的数量,
以使在5年内产品的总产量为最高。
解:首先构造这个问题的动态规划模型。
1.变量设置
(1)设阶段变量 k 表示年度,因此,阶段总数
n=5。
(2)状态变量sk表示第k年度初拥有的完好机床
台数,同时也是第k-1年度末时的完好机床数量。
54
3.动态规划方法的基本步骤
(3)决策变量uk ,表示第k 年度中分配于高负
荷下生产的机床台数。于是 sk- uk 便为该年度中
分配于低负荷下生产的机床台数.
这里 sk 与 uk 均取连续变量,当它们有非整数
数值时.可以这样理解:如sk=0.6,就表示一台
机器在k年度中正常工作时间只占6/10;uk=0.4时,
就表示一台机床在 k年度只有4/10的时间于高负
荷下工作.
2.状态转移方程为
sk 1  auk  b(sk  uk )  0.7uk  0.9(sk  uk )
k=1,2,…,6
55
3.动态规划方法的基本步骤
U k (s k )  {u k 0  u k  xk }
3.允许决策集合,在第k段为
4.目标函数。设 gk(sk,uk)为第 k 年度的产
量,则 gk(sk,5uk)=8uk+5(sk-uk),因此,目标函数
为 R 
k
g
i k
k
( s k , u k ) k=1,2,...,5
f k ( s k )  max ( xk )
5.条件最优目标函数递推方程。
u U
令 fk(sk)表示由第k年的状态 sk 出发,采取
最优分配方案到第5年度结束这段时间的产品产
量,根据最优化原理有以下递推关系:
k
k
{[8u k  5(sk  uk )]  f k 1[0.7u k  0.9(sk  u k )]} k=1,2,3,4,5
56
3.动态规划方法的基本步骤
6.边界条件为 f 51 (s51 )  0
下面采用逆序递推计算法,从第5年度开始
递推计算。
{[8u5  5(s5  u5 )]  f 6 (sk )}
k=5时有 f 5 (s5 )  0max
u  s
k
,
显然,当u5
f5(s5)=8s5
5
 max {[8u5  5(s5  u5 )]
0 u  s
*=s
k
5
5时,f5(s5)有最大值,相应的有
k=4时有
f 4 ( s 4 )  max {[8u 4  5(s4  u 4 )]  f 5 [0.7u 4  0.9(s4  u 4 )]}
0 u 4  s 4
=
=
max {[8u 4  5(s4  u 4 )]  8[0.7u 4  0.9(s4  u 4 )]}
0 u 4  s 4
max {13.6u 4  12.2( s 4  u 4 )}
0 u 4  s 4
因此,当u4*=s4时,有最大值f4(s4)=13.6s4
57
3.动态规划方法的基本步骤
k=3 时有
{17.55u3  17.22(s3  u3 )}
{[8u3  5(s3  u3 )]  f 4 (s4 )} = 0max
f 3 ( s3 ) 0max

u

s
u  s
3
3
3
3
可 见 , 当 u3*=s3 时 , f3(s3) 有 最 大 值 f3(s3)
=17.55s3.
k=2 时有
{[8u 2  5(s 2  u 2 )]  f 3 (s3 )}
f 2 ( s 2 )  0max
u  s
2
2
{[8u 2  5(s2  u 2 )] + 17.55[0.7u 2  0.9(s2  u 2 )]}
= 0max
u  s
{[ 20.25u 2  20.8( s 2  u 2 )]
= 0max
u  s
此时,当取 u2*=0时有最大值,即f2(s2)=20.8s2,其
中s2=0.7u1+0.9(s1-u1)
2
2
2
2
58
3.动态规划方法的基本步骤
k=1时有
{8u1  5( s1  u1 )+ 20.8[0.7u1  0.9(s1  u1 )]}
f1 ( s1 )  0max
u  s
1
=
1
max {22.55u1  23.7( s1  u1 )}
0u1  s1
当 取 u1*=0 时 , f1(s1) 有 最 大 值 , 即
f1(s1)=23.7s1, 因 为 s1=1000, 故
f1(s1)=23700个产品.
按照上述计算顺序寻踪得到下述计算结果:
u1  0 s1  1000
g1 ( s1 , u1 )  5000 f1 ( s1 )  23700
u 2  0 s2  900 g 2 (s2 , u 2 )  4500f 2 (s2 )  20.8s2  18720
59
3.动态规划方法的基本步骤
u 3  s3 s3  810 g 3 (s3 , u3 )  6480 f 3 (s3 )  17.55s3  14216
u 4  s 4 s 4  567g 4 (s4 , u 4 )  4536 f 4 (s4 )  13.6s4  7711
g 5 (s5 , u5 )  3176
u 5  s5 s5  397
f 5 ( s5 )  13.6s5  3176
s6  0.7u5  0.9(s5  u5 )  0.7 x5  278
上面所讨论的最优决策过程是所谓始端
状态s1 固定,终端状态s6 自由.如果终端也
附加上一定的约束条件,那么计算结果将会
与之有所差别.例如,若规定在第五个年度
结束时,完好的机床数量为500台(上面只有
278台),问应该如何安排五年的生产,使之
在满足这一终端要求的情况下产量最高?
60
3.动态规划方法的基本步骤
解:由状态转移方程
有
得
s k 1  au k  b( s k  u k )  0.7u k  0.9( s k  u k )
s6  0.7u5  0.9( s5  u5 ) =500
u 5  4.5s5  2500
显而易见,由于固定了终端的状态s6 ,第五年
的决策变量U5的允许决策集合U5(s5)也有了约束,上
式说明U5(s5)已退化为一个点,即第五年投入高负荷
下生产的机床数只能由式 U5=4.5s5-2500作出一种决
策,故
61
3.动态规划方法的基本步骤
当k=5时有
f 5 (s5 )  max{8u5  5(s5  u5 )}= 8(4.5u5  2500)  5(s5  4.5u5  2500)
0uk  s5
 18.5s5  7500
当k=4时有
{[8u 4  5(s4  u 4 )]  f 5 (s5 )}
f 4 (s 4 ) 0max
u  s
4
4
= max {8u 4  5( s 4  u 4 )  18.5u5  7500}
0 u 4  s 4
= max {8u 4  5(s 4  u 4 )  18.5[0.7u 4  0.9(s4  u 4 )]  7500}
0 u 4  s 4
= max {21.7 s 4  0.75u 4  7500}
0 u 4  s 4
显然,只有取u4*=0 ,f4(s4)有最大值,即
f4(s4)=21.7s4-7500。同理类推
62
3.动态规划方法的基本步骤
k=3时有
f 3 ( s3 )  max {[8u3  5(s3  u3 )]  f 4 (s4 )}
0u3  s3
=
=
max {[8u3  5(s3  u3 )]  21.7[0.7u3  0.9(s3  u3 )]  7500}
0u3  s3
max {1.3u3  24.5s3  7500}
0u3  s3
可 知 , 当 u3*=0 时 ,f3(s3) 有 最 大 值 f4(s4)=24.5s37500.
k=2时有
{[8u 2  5(s 2  u 2 )]  f 3 (s3 )}
f 2 (s2 )  0max
u  s
2
=
2
max {[8u 2  5( s 2  u 2 )]+ 24.5[0.7u2  0.9(s2  u2 )]  7500}
0 u 2  s 2
= max {1.9u 2
0 u 2  s 2
 27.1s2  7500}
此时,当u2*=0时有最大值,即
f2(s2)=27.1s2-7500
63
3.动态规划方法的基本步骤
k=1时有
{8u1  5(s1  u1 )  f 2 (s2 )}
f1 ( s1 ) 0max
u  s
1
=
=
1
max {8u1  5(s1  u1 )  27.1[0.7u1  0.9(s1  u1 )]  7500}
0u1  s1
max {2.4u1  29.4s1  7500}
0u1  s1
只有取u1*=0时,f1(s1)有最大值,即
f1(s1)=29.4s1-7500 。
由此可见,为了使下一个五年计划开始的一年
有完好的机床500台,其最优策略应该为:在前4年
中,都应该把全部机床投人低负荷下生产,在第5年,
只能把部分完好机投入高负荷下生产。根据最优策
赂,从始端向终端递推计算出各年的状态,即算出
每年年初的完好机床台数,因为 s1 =1000台,于是
有
64
3.动态规划方法的基本步骤
(台)
u1  0
u 2  0
u 3  0
u 4  0
s1  1000
s2  0.7u1*  0.9(s1  u1* )  0.9s1  900(台)
s3  0.7u  0.9(s 2  u )  0.9s 2  810(台)
s 4  0.7u  0.9(s3  u )  0.9s3  729(台)
s5  0.7u  0.9(s 4  u )  0.9s 4  656(台)
*
2
*
3
*
4
*
2
*
3
*
4
s6  0.7u5  0.9(s5  u5 )  0.7 x5  278(台)
因此,u5*=4.5s5-2500=425(台),这就是说第5年
里还有204台投入低负荷下生产,否则不能保证
s6=0.7u5+0.9(u5-s5)=500(台)。
在上述最优决策下,5年里所得最高产量为:
f1(s1)=29.4s1-7500=29400-7500=21900(个)。
可见,附加了终端约束条件以后,其最高产量f1(s1)
比终端自由时要低一些。
65
3.动态规划方法的基本步骤
例5.4:一个线路网络图,从A到E
要修建一条石油管道,必须 在B、C、
D处设立加压站。各边上的数为长度,
现需要找一条路使总长度最短。
4
A
5
6
B1
4
3
C1
6
3
B2
5
4
C2
7
B3
4
D1
7
2
5
D2
7
C3
E
6
10
4
8
9
D3
66
3.动态规划方法的基本步骤
解:
可分成4个阶段:
A到B、B到C、C到D、D到E;
每个阶段 k 的起点称为状态Sk ;
从 k 阶段的起点出发可以做一选
择,即决定到下一阶段的哪个节
点,称为决策Xk ;可见,Sk+1 是由
Sk 和Xk 所决定的。
67
3.动态规划方法的基本步骤
那么,从A出发经过4个阶段:A
到B、B到C、C到D、D到E,逐次作出
决策,构成从A到E 的一条路线,记
为 u 。
即
u = S1 X1 S2 X2 S3 X3 S4 X4 S5
其中 S1 = A ,S5 = E
记 d 为两个相邻节点之间的长度,
如 d(A,B 3)= 3 。
68
3.动态规划方法的基本步骤
① 记 fk(Sk)为从Sk到E的最
短长度,称为从Sk到E的距离。
那么,f1(A)是从A到E的最短距
离,即最优策略的值。
69
3.动态规划方法的基本步骤
② 最短路问题的特点:如果从A
到E的最优策略经过某节点,那么这
个策略的从该节点到E的一段,必定
是该节点到E的所有线路中 Sk最短的
一条,即这一段的长度为 fk(Sk)。
(1)逆序法:从E到A。
(2)顺序法:对节点Sk,从A到
Sk 所有线路中,最短的一条的长度记
为 φk(S k),例如φ1(A)= 0,
称为问题的边界条件。
70
3.动态规划方法的基本步骤
动态规划模型建立后,对基本方程分段求
解,不像线性规划或非线性规划那样有固定的
解法,必须根据具体问题的特点,结合数学技
巧灵活求解,如动态规划模型中的状态变量与
决策变量若被限定只能取离散值,则可采用离
散变量的分段穷举法。当动态规划模型中状态
变量与决策变量为连续变量,就要根据方程的
具体情况灵活选取连续变量的求解方法。如经
典解析方法、线性规划方法、非线性规划法或
其它数值计算方法等。还有连续变量的离散化
解法和高维问题的降维法及疏密格子点法等等。
71
4.动态规划方法应用举例
学习方法建议:
第一步 先看问题,充分理解问题
的条件、情况及求解目标。
第二步 结合前面讲到的理论和解
题过程,考虑如何着手进行求解该问题
的工作。分析针对该动态规划问题的
“四大要素、一个方程”——这一步在
开始时会感到困难,但是一定要下决心
去思考,在思考过程中深入理解前文讲
到的概念和理论。
72
4.动态规划方法应用举例
第三步 动手把求解思路整理出
来,或者说,把该问题作为习题独立的
来做。
第四步 把自己的求解放到一边,
看书中的求解方法,要充分理解教材中
的论述。
第五步
对照自己
的求解,分析成败。
73
求 最 短 路 径
76
求 最 短 路 径
例5.5
12
B1
C1
14
9
10
2
3
6
5
A
E
8
13
B3
C2
5
4
1
5
6
10
B2
D1
D2
2
12
11
阶段 1 阶段 2
C3 10
阶段 3 阶段 4
阶段 5
77
求 最 短 路 径
将问题分成五个阶段,第k阶段到
达的具体地点用状态变量xk表示,例
如:x2=B3表示第二阶段到达位置B3,
等等。这里状态变量取字符值而不是
数值。
将决策定义为到达下一站所选择的
路径,例如目前的状态是 x2=B3 ,这时
决策允许集合包含三个决策,它们是
D2(x2)=D2(B3)={B3C1,B3C2,B3C3}
78
求 最 短 路 径
最优指标函数fk(xk)表示从目前状态
到E的最短路径。终端条件为
f5(x5)=f5(E)=0
其含义是从E到E的最短路径为0。
第四阶段的递推方程为
f 4 (x4 ) 
:
min {v4 (x4 , d 4 )  f5 (x5 )}
d4 D4 ( x4 )
从 f5 (x5 )到 f4 (x4 )的递推过程用下表表示:
x4 D4 (x4 ) x5 v4 (x4 ,d4 ) v4 (x4 ,d4 )+f5 (x5 ) f4 (x4 ) 最优决策 d4 *
D1 D1 E E
D2 D2 E E
5
2
5+0=5*
2+0=2*
5
2
D1 E
D2 E
79
求 最 短 路 径
其中*表示最优值,在上表中,由于决策允
许集合D4(x4)中的决策是唯一的,因此这个
值就是最优值。
由此得到f4(x4)的表达式。由于这是
一个离散的函数,取值用列表表示:
f4 (x4 ) 的表达式
x4 f4 (x4 )
D1
5
D2
2
最优决策 d4 *
D1 E
D2 E
80
求 最 短 路 径
第三阶段的递推方程为:
f 3 ( x3 )  min {v3 ( x3 , d 3 )  f 4 ( x4 )}
d 3 D3 ( x3 )
从 f4 (x4 )到 f3 (x3 )的递推过程用表格表示如下:
x3
C1
C2
C3
D3 (x3 )
x4
C1 D1
C1 D2
C2 D1
C2 D2
C3 D1
C3 D2
D1
D2
D1
D2
D1
D2
v3 (x3 ,d3 v3 (x3 ,d3 )+f4 (x f3 (x3
最优决策 d3 *
)
)
4)
3
9
6
5
8
10
3+5=8*
9+2=11
6+5=11
5+2=7*
8+5=13
10+2=12*
8
7
12
C1 D1
C2 D2
C3 D2
81
求
最
短
路
径
由此得到f (x )的表达式:
3
x3 f3 (x3 )
C1
8
C2
7
C3
12
3
最优决策 d3 *
C1 D1
C2 D2
C3 D2
第二阶段的递推方程为:
f 2 ( x2 )  min {v2 ( x2 , d 2 )  f 3 ( x3 )}
d 2 D2 ( x2 )
从 f3(x3)到 f2(x2)的递推过程用表格表
示如下:
82
求 最 短 路 径
x2 D2 (x2 ) x3 v2 (x2 ,d2 ) v2 (x2 ,d2 )+f3 (x3 ) f2 (x2 ) 最优决策 d2 *
B1 C1
B1 B1 C2
B1 C3
B2 C1
B2 B2 C2
B2 C3
B3 C1
B3 B3 C2
B3 C3
C1
C2
C3
C1
C2
C3
C1
C2
C3
12
14
10
6
10
4
13
12
11
12+8=20*
14+7=21
10+12=22
6+8=14*
10+7=17
4+12=16
13+8=21
12+7=19*
11+12=23
20
B1 C1
14
B2 C1
19
B3 C2
83
求 最 短 路 径
由此得到f2(x2)的表达式:
x2
f2 (x2 )
最优决策 d2 *
B1
20
B1 C1
B2
14
B2 C1
B3
19
B3 C2
84
求 最 短 路 径
第一阶段的递推方程为:
f 1 ( x 1 )  min { v 1 ( x 1 , d 1 )  f 2 ( x 2 )}
d 1  D 1 ( x1 )
从 f2 (x2 )到 f1 (x1 )的递推过程用表格表
示如下:
x1 D1 (x1 ) x2 v1 (x1 ,d1 ) v1 (x1 ,d1 )+f2 (x2 ) f1 (x1 ) 最优决策 d1 *
A B1 B1
A A B2 B2
AB3 B3
2
5
1
2+20=22
5+14=19*
1+19=20
19
A B
2
85
求 最 短 路 径
由此得到f1(x1)的表达式
x1 f1 (x1 ) 最优决策 d1 *
A
19
A B2
86
资 源 分 配 问 题
87
资 源 分 配 问 题
例5.6: 有资金4万元,投资A、B、C三个项
目,每个项目的投资效益与投入该项目的
资金有关。三个项目A、B、C的投资效益
(万吨)和投入资金(万元)关系见下表:
求对三个项目的最优投资分配,使
总投资效益最大。
88
资 源 分 配 问 题
1.
2.
3.
4.
5.
6.
7.
8.
阶段k:每投资一个项目作为一个阶段;
状态变量xk:投资第k个项目前的资金
数;
决策变量dk:第k个项目的投资;
决策允许集合:0≤dk≤xk
状态转移方程:xk+1=xk-dk
阶段指标:vk(xk ,dk)见表中所示;
递推方程:
fk(xk)=max{vk(xk ,dk)+fk+1(xk+1)}
终端条件:f4(x4)=0
89
资 源 分 配 问 题
k=4,f4(x4)=0
k=3,0≤d3≤x3,x4=x3-d3
90
资 源 分 配 问 题
k=2,0≤d2≤x2,x3=x2-d2
91
资 源 分 配 问 题
k=1,0≤d1≤x1,x2=x1-d1
92
背 包 问 题
93
背 包 问 题
94
背 包 问 题
则 Max z= c1x1+c2x2+…+cnxn
s.t. w1x1+w2x2+…+wnxn≤W
x1,x2,…,xn为正整数
1. 阶 段 k : 第 k 次 装 载 第 k 种 物 品
(k=1,2,…,n)
2. 状态变量 xk :第 k 次装载时背包还
可以装载的重量;
3. 决策变量 dk :第 k 次装载第 k 种物品
的件数;
95
背 包 问 题
决策允许集合:
Dk(xk)={dk|0 dkxk/wk,dk为整数};
5. 状态转移方程:xk+1=xk-wkdk
6. 阶段指标:vk=ckdk
7. 递推方程
fk(xk)=max{ckdk+fk+1(xk+1)}
=max{ckdk+fk+1(xk-wkdk)}
8. 终端条件:fn+1(xn+1)=0
4.
96
背 包 问 题
例5.7:对于一个具体问题c1=65,
c2=80,c3=30;w1=2,w2=3,w3=1;以
及 W=5
用动态规划求解 f4(x4)=0
对于k=3
列出 f3 (x3 )的数值表
97
98
99
100
由题意知,x1 =5,由表 f1 (x1 )、f2 (x2 )、
f3 (x3 ),经回朔可得:
d1 *=2,x2 =x1 -2d1 =1,d2 *=0,x3 =x2 -3d2 =1,
d3 *=1,x4 =x3 -d3 =0
即应取第一种物品 2 件,第三种物品 1 件,最
高价值为 160 元,背包没有余量。由 f1 (x1 )
得列表可以看出,如果背包得容量为 W=4,
W=3,W=2 和 W=1 时,相应的最优解立即可以
得到。
101
机器负荷分配问题
102
最短路径问题和背包问题的状态变量和决策变
量都只能取离散的整数值。当状态变量和决策变量的
取值范围很大,或者这些变量是连续的,用列举的方
法就比较困难或者根本不可能了。这就需要用连续变
量的处理方法。
例 5.8:某种机器可以在高、低两种负荷下生产。
高负荷生产条件下机器完好率为 0.7,即如果年初有
u 台完好机器投入生产,则年末完好的机器数量为
0.7u 台。系数 0.7 称为完好率。年初投入高负荷运
行的 u 台机器的年产量为 8u 吨。系数 8 称为单台产
量。低负荷运行时,机器完好率为 0.9,单台产量为
5 吨。设开始时有 1000 台完好机器,要制订五年计
划,每年年初将完好的机器一部分分配到高负荷生
产,剩下的机器分配到低负荷生产,使五年的总产量
为最高。
103
机器负荷分配问题
构造动态规划模型如下:
阶段k:运行年份(k=1,2,3,4,5,6),
其中k=1表示第一年初,…,依次类推;
k=6表示第五年末(即第六年初)。
状态变量xk:第k年初完好的机器数
(k=1,2,3,4,5,6),其中x6表示第五年末
(即第六年初)的完好机器数。
决策变量dk:第k年投入高负荷运行的
机器数;
状态转移方程:xk+1=0.7dk+0.9(xk-dk)
决策允许集合:Dk(xk)={dk|0dkxk}
阶段指标:vk(xk ,dk)=8dk+5(xk-dk)
104
终端条件:f6(x6)=0
机器负荷分配问题
递推方程:
fk(xk)=max{vk(xk,dk)+fk+1(xk+1)}
=
dkDk(xk)
max{8dk+5(xk- dk)+fk+1[0.7dk+0.9(xk-dk)]}
0dkxk
根据题意,本题的决策允许集合应该是
一个整数集合,但由于决策允许集合中可取
的决策数量很大,一一列举计算量很大,不
妨认为状态变量和决策变量都是连续的,得
到最优解后,再作取整处理。
105
机器负荷分配问题
f5(x5)=max{8d5+5(x5-d5)+f6(x6)}
0d5x5
=max{3d5+5x5}=8x5,
0d5x5
d5*=x5
f4(x4)=max{8d4+5(x4-d4)+f5(x5)}
0d4x4
=max{8d4+5(x4-d4)+8x5}
0d4x4
d4)]}
=max{8d4+5(x4-d4)+8[0.7d4+0.9(x40d4x4
=max{1.4d4+12.3x4}=13.7x4,
d4*=x4
0d4x4
106
机器负荷分配问题
f3(x3)=max{8d3+5(x3-d3)+f4(x4)}
0d3x3
=max{8d3+5(x3-d3)+13.7x4}
0d3x3
=max{8d3+5(x3-d3)+13.7[0.7d3+0.9(x3-d3)]}
0d3x3
=max{0.28d3+17.24x3}=17.52x3,
d3*=x3
0d3x3
107
机器负荷分配问题
f2(x2)=max{8d2+5(x2-d2)+f3(x3)}
0d2x2
=max{8d2+5(x2-d2)+17.52x3}
0d2x2
=max{8d2+5(x2-d2)+17.52[0.7d2+0.9(x2-d2)]}
0d2x2
=max{-0.504d2+20.77x2}=20.77x2,d2*=0
0d2x2
108
机器负荷分配问题
f1(x1)=max{8d1+5(x1-d1)+f2(x2)}
0d1x1
=max{8d1+5(x1-d1)+20.77x2}
0d1x1
=max{8d1+5(x1-d1)+20.77[0.7d1+0.9(x1-d1)]}
0d1x1
=max{-0.05d1+23.69x1}=23.69x1,d1*=0
0d1x1
109
机器负荷分配问题
由此可以得到:
 f1(x1)=23.69x1,
d1*=0
 f2(x2)=20.77x2,
d2*=0
 f3(x3)=17.52x3,
d3*=x3
 f4(x4)=13.60x4,
d4*=x4
 f5(x5)=8x5
d5*=x5
用x1=1000代入,得到五年最大产量为
 f1(x1)=f1(1000)=23690
110
机器负荷分配问题
每年投入高负荷运行的机器数以每年初完
好的机器数为:
 x1=1000
 d1*=0,
x2=0.7d1+0.9(x1-d1)=900
 d2*=0, x3=0.7d2+0.9(x2-d2)=810
 d3*=x3=810, x4=0.7d3+0.9(x3-d3)=567
 d4*=x4=567, x5=0.7d4+0.9(x4-d4)=397
 d5*=x5=397, x6=0.7d5+0.9(x5-d5)=278
111
机器负荷分配问题
在这个例子中,状态变量的终端值x6
是未加约束的,如果要求在第五年末(即
第六年初)完好的机器数不少于500台,这
时决策变量d5的决策允许集合将成为:
D5(x5)={d5|0.7d5+0.9(x5-d5)500, d50}
即 0.9x5-0.2d5500
d50
或 0d54.5x5-2500
容易想象,这时的最大产量将比x6是
自由的情况下小。

这个例子可以推广到一般情况。设
高负荷生产时机器的完好率为 k1 ,单台
产量为p1;低负荷完好率为k2,单台产量
为p2。若有t满足:
112
机器负荷分配问题
n  ( t 1)
n t
p

p
i
i
1
2
k1 
  k1

p1 (k 2  k1 ) i 0
i 0
则从1—t-1年,年初将全部完好机器
投入低负荷运行,从t—n年,年初将
全部完好机器投入高负荷运行,这样
的决策,将使总产量达到最大。
113
生 产 库 存 问 题
114
生 产 库 存 问 题
例5.9:一个工厂生产某种产品,17月份生产成本和产品需求量的变化情
况如下表:
月份(k)
生产成本(ck )
需求量(rk )
1
2
3
4
5
6
7
11 18 13 17 20 10 15
0
8
5
3
2
7
4
为了调节生产生产和需求,
工厂设
有一个产品仓库,库容量 H=9。已知期
初库存量为 2,要求期末(七月低)库
存量为 0。
每个月生产的产品在月末入
库,月初根据当月需求发货。求七个
月的生产量,能满足各月的需求,并
使生产成本最低。
115
生 产 库 存 问 题
阶段k:月份,k=1,2,…,7,8;
 状态变量xk:第k个月初(发货以前)的库存量;
 决策变量dk:第k个月的生产量;
 状态转移方程:xk+1=xk-rk+dk;
 决策允许集合:
 Dk(xk)={dk | dk0, rk+1xk+1H }
={dk | dk0, rk+1xk-rk+dkH };
 阶段指标:vk(xk ,dk)=ckdk;
 终端条件:f8(x8)=0,
x8=0;

116
生 产 库 存 问 题
递推方程:
fk(xk)=min{vk(xk ,dk)+fk+1(xk+1)}
dkDk(xk)
=min{ckdk+fk+1(xk-rk+dk)}
dkDk(xk)
 对于k=7
 因为 x8=0
有
d7=0
 递推方程为
 f7(x7)=min{c7d7+f8(x8)}=0
d7=0
117
生 产 库 存 问 题
对于k=6
因为
d7=0,所以 x7=r7=4
而
x6-r6+d6=x7=4
因此有 d6=x7+r6-x6=4+7-x6=11-x6
也是唯一的决策。因此递推方程
为:
f6(x6)=min{c6d6+f7(x7)}
d6=11-x6
=10d6=10(11-x6)=110-10x6
118
生 产 库 存 问 题
对于k=5
f5(x5)=min{c5d5+f6(x6)} d5D5(x5)
=min{20d5+110-10x6} d5D5(x5)
=min{20d5+110-10(x5-r5+d5)}
d 5 D 5 ( x 5 )
=min{20d5+110-10(x5-2+d5)}
d 5 D 5 ( x 5 )
=min{10d5-10x5+130}
d 5  D5( x5)
D5(x5) ={d5| d50, r6x5-r5+d5H }
={d5|d50, r6+r5-x5d5H+r5-x5}
={d5| d50, 9-x5d511-x5}
119
生 产 库 存 问 题
因为x5H=9,因此9-x50,决策允
许集合可以简化为
D5(x5)={d5| 9-x5d511-x5}
递推方程成为
f5(x5)=min{10d5-10x5+130}
9-x5d511-x5
=10(9-x5)-10x5+130
=220-20x5
d5*=9-x5
120
生 产 库 存 问 题
对于k=4
f4(x4)=min{c4d4+f5(x5)}
d4D4(x4)
=min{17d4+220-20x5}
d4D4(x4)
=min{17d4+220-20(x4-r4+d4)}
d4D4(x4)
=min{17d4+220-20(x4-3+d4)}
d4D4(x4)
=min{-3d4-20x4+280}
d4D4(x4)
121
生 产 库 存 问 题
D4(x4)={d4| d40, r5x4-r4+d4H}
={d4| d40, r5+r4-x4d4H+r4-x4}
={d4| d40, 5-x4d412-x4}
={d4| max[0,5-x4]d412-x4}
由于 在f4(x4)的表达式中d4的系数是-3,
因此d4在决策允许集合中应取集合中的
最大值,即d4=12-x4
由此 f4(x4)=-3(12-x4)-20x4+280
=-17x4+244
122
生 产 库 存 问 题
对于k=3
f3(x3)=min {c3d3+f4(x4)} d3D3(x3)
=min {13d3+244-17x4} d3D3(x3)
=min {13d3+244-17(x3-r3+d3)}
d3D3(x3)
=min {-4d3-17x3+329} d3D3(x3)
D3(x3)={d3| d30,r4x3-r3+d3H}
={d3| d30,r4+r3-x3d3H+r3-x3}
={d3| d30,8-x3d314-x3}
={d3| max[0,8-x3]d314-x3}
由此 f3(x3)=-4(14-x3)-17x3+329
=-13x3+273,
d3*=14-x3
123
生 产 库 存 问 题
对于k=2
f2(x2)=min{c2d2+f3(x3)} d2D2(x2)
=min{18d2+273-13x3} d2D2(x2)
=min{18d2+273-13(x2-r2+d2)}
d2D2(x2)
=min{18d2+273-13(x2-8+d2)}
d2D2(x2)
=min{5d2-13x2+377} d2D2(x2)
D2(x2)={d2|d20,r3x2-r2+d2H}
={d2|d20,r3+r2-x2d2H+r2-x2}
={d2|d20,13-x2d217-x2}
124
生 产 库 存 问 题
因为 13-x2>0
所以 d2(x2)={d2|13-x2d217-x2}
由此 f2(x2)=5(13-x2)-13x2+377
=-18x2+442,
d2*=13-x2
125
生 产 库 存 问 题
对于k=1
f1(x1)=min{c1d1+f2(x2)} d1D1(x1)
=min{11d1+442-18x2} d1D1(x1)
=min{11d1+442-18(x1-r1+d1)}
d1D1(x1)
=min{11d1+442-18(x1-0+d1)}
d1D1(x1)
=min{-7d1-18x1+442}
d1D1(x1)
D1(x1)={d1|d10,r2x1-r1+d1H}
={d1|d10,r2+r1-x1d1H+r1-x1}
={d1|d10,8-x1d19-x1}
126
生 产 库 存 问 题
根据题意 x1=2
所以 D1(x1)={d1| 6d17}
由此 d1=7
f1(x1)=-7d1-18x1+442
=-7×7-18×2+442
=357
将以上结果总结成下表:
k
ck
rk
xk
dk
1
2
3
4
5
6
7
11
18
13
17
20
10
15
0
8
5
3
2
7
4
2
9
5
9
9
7
4
7 13-x2=4 14-x3=9 12-x4=3 9-x5=0 11-x6=4 0
127
设 备 更 新 问 题
128
设 备 更 新 问 题
一台设备的价格为P,运行寿命为n年,
每年的维修费用是设备役龄的函数,记
为C(t),新设备的役龄为t=0。旧设备出
售的价格是设备役龄的函数,记为 S(t)。
在 n 年末,役龄为 t 的设备残值为 R(t)。
现有一台役龄为T的设备,在使用过程中,
使用者每年都面临“继续使用”或“更
新”的策略,
129
阶段 k:运行年份;
状态变量 xk :设备的役龄 t;
决策变量 dk :
R
dk  
K
(Re place )更新
( Keep )继续使用
状态转移方程:
x k 1
1
 
 xk  1
阶段指标:
dk  R
dk  K
 P  C (0)  S ( xk )
vk  
C ( x k )
 P  C (0 )  S (t )
 
C (t )
dk  R
dk  K
dk  R
dk  K
130
设 备 更 新 问 题
递推方程:
 P  C (0)  S ( xk )  f k 1 ( xk 1 )
f k ( xk )  min 
C ( xk )  f k 1 ( xk 1 )
 P  C (0)  S (t )  f k 1 (1)
 min 
C (t )  f k 1 (t  1)
dk  R
dk  K
dk  R
dk  K
终端条件: fn(t)=-R(t)
131
设 备 更 新 问 题
例5.10:设具体数据如下:
T
C(t)
S(t)
R(t)
0 1 2 3 4 5 6
10 13 20 40 70 100 100
-- 32 21 11 5 0 0
-- 25 17 8 0 0 0
7
-0
0
且 n=5,T=2,P=50
由上表开始,终端条件为:
f6 (1)=-25,f6 (2)=-17,f6 (3)=-8
f6 (4)=f6 (5)=f6 (6)=f6 (7)=0
132
对于 k=5:
P  C(0)  S (t )  f 6 (1)
f5 (t )  min

C(t )  f6 (t  1)

d5  R
d5  K
P  C(0)  S (1)  f6 (1)
50 10  32  (25)
f5 (1)  min
  min

13 (17)

C(1)  f6 (2)

3
 min   4 ,
 4
d5*  K
P  C(0)  S (2)  f6 (1)
50 10  21 (25)
f5 (2)  min
  min

20  (8)

C(2)  f6 (3)

14
 min   12,
12
d5*  K
133
 P  C (0)  S (3)  f 6 (1)
50  10  11  (25)
f 5 (3)  min 
  min 

40  0

C (3)  f 6 (4)

24
 min    24 ,
40
d 5*  R
 P  C (0)  S (4)  f 6 (1)
50  10  5  (25)
f 5 (4)  min 
  min 

70  0

C (4)  f 6 (5)

30
 min    30 ,
70
d 5*  R
 P  C (0)  S (5)  f 6 (1)
50  10  0  (25)
f 5 (5)  min 
  min 

100  0

C (5)  f 6 (6)

 35 
 min    35 ,
d 5*  R
134
P  C (0)  S (6)  f 6 (1)
50  10  0  (25)
f 5 (6)  min 
  min 

100  0

C (6)  f 6 (7)

 35 
 min    35 ,
100
d 5*  R
对于 k=4:
PC(0)  S(t)  f5(1)
f4(t)  min

C(t)  f5(t 1)

d4  R
d4  K
P  C(0)  S(1)  f5 (1)
50 10  32  (4)
f4 (1)  min
  min

C
(
1
)

f
(
2
)
5
1312



24
 min   24,
25
d4*  R
135
 P  C ( 0 )  S ( 2 )  f 5 (1) 
f 4 ( 2 )  min 

 C ( 2 )  f 5 ( 3)

50  10  21  (  4 ) 
 min 

 20  24

 35 
 min    35 ,
d 4*  R
 44 
 P  C (0)  S (3)  f 5 (1)
f 4 (3)  min 

C (3)  f 5 (4)

50  10  11  (4)
 min 

40  30

45
 min    45 ,
70
d R
*
4
136
P  C(0)  S (4)  f5 (1)
f 4 (4)  min

C(4)  f5 (5)

50 10  5  (4)
 min

70  35

 51 
 min   51,
105
d4*  R
P  C(0)  S(5)  f5 (1)
f4 (5)  min

C(5)  f5 (6)

5010 0  (4)
 min

100 35

 56 
 min   56,
135
d R
*
5
137
对于 k=3:
P  C(0)  S(t)  f4 (1)
f3 (t)  min

C(t)  f4 (t 1)

d3  R
d3  K
 P  C (0)  S (1)  f 4 (1)
f 3 (1)  min 

C (1)  f 4 (2)

50  10  32  24
 min 

13  35

52 
 min    48 ,
48
d K
*
3
138
 P  C (0)  S (2)  f 4 (1)
50  10  21  24
f 3 (2)  min 
  min 

20  45

C (2)  f 4 (3)

63
 min    63 ,
65
d 3*  R
 P  C (0)  S (3)  f 4 (1)
50  10  11  24
f 3 (3)  min 
  min 

40  51

C (3)  f 4 (4)

73
 min    73 ,
91
d R
*
3
 P  C (0)  S (4)  f 4 (1)
50  10  5  24
f 3 (4)  min 
  min 

70  56

C (4)  f 4 (5)

 79 
 min    79 ,
126
d 3*  R
139
对于 k=2:
 P  C ( 0 )  S (t )  f
(1) 
d2  R
f 2 (t )  min 

d2  K
C (t )  f 3 (t  1)

 P  C ( 0 )  S (1)  f 3 (1) 
f 2 (1)  min 

 C (1)  f 3 ( 2 )

 50  10  32  48 
 min 

13  63

 76 
*
*
 min    76 ,
d2  K
或者 d 2  R
 76 
 P  C ( 0 )  S ( 2 )  f 3 (1) 
50  10  21  48 
f 2 ( 2 )  min 
  min 

 20  73

 C ( 2 )  f 3 ( 3)

87 
 min    87 ,
93
3
d 2*  R
140
 P  C (0)  S (3)  f 3 (1)
50  10  11  48
f 2 (3)  min 
  min 

40  79

C (3)  f 3 (4)

 97 
 min    73
97,
119
d 2*  R
对于 k=1:
P  C (0)  S (t )  f 2 (1)
f1 (t )  min 

C (t )  f 2 (t  1)

d1  R
d1  K
 P  C (0)  S (2)  f 2 (1)
50  10  21  76
f1 (2)  min 
  min 

20  97

C (2)  f 2 (3)

115
 min    115 ,
117
d1*  R
141
设 备 更 新 问 题
由以上计算可知,本问题有两个
决策,它们对应的最小费用都是115。
这两个决策是
年份
1
2
3
4
5
决策 1 更新 更新 继续 更新 继续
决策 2 更新 继续 更新 更新 继续
142