运筹学 第八章 动态规划[全文]
第八章 动态规划
引 言
?动态规划是解决多阶段决策过程最优化的一种方法。 ?该方法是由美国数学家贝尔曼(R1>. E. Bellman)等人在20世 纪50年代初提出的。并成功地解决了生产管理、工程技术等方 面的许多问题,从而建立了运筹学的一个新的分支,即动态规 划。Bellman在1957年出版了《Dynamic Programming》一
,是动态规划领域中的第一本著作。
?动态规划与其他规划方法的不同之处在于:
动态规划是求解某类问题(多阶段决策问题)的一种方法, 是考察问题的一种途径,而不是一种特定算法。
因此,它不像线性规划那样有一个标准的数学表达式和明确 定义的一组(算法)规则,而必须对具体问题进行具体
处 理。因此,学习动态规划时,除对基本概念和基本方法正确理解 外,还应在一定经验积累基础上,以丰富的想像力去建立模型, 用创造性的技巧去求解。
提 纲
1 动态规划实例
2 动态规划的基本概念
3 动态规划的基本思想与基本原理
4 逆序解法与顺序解法
学习目标:
1 明确什么是多阶段的决策问题,特别要注意没有明显
的时段背景的问题如何化归为多阶段的决策问题。 1 动态规划实例
P156 例2 机器负荷分配问题(时间阶段问题)
◎设有某种机器设备,用于完成两类工作A和B。若第k年初完好 机器的数量为 xk ,若以数量 uk 用于A,余下的(xk,uk)用于 工作B,则该年的预期收入为 g( uk ) + h( xk,uk )。这里g( uk ) 和 h( xk,uk )是已知函数,且 g( 0 ) = h( 0 ) = 0。
◎又机器设备在使用中会有损坏,设机器用于工作A时,一年后 能继续使用的完好机器数占年初投入量的70%;若用于工作B 时,一年后能继续使用的完好机器数占年初投入量的90%。则在 下一年初能继续用于A、B工作的设备数为 xk+1=0.7uk+0.9(xk, uk)。
◎设第1年初完好的机器总数为1000台,问在连续5年内每年应如 何分配用于A、B两项工作的机器数,使5年的总收益为最大。 1 动态规划实例
?相应的问题称为多阶段决策问题。
?这是一个多阶段决策过程。
?该过程可以分为相互联系的若干阶段,每一阶段都需作出决
策,从而形成全过程的决策。
第1年
x1=1000
u1
第2年
x2=0.7u1+
0.9(x1-u1) u2
第3年
x3=0.7u2+
0.9(x2-u2) u3
第4年
u4
第5年
x5=0.7u4+
0.9(x4-u4) u5
x4=0.7u3+
0.9(x3-u3) x6
P156 例1 最短路线问题(空间阶段的例子)
设有一个旅行者从下图中的A点出发,途中要经过B、C、D等
处,最后到达终点E。从A到E有很多条路线可以选择,各点之间的距
离如图所示,问该旅行者应选择哪一条路线,使从A到达E的总的路程
为最短。
2
5
3
7
5
6
3
2
4
5
5
1
1
4
6
3
3
3
3
4
C1
C3
D1
A
B1
B3
B2
D2
E
C2
1
2
3
4
状态1
决策1
状态2
状态3
状态4
状态5
决策2
决策3
决策4
?可看成
4阶段
的决策
问题。
?从以上两个例子,可以知道
所谓多阶段决策问题是指这样的决策问题:其过程可分为若 干个相互联系的阶段,每一阶段都对应着一组可供选择的决策, 每一决策的选定既依赖于当前面临的状态,又影响以后总体的效 果。
当每一阶段的决策选定以后,就构成一个决策序列,称为一 个策略,它对应着一个确定的效果。多阶段决策问题就是寻找使 此效果最好的策略。
多阶段决策过程的特点
1.各阶段的决策相互关联
?多阶段决策过程最优化的目的,是要达到整个活动过程的总体 效果最优,而不是某个阶段“局部”的效果最优。因此,各个阶段 决策的选取不是任意确定的。
?前一个决策的选取决定了当前状态,当前状态进行决策后又影 响到下一阶段的状态和决策,以至于影响总体效果。所以决策者 在每个阶段决策时,不应仅考虑本阶段最优,还应考虑对最终目 标的影响,从而做出对全局而言是最优的决策。
?动态规划就是符合这一要求的一种最优化方法。
2.各个阶段的决策一般与“时间”有关
?动态规划方法与“时间”关系很密切,随着时间过程的发展而决 定各阶段的决策,从而产生一个决策序列,这就是“动态”的意 思。
?但是,一些与时间无关的静态问题,只要在问题中人为引 入“时间”因素,也可将其看成是多阶段的决策问题,用动态规划 方法去处理。
学习目标:
1 准确、熟练地掌握动态规划的基本概念、特别是状态
变量、决策变量、状态转移律、指标函数、基本方程
等。
2 动态规划的基本概念
?为了便于求解和表示决策及过程的发展顺序,而把所给问题恰 当地划分为若干个相互联系又有区别的子问题,称之为多段决策 问题的阶段。一个阶段,就是需要作出一个决策的子问题。 ?通常,阶段是按决策进行的时间或空间上先后顺序划分的。 ?描述阶段的变量称为阶段变量,常记为k,k=1,2, „,n。 ?如本例可按空间分为4个
阶段来求解,
k=1, 2, 3, 4。
(1)阶段(stage)
?状态:每阶段初的客观条件。描述各阶段状态的变量称为状态 变量,常用xk表示第k阶段的状态。
(2)状态(state)
?例1中,状态就是某
阶段的出发位置。
x1
x2
x3
x4
x5
?按状态变量的取值是连续还是离散,可将动态规划问题分为离
散型和连续型。
?动态规划中的状态应满足无后效性(马尔科夫性):
所谓无后效性指系统到达某个状态前的过程的决策将不影响 到该状态以后的决策。〔指系统从某个阶段往后的发展,仅由本 阶段所处的状态及其往后的决策所决定,与系统以前经历的状态 和决策(历史)无关。过程的过去历史只能通过当前的状态去影 响它未来的发展〕
?例1中,当某阶段的状态已选定某个点时,从这个点以后的路 线只与该点有关,不受该点以前的路线的影响,所以满足状态的 无后效性。
?状态集合:状态变量 xk 的取值集合称为状态集合,状态集合 实际上是关于状态的约束条件。
?通常用Sk表示状态集合,xk??Sk。 ?第1阶段
S1={A};
?第2阶段具有3个状
态B1、B2和B3,故
S2={B1, B2, B3}。
?„„
x1
x2
x3
x4
x5
(3)决策(decision)
?当过程处于某一阶段的某状态时,可以做出不同的决定,从而
确定下一阶段的状态,这种决定称为决策。
?描述决策的变量称为决策变量,常用uk( xk )表示第k阶段当状
态处于xk时的决策变量,它是状态变量的函数。
?例1中,从第2阶段的
状态B1出发,可以选择
下一阶段的C1、C2、
C3。
?如我们决定选择C1,
则可表示为:u2( B1 ) = C1。
B1
C1
C2
C3
x2
?决策集合:第k阶段当状态处于xk时决策变量uk( xk )的取值范
称为决策集合,常用Dk( xk ) 表示。 ?例1中,从第2阶段的
状态B1出发,可以选择
下一阶段的C1、C2、
C3。
?即 D2( B1 ) = { C1、
C2、C3 };
B1
C1
C2
C3
?决策集合实际上是决策的约束条件,uk( xk ) ? Dk( xk ) 。
?小结
阶段 k、
状态 xk、
状态集合 Sk、
决策 uk( xk )、
决策集合 Dk( xk )。
x1
x2
x3
x4
x5
(4)状态转移律(方程)
?状态转移律:从xk的某一状态值出发,当决策变量uk(xk) 的
取值决定后,下一阶段状态变量xk+1的取值也随之确定。描述
从 xk 转变为 xk+1 的规律称为状态转移规律(方程)。 ?从第2阶段的状态
B1出发,如我们决
定选择C2(也即确
定了下一阶段的状
态)。
B1
C2
B1
C2
?上例中,
u2( B1 ) = C2 ?状态转移律为:
xk+1 = uk( xk ) ?一般来说,下一阶段状态变量xk+1的取值是上阶段的某一状态
变量xk和上阶段决策变量uk(xk)的函数,记为
xk+1=Tk( xk, uk(xk) )
1
2
n
??
x1
u1
x2
u2
x3
xn
un
xn+1
(5)策略(policy)和子策略(subpolicy) ?策略:由依次进行的n个阶段决策构成的决策序列就构成一个
策略,用 p1n{ u1(x1), u2(x2), „, un(xn) } 表示。
2
5
3
7
5
6
3
2
4
5
5
1
1
4
6
3
3
3
3
4
C1
C3
D1
A
B1
B3
B2
D2
E
C2
?本例中,如p14{ u1(A)=B1, u2(B1) = C2, u3(C2) = D1,
u4(D1) = E } 表示其中一个策略,其总距离为2+5+6+3=16。 ?策略集合:在实际问题中,由于在各个阶段可供选择的决策有 许多个,因此,它们的不同组合就构成了许多可供选择的决策序 列(策略),由它们组成的集合,称为策略集合,记作 P1n。 ?从策略集合中,找出具有最优效果的策略称为最优策略。 ?子策略:从k阶段到第n阶段,依次进行的阶段决策构成的 决策序列称为k部子策略,表示为
pkn = { uk(xk), uk+1(xk+1), …, un(xn) } ?如从第3阶段的C2
状态开始的一个子策
略可表示:
p34={u3(C2) = D1,
u4(D1) = E }
C2
(6)指标函数
?用来衡量策略或子策略或决策的效果的某种数量指标,就称 为指标函数。
?它是定义在全过程或各子过程或各阶段上的确定数量函数。 对不同问题,指标函数可以是诸如费用、成本、产值、利润、 产量、耗量、距离、时间、效用,等等。
阶段
指标函数
过程
指标函数
?阶段指标函数:是指第 k 阶段从状态 xk 出发,采取决策 uk
时产生的效益,用 vk(xk, uk) 表示。
?例1中,指标函数是
距离。
?如 v2(B1, C2) 表示
由B1 出发,采用决策
到C2 点的两点间距
离,即
v2( B1, C2) = 5。
B1
C2
?过程指标函数:是指从第 k 阶段的某状态 xk 出发,采取子策 略 pkn 时所得到的效益,记作
Vkn( xk, uk, xk+1, uk+1, … , xn ) ?例1中,如V34( C2,
u3(C2)=D1, D1, u4(D1)= E, E ) = 6+3 =9
C2
?过程指标函数Vkn通常是描述所实现的全过程或k后部子过程效 果优劣的数量指标,它是由各阶段的阶段指标函数vk(xk,uk)累积形 成的。
(1)可分性:适于用动态规划求解的问题的过程指标函数(即目 标函数),必须具有关于阶段指标的可分离形式,即对于后部子 过程的指标函数可以表示为:
Vkn( xk, uk, xk+1, uk+1, ??? , xn ) =
vk(xk, uk) ?? vk+1(xk+1, uk+1) ?? ??? ?? vn(xn, un)
式中,??表示某种运算,可以是加、减、乘、除、开方等。 ?多阶段决策问题中,常见的目标函数形式之一是取各阶段效应
之和的形式,即:
?有些问题,如系统可靠性问题,其目标函数是取各阶段效应的
连乘积形式,如:
总之,具体问题的目标函数表达形式需要视具体问题而定。 Vkn = ?vi(xi, ui)
i=k
n
(8.3a)
Vkn = ?vi(xi, ui)
i=k
n
(8.3b)
(2)可递推:过程指标函数Vkn要满足递推关系,即 可递推
Vkn( xk, uk, xk+1, uk+1, … , xn )
,Φk[ xk, uk, V(k+1)n(xk+1, uk+1, „ , xn ) ] , vk(xk,uk) ?? vk+1(xk+1, uk+1) ?? ??? ?? vn(xn,un)
, vk(xk,uk) ??
V(k+1)n( xk+1, uk+1, … , xn )
?最优指标函数:表示从第 k 阶段状态为 xk 时采用最优策略
pkn*到过程终止时的最佳效益值。记为 fk( xk )。
fk( xk ) = Vkn( xk , pkn*) = opt Vkn( xk , pkn )
?例1中,如 f3( C2 ) =
3+4 = 7。
其中 opt 可根据具体情况取max 或min。
C2
动态规划的目标,
◎最优解:最优策略 p1n
◎最优值:最优指标 f1(A)
?多阶段决策问题的数学模型 综上所述,适于应用动态规划方 法求解的一类多阶段决策问题的数学模型呈以下形式:
f1 = opt V1n( x1 , p1n ) 最优指标函数
xk+1=Tk( xk, uk(xk) ) 状态转移方程
uk?Dk 决策变量
xk?Sk 状态变量
k=1,2,„,n 阶段变量 st.
?上述数学模型说明了对于给
定的多阶段决策过程,求取一
个(或多个)最优策略或最优决策
序列{ u1, u2, „, un },使之既满
足左式给出的全部约束条件,
又使左式所示的目标函数取得
极值,并且同时指出执行该最
优策略时,过程状态演变序列
即是最优路线。
小结:
概念 :阶段变量k、状态变量xk、决策变量uk; 动态规划本质上是多阶段决策过程;
效益
指标函数形式:和、积
无后效性
可递推
方程 :状态转移方程
xk+1=Tk( xk, uk(xk) ) 指标 :
Vkn( xk, uk, xk+1, uk+1, … , xn )
fk( xk ) = Vkn( xk , pkn*) = opt Vkn( xk , pkn )
Vkn( xk, uk, xk+1, uk+1, … , xn )
,Φk[ xk, uk, V(k+1)n(xk+1, uk+1, … , xn ) ]
解多阶段决策过程问题,求出
最优策略,即最优决策序列
最优轨线,即执行最优策略时的状态序列 { u1*, u2*, … , un* }
{ x1*, x2*, … , xn* }
最优目标函数值
p1n?P1n
f1( x1 ) = V1n( x1 , p1n*) = opt V1n( x1 , p1n )
1.划分阶段
2.正确选择状态变量
3.确定决策变量及允许决策集合
4.确定状态转移方程
5.确定阶段指标函
数和最优指标函
数,建立动态规划
基本方程
划分阶段是运用动态规划求解多阶段决策问题的第一 步,在确定多阶段特性后,按时间或空间先后顺序, 将过程划分为若干相互联系的阶段。对于静态问题要 人为地赋予“时间”概念,以便划分阶段。 建立动态规划模型的步骤
选择状态变量既要能确切描述过程演变又要满足无后 效性,而且各阶段状态变量的取值能够确定。 通常选择所求解问题的关键变量作为决策变量,同时 要给出决策变量的取值范围,即确定允许决策集合。 根据k 阶段状态变量和决策变量,写出k+1阶段状态变量,状态转移方程应当具有递推关
系。
阶段指标函数是指第k 阶段的收益,最优指标函数是 指从第k 阶段状态出发到第n 阶段末所获得收益的最
优值,最后写出动态规划基本方程。
以上五步是建立动态规划数学模型的一般步骤。 由于动态规划模型与线性规划模型不同,动态规划模 型没有统一的模式,建模时必须根据具体问题具体分 析,只有通过不断实践总结,才能较好掌握建模方法 与技巧。
下面我们看一个具体的例子
P156 例2 机器负荷分配问题(时间阶段问题)
P156 例2 机器负荷分配问题(时间阶段问题)
◎设有某种机器设备,用于完成两类工作A和B。若第k年初完好 机器的数量为 xk ,若以数量 uk 用于A,余下的(xk,uk)用于 工作B,则该年的预期收入为 g( uk ) + h( xk,uk )。其中 g( uk ) , 8uk , h( xk,uk ) = 5(xk,uk)。
◎又机器设备在使用中会有损坏,设机器用于工作A时,一年后 能继续使用的完好机器数占年初投入量的70%;若用于工作B 时,一年后能继续使用的完好机器数占年初投入量的90%。则在 下一年初能继续用于A、B工作的设备数为 xk+1=0.7uk+0.9(xk, uk)。
◎设第1年初完好的机器总数为1000台,问在连续5年内每年应如 何分配用于A、B两项工作的机器数,使5年的总收益为最大。 1.划分阶段
按年度来划分阶段,k=1,2,3,4,5
2.正确选择状态变量
状态变量xk为第k年度初拥有的完好机器数量
3.确定决策变量及允许决策集合
决策变量uk为第k年度中分配于A工作的机器数量,则xk,uk为 用于B工作的机器数量。
第k阶段决策集合Dk( xk ) = { uk | 0?uk?xk } ◎这里xk和uk均取连续变量,它们的非整数值可以这样理 解,如xk=0.6,就表示一台机器在第k年度中正常工作时间只 占6/10;uk=0.3,就表示一台机器在该年度只有3/10的时间能 正常用于A工作。
4.确定状态转移方程
状态转移方程为 xk+1=0.7uk+0.9(xk,uk)
5.确定阶段指标函数和最优指标函数,建立动态规划基本方程 指标函数为
V1,5 = ?vi(xi, ui)
i=1
5
= ? g( ui ) + h( xi,ui )
i=1
5
令最优指标函数fk( xk ) 表示由资源量xk出发,从第k年开始到 第5年结束时所取得的最大预期收入。因而有:
fk( xk ) =
max{ }
Vk,5 = ?vi(xi, ui)
i=k
5
= ? 8ui + 5( xi,ui )
i=k
5
= ? 8ui +5(xi,ui)
i=1
5
学习目标:
1 掌握最优化原理的
2 掌握逆序解法
3 动态规划的基本思想与基本原理
多阶段决策过程的最优化一般有三种思路求解
1.全枚举法或穷举法:它的基本思想是列举出所有可能发生的 方案和结果,再对它们一一进行比较,求出最优方案。
可以计算:从A到E的路程可分为4个阶段。第一段走法有3 种,第二段走法有3种,第三段走法有2种,第四段走法仅1种, 共有3×3×2×1,18条可能的路线,分别算出各条路线的距离, 最后进行比较,可知最优路线是A?B3?C2 ?D2?E,最短距离 是11。
用穷举法求最优路
线的计算
工作量将会十分庞
大,而且
其中包含着许多重复
计算。
2.局部最优路径法:某人从k点出发,并不顾及全线是否最短, 只是选择当前最短途径,“逢近便走”,错误地以为局部最优会 致整体最优,在这种想法指导下,所取决策必是
A?B1?C2?D2?E,全程长度是14;显然,这种方法的结果常 是错误的。
?小结:
◎全枚举法虽可找出最优方案,但不是个好算法,
◎局部最优法则完全是个错误方法,
◎只有动态规划方法属较科学有效的算法
3. 贝尔曼最优化原理(动态规划方法)
?作为一个全过程的最优策略具有这样的性质:对于最优策略 过程中的任意状态而言,无论其过去的状态和决策如何,余下 的诸决策必构成一个最优子策略。(一个最优策略的子策略总 是最优的)
?作该原理的具体解释是,若某一全过程最优策略为:
p1n*( x1 )={ u1*(x1), ???, uk*(xk), uk+1*(xk+1), ???, un*(xn) }
则对上述策略中所隐含的任一状态(xk)而言,第k子过程上 对应于 xk 的最优策略必然包含在上述全过程最优策略p1n*中, 即为
pkn*( xk )={ uk*(xk), uk+1*(xk+1), ???, un*(xn) }
C1
D1
A
B3
D2
E
C2
?反证法进行证明
?最优性原理在最短路线中的应用
在最短路线中,若找到了A?B3?C2?D2?E是由A到E的最 短路线,则B3?C2?D2?E必是由B3出发到E点的所有可能选择的 不同路线中的最短路线。(一个最优策略的子策略总是最优的) 4.函数基本方程
基于这个原理,提出了一种逆序递推法;该法的关键在于给 出一种递推关系。一般把这种递推关系称为动态规划的函数基本 方程。
对于求最小的加法的基本方程为(如例1):
fk( xk ) = min{ vk(xk, uk ) + fk+1(xk+1) }
fn+1( xn+1 ) = 0
边界条件
uk?Dk
?用函数基本方程逆推求解是常用的方法:
首先要有效地建立动态规划模型,
然后再递推求解,
最后得出结论。
?正确地建立一个动态规划模型,是解决问题的关键。 5.标号法(只适用于一类最优路线问题的特殊解法)
标号法是借助网络图通过分段标号来求出最优路线的一种 简便、直观的方法。通常标号法采取“逆序求解”的方法来寻找问 题的最优解,即从最后阶段开始,逐次向阶段数小的方向推算, 最终求得全局最优解。
行进方向
动态规划寻优途径
E
A
?标号法的一般步骤:
(1)给最后一段标号,该段各状态(即各始点)到终点的距 离用数字分别标在各点上方的方格内,并用粗箭线连接各点和终 点。
(2)向前递推,给前一阶段的各个状态标号。每个状态上方 方格内的数字表示该状态到终点的最短距离。将刚标号的点沿着 最短距离用粗箭线连接起来,表示出各刚标号的点到终点的最短 路线。
(3)逐次向前递推,直到将第一阶段的状态(即起点)标 号,起点方格内的数字就是起点到终点的最短距离,从起点开始 连接终点的粗箭线就是最短路线。
第(1)步 k=5
? f5( x5 ) = f5( E ) = 0
这是边界条件
[0]
E
fk( xk ) 表示从第 k 阶段状态 xk
到 E 点的的最短距离
第(2)步 k=4
?状态变量 x4 可取两种状态 D1、D2。
◎由D1到终点E只有一条路线,路长为3,即 f4( D1 ) = 3。
◎同理, f4( D2 ) = 4 。
[3]
?表示由D1点至E
点的最短路长
为3。
[4]
[0]
D1
第(3)步 k=3
?状态变量 x3 可取三个值:C1、C2、C3。
?由C1到终点E有2条路线,分别为经过D1、D2到达E点(由D1、D2到达
E点的最短路长在第一步已计算得出),需加以比较,取其中最短的。 ?路线1
v3(C1, D1)+ f4(D1)
= 1+3=4
?路线2
v3(C1, D2)+ f4(D2)
= 4+4=8
[3]
[4]
?则由C1到终点E的最短距离
f3( C1 ) = min{v3(C1, D1)+ f4(D1),
v3(C1, D2)+ f4(D2) } = 4
[4]
C1
第(3)步 k=3
?由C2到终点E有2条路线,分别为经过D1、D2到达E点(由D1、D2到达
E点的最短路长在第一步已计算得出),需加以比较,取其中最短的。 ?路线1
v3(C2, D1)+ f4(D1)
= 6+3=9
?路线2
v3(C2, D2)+ f4(D2)
= 3+4=7
[3]
[4]
?则由C2到终点E的最短距离
f3( C2 ) = min{v3(C2, D1)+ f4(D1),
v3(C2, D2)+ f4(D2) } = 7
C2
[7]
[4]
第(3)步 k=3
?由C3到终点E有2条路线,分别为经过D1、D2到达E点(由D1、D2到达 E点的最短路长在第一步已计算得出),需加以比较,取其中最短的。 ?路线1
v3(C3, D1)+ f4(D1)
= 3+3=6
?路线2
v3(C3, D2)+ f4(D2)
= 3+4=7
[3]
[4]
?则由C3到终点E的最短距离
f3( C3 ) = min{v3(C3, D1)+ f4(D1),
v3(C3, D2)+ f4(D2) } = 6
C3
[7]
[4]
[6]
第(4)步 k=2
?状态变量 x2 可取三个值:B1、B2、B3。
?由B1到终点E,可分别经过C1、C2、C3到达E点(由C1、C2、C3到E点
的最短距离在第二步已计算出),需加以比较,取其中最短的。 ?路线1
v2(B1, C1)+ f3(C1)
= 7+4=11
?路线2
v2(B1, C2)+ f3(C2)
= 5+7=12
?路线3
v2(B1, C3)+ f3(C3)
= 6+6=12
[3]
[4]
?则由B1到终点E的最短距离
f2( B1 ) = min{v2(B1, C1)+ f3(C1), v2(B1, C2)+ f3(C2)
v2(B1, C3)+ f3(C3) } = 11
[4]
B1
[7]
[6]
[11]
第(4)步 k=2
?由B2到终点E,可分别经过C1、C2、C3到达E点(由C1、C2、C3到E点
的最短距离在第二步已计算出),需加以比较,取其中最短的。 ?路线1
v2(B2, C1)+ f3(C1)
= 3+4=7
?路线2
v2(B2, C2)+ f3(C2)
= 2+7=9
?路线3
v2(B2, C3)+ f3(C3)
= 4+6=10
[3]
[4]
?则由B2到终点E的最短距离
f2( B2 ) = min{v2(B2, C1)+ f3(C1), v2(B2, C2)+ f3(C2)
v2(B2, C3)+ f3(C3) } = 7
[4]
B2
[7]
[6]
[11]
[7]
第(4)步 k=2
?由B3到终点E,可分别经过C1、C2、C3到达E点(由C1、C2、C3到E点
的最短距离在第二步已计算出),需加以比较,取其中最短的。 ?路线1
v2(B3, C1)+ f3(C1)
= 5+4=9
?路线2
v2(B3, C2)+ f3(C2)
= 1+7=8
?路线3
v2(B3, C3)+ f3(C3)
= 5+6=11
[3]
[4]
?则由B3到终点E的最短距离
f2( B3 ) = min{v2(B3, C1)+ f3(C1), v2(B3, C2)+ f3(C2)
v2(B3, C3)+ f3(C3) } = 8
[4]
B3
[7]
[6]
[11]
[7]
[8]
第(5)步 k=1
?状态变量 x1 只取一个值:A。
由A到终点E,可分别经过B1、B2、B3到达E点(由B1、B2、B3到E点
的最短距离在第三步已计算出),需加以比较,取其中最短的。
?经过B1点
v1(A, B1)+ f2(B1)
= 2+11=13
?经过B2点
v1(A, B2)+ f2(B2)
= 5+7=12
?经过B3点
v1(A, B3)+ f2(B3)
= 3+8=11
[3]
[4]
?则由A到终点E的最短距离
f1( A ) = min{v1(A, B1)+ f2(B1), v1(A, B2)+ f2(B2)
v1(A, B3)+ f2(B3) } = 11
[4]
A
[7]
[6]
[11]
[7]
[8]
[11]
?从下图反推可得到最优路线。
[3]
[4]
[4]
A
[7]
[6]
[11]
[7]
[8]
[11]
?因此,由A到终点E的最优解为:
A?B3?C2?D2?E
?由点A到终点E的最优值为11。
?小结:在求解的各阶段,都利用了第k阶和第k+1段的如下关
系: fk( xk ) = min{ vk( xk, uk ) + fk+1( xk+1 ) } (1)
f5( x5 = E ) = 0
(2)
?上述递推关系
称为动态规划的
基本方程。
?其中(2)式称
为边界条件。
[3]
[4]
[4]
A
[7]
[6]
[11]
[7]
[8]
[11]
动态规划方法的优点
1.减少计算量
动态规划方法减少了计算量,而且随着阶段数的增加,计 算量将大大减少。
2.丰富了计算结果
在动态规划的解法中,得到的不仅仅是由A点出发到E点的 最短路线及相应距离,而且得到了从所有中间点出发到E点的最 短路线及相应距离。这对于许多实际问题来说是很有用的,有 利于帮助分析所得的结果。
动态规划方法的基本思想
1. 将多阶段决策过程划分阶段,恰当地选择状态变量、决策变
量,定义最优指标函数,从而把问题化成一簇同类型的子问
题,然后逐个求解。
2. 求解时从边界条件开始,逆过程方向行进,逐段递推寻优,
在每一个子问题求解时,都要使用它前面已求出的子问题的
最优结果,最后一个子问题的最优解,就是整个问题的最优
解。
学习目标:
1 了解顺序解法
4 逆序解法和顺序解法
?动态规划的求解有两种基本方法
◎逆序解法(后向动态规划方法)
如例1所使用的方法,寻优的方向与多阶段决策过程的实际 行进方向相反,从最后一段开始计算逐段前推,求得全过程的 最优策略。
◎顺序解法(前向动态规划方法)
与逆序解法相反,顺序解法的寻优的方向与过程的行进方向 相同,计算时从第一段开始逐段向后递推,计算后一段要用到 前一段的求优结果,最后一段计算的结果就是全过程的最优结 果。
?我们再次用例1来说明顺序解法。
?由于此问题的始点A与终点E都是固定的,计算由A点到E点 的最短路线与由E点到A点的最短路线没有什么不同。 ?若设
fk( xk+1 ) 表示从起点A到第k阶段末状态点xk+1的最短距离
就可以由前向后逐步求出起点A到各阶段末状态点的最短距 离,最后求出起点A到E点的最短距离及路线。
动态规划的目标:最优指标 f4( E )
第一步 k=0
? f0( x1 ) = f0( A ) = 0
这是边界条件
[0]
A
fk( xk+1 ) 表示从起点A到第k阶段
末状态点xk+1的最短距离
第二步 k=1
[2]
[3]
[5]
[0]
?按 f1( x2 ) 的定义有
f1( B1 ) = v( B1, A ) + f0( A ) = 2
f1( B2 ) = v( B2, A ) + f0( A ) = 5
f1( B3 ) = v( B3, A ) + f0( A ) = 3
B1
B2
B3
第三步 k=2
[2]
[3]
[5]
[0]
?按 f2( x3 ) 的定义有
? v( C1, B1 ) + f1( B1 ) = 7+2 = 9
f2( C1 ) = min v( C1, B2 ) + f1( B2 ) = 3+5 = 8
v( C1, B3 ) + f1( B3 ) = 5+3 = 8 ?u2( C1 ) = B2
或B3
[8]
C1
?状态转移方程:
xk=Tk( xk+1, uk )
第三步 k=2
[2]
[3]
[5]
[0]
?按 f2( x3 ) 的定义有
? v( C2, B1 ) + f1( B1 ) = 5+2 = 7
f2( C2 ) = min v( C2, B2 ) + f1( B2 ) = 2+5 = 7
v( C2, B3 ) + f1( B3 ) = 1+3 = 4 ?u2( C2 ) = B3
[8]
[4]
C2
第三步 k=2
[2]
[3]
[5]
[0]
?按 f2( x3 ) 的定义有
? v( C3, B1 ) + f1( B1 ) = 6+2 = 8
f2( C3 ) = min v( C3, B2 ) + f1( B2 ) = 4+5 = 9
v( C3, B3 ) + f1( B3 ) = 5+3 = 8 [8]
[4]
?u2( C3 ) = B1
或B3
[8]
C3
第四步 k=3
[2]
[3]
[5]
[0]
?按 f3( x4 ) 的定义有
? v( D1, C1 ) + f2( C1 ) = 1+8 = 9
f3( D1 ) = min v( D1, C2 ) + f2( C2 ) = 6+4 = 10
v( D1, C3 ) + f2( C3 ) = 3+8 = 11 [8]
[4]
?u3( D1 ) = C1
[8]
[9]
D1
第四步 k=3
[2]
[3]
[5]
[0]
?按 f3( x4 ) 的定义有
? v( D2, C1 ) + f2( C1 ) = 4+8 = 12
f3( D2 ) = min v( D2, C2 ) + f2( C2 ) = 3+4 = 7
v( D2, C3 ) + f2( C3 ) = 3+8 = 11 [8]
[4]
?u3( D2 ) = C2
[8]
[9]
[7]
D2
第五步 k=4
[2]
[3]
[5]
[0]
?按 f4( x5 ) 的定义有
v( E, D1 ) + f3( D1 ) = 3+9 = 12
f4( E ) = min v( E, D2 ) + f3( D2 ) = 4+7 = 11 [8]
[4]
?u4( E ) = D2
[8]
[9]
[7]
[11]
E
[2]
[3]
[5]
[0]
[8]
[4]
[8]
[9]
[7]
?即可得到最优路线。 ?因此,由A到终点E的最优解为:
A?B3?C2?D2?E ?由点A到终点E的最优值为11。
[11]
课堂练习
从A 地到D 地要铺设一条煤气管道,其中需经过两级中间站,两点之间的连线上的数字表示
距离,如图所示。问应该选择什么路线,使总距离最短,
A
B1
B2
C1
C2
C3
D
2
4
3
3
3
3
2
1
1
1
4
解:整个计算过程分三个阶段,从最后一个阶段开始
第一阶段(C ?D): C 有三条路线到终点D 。
显然有 f3 (C1 ) = 1 ; f3(C2 ) = 3 ; f3 (C3 ) = 4
A
B1
B2
C1
C2
C3
D
2
4
3
3
3
2
1
1
1
4
C1
C2
C3
第二阶段(B ?C): B 到C 有六条路线。
d( B1,C1 ) + f3 (C1 ) 3+1
f2 ( B1 ) = min d( B1,C2 ) + f3 (C2 ) = min 3+3
d( B1,C3 ) + f3 (C3 ) 1+4
4
= min 6 = 4
5
A
B1
B2
C1
C2
C3
D
2
4
3
3
3
3
2
1
1
1
4
B1
B2
d( B2,C1 ) + f3 (C1 ) 2+1
f2 ( B2 ) = min d( B2,C2 ) + f3 (C2 ) = min 3+3
d( B2,C3 ) + f3 (C3 ) 1+4
3
= min 6 = 3
5
A
B1
B2
C1
C2
C3
D
2
4
3
3
3
3
2
1
1
1
4
B1
B2
第三阶段( A ? B ): A 到B 有二条路线。
f1 (A) = min = min,6,7,=6
A
B1
B2
C1
C2
C3
D
2
4
3
3
3
3
2
1
1
1
4
A
d(A, B1 ), f2 ( B1 )
d(A, B2 ), f2 ( B2 )
(最短路线为A?B1?C1 ?D)
练习 P156 例2 机器负荷分配问题(时间阶段问题)
◎设有某种机器设备,用于完成两类工作A和B。若第k年初完好
机器的数量为 xk ,若以数量 uk 用于A,余下的(xk,uk)用于
工作B,则该年的预期收入为 g( uk ) + h( xk,uk )。其中
g( uk ) , 8uk , h( xk,uk ) = 5(xk,uk)。
◎又机器设备在使用中会有损坏,设机器用于工作A时,一年后
能继续使用的完好机器数占年初投入量的70%;若用于工作B
时,一年后能继续使用的完好机器数占年初投入量的90%。则在
下一年初能继续用于A、B工作的设备数为 xk+1=0.7uk+0.9(xk,
uk)。
◎设第1年初完好的机器总数为1000台,问在连续5年内每年应如
何分配用于A、B两项工作的机器数,使5年的总收益为最大。
?构造动态规划模型如下: 阶段k:运行年份(k = 1,2,???,6), 其中k=1表示第一年初,„,
依次类推;k=6表示第5年末(即第6年初)。 状态变量xk:第k年初完好的机器数(k=1,2, ???,4),其中x6表 示第5年末(即第6年初)的完好机器数。 决策变量uk:第k年度中分配于A工作的机器数量,则xk,uk为 用于B工作的机器数量。 状态转移方程:xk+1=0.7uk + 0.9( xk,uk ) 决策允许集合:Dk( xk ) = { uk | 0
?uk?xk } 阶段指标:vk( xk , uk ) = 8uk + 5( xk,uk ) 终端条件:f6( x6 ) = 0 递推方程:fk( xk ) = max{ vk( xk, uk ) + fk+1( xk+1 ) }
dk??Dk(xk)
=max{ 8uk+5(xk - uk)+fk+1[0.7uk+0.9(xk-uk)] }
0?dk?xk
◎这里xk和uk均取连续变量,它们的非整数值可以这样理
解,如xk=0.6,就表示一台机器在第k年度中正常工作时间只
占6/10;uk=0.3,就表示一台机器在该年度只有3/10的时间能
正常用于A工作。
f5(x5) = max{ 8u5+5(x5,u5) + f6( x6 ) }
0??u5??x5
u5*=x5
= max{ 3u5+5x5 }
0??u5??x5
= 8x5
f4(x4) = max{ 8u4+5(x4,u4) + f5( x5 ) }
0??u4??x4
=max{ 8u4+5(x4,u4)+8x5 }
0??u4??x4
状态转移方程:
xk+1=0.7uk + 0.9( xk,uk )
=max{ 8u4+5(x4,u4)+8[0.7u4+0.9( x4,u4 ) ]}
0??u4??x4
=max{ 1.4u4+12.2x4 }
0??u4??x4
u4*=x4
=13.6x4
f3(x3) = max{ 8u3+5(x3,u3) + f4( x4 ) }
0??u3??x3
=max{ 8u3+5(x3,u3)+13.6x4 }
0??u3??x3
状态转移方程:
xk+1=0.7uk + 0.9( xk,uk )
=max{ 8u3+5(x3,u3)+13.6[0.7u3+0.9( x3,u3 ) ]}
0??u3??x3
=max{ 0.28u3+17.22x3 }
0??u3??x3
u3*=x3
=17.5x3
f2(x2) = max{ 8u2+5(x2,u2) + f3( x3 ) }
0??u2??x2
=max{ 8u2+5(x2,u2)+17.5x3 }
0??u2??x2
状态转移方程:
xk+1=0.7uk + 0.9( xk,uk )
=max{ 8u2+5(x2,u2)+17.5[0.7u2+0.9( x2,u2 ) ]}
0??u2??x2
=max{ ,0.504u2+20.8x2 }
0??u2??x2
u2*= 0
=20.8x2
f1(x1) = max{ 8u1+5(x1,u1) + f2( x2 ) }
0??u1??x1
=max{ 8u1+5(x1,u1)+20.8x2 }
0??u1??x1
状态转移方程:
xk+1=0.7uk + 0.9( xk,uk )
=max{ 8u1+5(x1,u1)+20.8[0.7u1+0.9( x1,u1 ) ]}
0??u1??x1
=max{ ,0.05u1+23.7x1 }
0??u1??x1
u1*= 0
=23.7x1
由此可以得到:
f1(x1)=23.7x1, u1*=0
f2(x2)=20.8x2, u2*=0 f3(x3)=17.5x3, u3*=x3 f4(x4)=13.6x4, u4*=x4 f5(x5)=8x5 u5*=x5 用x1=1000代入,得到五年最大总收入为
f1(x1)=f1(1000)=23700
u2*=0
x2=0.7u1 + 0.9( x1,u1 )
2
u5*=x5
x5=0.7u4 + 0.9( x4,u4 )
5
u4*=x4
x4=0.7u3 + 0.9( x3,u3 )
4
u3*=x3
x3=0.7u2 + 0.9( x2,u2 )
3
u1*=0
x1 = 1000
1
用于工作B的数量
用于工作A的数量
年初完好机器数
年度
x1,u1 =1000
x2 = 900
x2,u2 =900
x3 = 810
u3= 810
x3,u3 =0
x4 = 567
u4= 567
x4,u4 =0
x5 = 397
u5= 397
x5,u5 =0
例4 某一警卫部门共有12支巡逻队,负责4个要害部位A、B、C、Dde警卫巡逻。对每个
部位可分别派出2,4支巡逻队,并且由于派出巡逻队队数不同,各部位预期在一段时间内
可能造成的损失由差别,具体数字见表。问该警卫部门分别派多少支巡逻队,使总的预期损
失为最小。
25
21
31
10
4
31
22
35
14
3
34
24
38
18
2
D
C
B
A
解 把12支巡逻队伍往4部位看成依次分4个阶段(用k表示,k=1,2,3,4) (1)逆序解法
每个阶段初拥有的可派遣的巡逻队数是前面阶段决策的结果,用状态变量 来表示。各阶段的决策变量就是对各部位派出的巡逻队数,用 表示 ,显然个阶段允许的决策集合为
英每阶段初拥有可派遣的巡逻队数等于上阶段初拥有的数量减去上阶段排出的数,故状态转移律为
若用 表示阶段 派出的巡逻队数为 时,该阶段的部位的预期损失值,因此指标函数可写为
设用 表示 阶段状态为 ,以此出发采用最优子策略到过程结束时的预期损失值,因此有
先考虑给D部位派巡逻队,即 ,上式可写为
因问题中只有4个要害部门,故第5阶段初拥有的未派出的巡逻队数队前4个部位的预期损失不再起影响,故边界条件 ,因此有
因 ,又 的可能值为 ,故由表1的数据可得表2的结果。
表2
4
25
25
31
34
6
4
25
25
31
34
5
4
25
25
31
34
4
3
31
_
31
34
3
2
34
_
_
34
2
4
3
2 再联合考虑对C、D两个部位派巡逻队,即 ,这是有
因有 ,又 ,
故可得表3的结果
表3
4
46
31+25
22+25
24+25
8
3
47
21+31
22+25
24+25
7
2
49
21+34
22+31
24+25
6
2
55
22+34
24+31
5
2
58
24+34
4
4
3
2 下面考虑对B、C、D三个部位派巡逻队,即 ,这时有
同样有
又 ,故计算得表4。
表4
4
80
31+49
35+47
38+46
10
3
84
31+55
35+49
38+47
9
2
87
31+58
35+55
38+49
8
4
3
2 最后考虑对A、B、C、D四个部位派巡逻队,即 时,有
因 有 故
计算得表5
4
97
10+87
14+84
18+80
12
4
3
2 由表5知,最优策略是:A部位4支,B部位2支,C部位2支,D部位4支,总预期损失
为97单位。
动态规划
动态规划问题实例 动态规划的基本概念与原理 动态规划应用举例 例 Wyndor Glass Company Problem
使用动态规划进行求解 1
2
一、动态规划问题建模
这个问题需要对两个相关活动(activity)确定其活动水平(level of activity),因此我们可以将这
两个活动看作动态规划中的阶段。
决策变量 :第 k 个活动的活动水平( level ofactivity ) 状态变量 :可用于第k阶段生产的资源量(右端项)。即 状态转移方程:
阶段指标函数 :第 k 阶段确定 时所产生的利润即 最优指标函数 :第 k 阶段状态为 且采取最佳投资 策略,从第 k 个活动以及以后的最大总利润。
逆序法基本递推方程:
二、动态规划问题求解
(1)k=2 时
因为
故有
k=2 时决策表
(2)k=1 时
因为初时状态确定
且
k=2 时决策表
在可行区间 上
因为
和
都在x1=2时获得最大值
2
36
k=1 时决策表
所以
2
36
k=1 时决策表
k=2 时决策表
背 包 问 题
一般的提法为:一旅行者携带背包去登山。已知他所能承受 的背包重量的极限为a (千克),现有n种物品可供他选择装入 背包。第i种物品的单位重量为 (千克),其价值(可以是表 明本物品对登山者的重要性指标)是携带数量 的函数
(i=1,2,„n).问旅行者应如何选择携带物品的件 数,以使总价值最大,
此模型解决的是运输工具包括卫星的最优装载问题。 其数学模型为:
设 为第 i 种物品装入的件数,则背包问题可归结为如下 形式的整数规划模型:
下面从一个例子来分析动态规划建模。
例 有一辆最大货运量为10 t 的卡车,用以装载3种货物,每种货物的单位重量及相应单
位价值如表7-4 所示。
应如何装载可使总价值最大,
6
5
4
单位价值 ci
5
4
3
单位重量(t)
3
2
1
货物编号i
表 7- 4
设第 种货物装载的件数为 则问题可表为:
阶段k: 将可装入物品按1,2,3的顺序排序,每段装入一
种物品,共划分3个阶段,即k=1,2,3.
状态变量 :在第k段开始时,背包中允许装入前k种
物品的总重量。
决策变量 :装入第k种物品的件数。
状态转移方程:
最优指标函数 :在背包中允许装入物品的总重量不超
过 kg,采取最优策略只装前k种物品时的最大使用价值
货物1
货物2
货物3
由此可得动态规划的顺序递推方程为: K=1 时
货物1
货物2
货物3
K=1 时
注意到:
例如:
时,
其它计算结果见表7-5:
货物1
货物2
货物3
0
0
0
1
2
3
0
0
0
4
8
12
4×0
4×0 4×0
…
…
4×0 4×1
4×0 4×1 4×2
4×0 4×1 4×2 4×3
0
1
2
3
4
5
6
7
8
9
10 0 1 2 3
表 7- 5 K=2 时
其中
例如:
时,
货物1
货物2
货物3
表 7- 5 0
0
0
1
2
3
0
0
0
4
8
12
4×0
4×0 4×0
…
…
4×0 4×1
4×0 4×1 4×2
4×0 4×1 4×2 4×3
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3
其它计算结果见表7-6: 0
1
1
0
5
13
5×0,0
…
…
…
…
5×0,4 5×1,0
…
5×0,12 5×1,8 5×2,0
0
1
2
3
4
5
6
7
8
9
10
0 1 2
表 7- 6 K=3 时
货物1
货物2
货物3
0
1
1
0
5
13
5×0,0
…
…
…
…
5×0,4 5×1,0
…
5×0,12 5×1,8 5×2,0
0
1
2
3
4
5
6
7
8
9
10
0 1 2
表 7- 6 从
再由状态转移方程 表 7- 6 货物1
货物2
货物3
0
1
1
0
5
13
5×0,0
…
…
…
…
5×0,4 5×1,0
…
5×0,12 5×1,8 5×2,0
0
1
2
3
4
5
6
7
8
9
10
0 1 2
再由状态转移方程 表 7- 5 最大装载价值为 0
0
0
1
2
3
0
0
0
4
8
12
4×0
4×0
4×0
…
…
4×0 4×1 4×0 4×1 4×2
4×0 4×1 4×2 4×3
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3
总结:今后解背包问题应先从k=3入手: k=3时
下面应有重点地从k=2中求解三个最优函数值:
K=2 时
所以从第一阶段应有重点地求以下四个数:
K=1 时
由此逐一逆推代回上式:
由此逐一逆推代回上式:
由此逐一逆推代回上式:
最后
最优策略:
再由状态转移方程
再由状态转移方程
最大装载价值为
7.9/P-239 用动态规划方法求解: 解:我们用背包问题顺序解的思路: 人为的划分三个阶段:k=1,2,3
阶段指标函数及其他分配情况如下图:
1
2
3
1
2
3
动态规划的顺序递推方程为:
1
2
3
1
2
3
最优决策为
所对应的最优解为 例(二维背包) 有一辆最大货运量为13t、最大容量为10
件的卡车,用以装载3种货物,每种货物的单位重量及相
应单位价值如下表所示。应如何装载可使总价值最大,
8
5
4
单位价值 ci
6
3
1
单位重量(t)
3
2
1
货物编号i
解:设装载第i种货物的件数为 (i=1,2,3),则问题可表述为
1
2
3
关于件数的约束: 关于重量的约束: 基本方程式:
1
2
3
问题就是求:
1
2
3
1
2
3
同理可求得 所以最优决策方案为 :
最优装载价值为: 例 货郎担问题 货郎担问题也叫推销商问题(traveling salesman problem),
其一般提法为:有n个城市,用1,2,„,n表示,城i, j之间
的距离为 ,有一个货郎从城1出发到其他城市一次且仅一
次,最后回到城市1,怎样选择行走路线使总路程最短,
1
2
3
6
4
5
7
8
9
10
11
12
4
5
2
3
6
8
7
7
5
8
4
5
3
4
8
4
3
5
6
2
3
1
13 3
4
5
一。动态规划解
阶段变量k:按所经过的城市个数划分阶段k, k=1,2,„,n-1.
状态变量 :设第k 阶段到达城市i 时途中所经过的k个城市
集合为S,则
其中
1
2
3
6
4
5
7
8
9
10 11 12 4
5
2
3
6
8
7
7
5
8
4
5
3
4
8
4
3
5
6
2
3
1
13 3
4
5
例如: ,表示推销商从城1出发途径城市{2,3,4}
到达城市5时,须先途经城市{2,4}到达城市3,再奔城市5。
决策变量 :第k 阶段到达城市i 的最短路线上邻接i 的前一
个城市 。
1
2
3
6
4
5
7
8
9
10 11 12 4
5
2
3
6
8
7
7
5
8
4
5
3
4
8
4
3
5
6
2
3
1
13 3
4
5
阶段指标函数 : 设从城市1出发,第k-1阶段到达到城市j,
则城市j与下一阶段(第k阶段)的目的地城市i之间的距离为
最优指标函数 :从城市1出发,经过S中k个城市,到
达城市i的最短距离.
1
2
3
6
4
5
7
8
9
10 11 12 4
5
2
3
6
8
7
7
5
8
4
5
3
4
8
4
3
5
6
2
3
1
13
3
4
5
则动态规划的顺序递推关系为:
最后算出 ,即为全程的最短距离,同时
可得最优策略,即最优行走路线.
例1 已知 4个城市间距离如表1,求从城市1出发,经其与城
市一次且仅一次最优回到城市1的最短路与距离。
1
2
3
4
5
9
7
8
0
7
9
0
5
6
0
8
5
0
8
5
6
1
2
3
4
4
3
2
1
城 城 市 市
解:由边界条件知:
9 7 8 0 7 9 0 5 6 0 8 5 0 8 5 6 1 2 3 4
4
3
2
1
城
城 市 市
当k=1时,从城市1出发,经过1个城市到达城市i的最短距离
为:
即从城市1出发,途经1个城市奔城2,应先到4,再到2。
9 7 8 0 7 9 0 5 6
0 8 5 0 8 5 6 1 2 3 4
4
3
2
1
城
城 市 市
即从城市1出发,途经1个城市奔城3,应先到4,再到3。
9 7 8 0 7 9 0 5 6 0 8 5 0 8 5 6 1 2 3 4
4
3
2
1
城
城 市 市
即从城市1出发,途经1个城市奔城4,应先到2,再到4。
9
7
8
0
7
9
0
5
6
0
8
5
0
8
5
6
1
2
3
4
4
3
2
1
城
城 市 市
当k=2时,从城市1出发,途经2个城市到达城市i的最短距离
为
即从城市1出发,途经2个城市{3,4}奔城2,应先到4,再到2。
即从城市1出发,途经2个城市{2,4}奔城3,应先到4,再
到3。
9 7 8 0 7 9 0 5 6 0 8 5 0 8 5 6 1 2 3 4
4
3
2
1
城
城 市 市
9 7 8 0 7 9 0 5 6 0 8 5 0
8 5 6 1 2 3 4
4
3
2
1
城
城 市 市
即从城市1出发,途经2个城市{2,3}奔城4,应先到2,再到4。
当k=3时,从城市1出发,途经3个城市到达城市1的最短距离
货郎担的最短路线是1 ?2?4?3?1。
9 7 8 0 7 9 0 5 6 0 8 5 0 8 5 6 1 2 3 4
4
3
2
1
城
城 市 市 逆推回去
行走距离为23。
第七讲:设备更新问题
企业中经常会遇到一台设备应该使用多少年更新最合算的问
题。一般来说,一台设备在比较新时,年运转量大,经济收入
高,故障少,维修费用少,但随着使用年限的增加,年运转量
减少因而收入减少,故障变多,维修费用增加。如果更新可提
高年净收入,但是当年要支出一笔数额较大的购买费。 设备更新的一般提法为:在已知一台设备的效益函数 ,维 修费用函数 及更新费用函数 条件下,要求在n年内的 每年年初作出决策,是继续使用旧设备还是更换一台新的,使 使n年总效益最大。
例11 某台新设备的年效益及年均维修费、更新净费用如表7- 15所示。试确定今后5年内的更新策略,使总收益最大。 表 7-15 单位:万元
3.5
3
2.5
2.2
1.5
0.5
更新费
3
2.5
2
1.5
1
0.5
维修费
2.5
3
3.75
4
4.5
5
效益
5
4
3
2
1
0
役龄
项目
解:以年限划分阶段k:1,2,3,4,5
1
2
3
4
5
决策变量 : 第k年初保留使用(keep) 第k年初更新(replacement)
状态变量 : 第k年初,设备已使用过的年数,称役龄。
状态转移方程:
在第k年设备已使用过t年(或役龄为t年),再使用1
年时的效益。
在第k年设备已使用过t年(或役龄为t年),再使用1年
时的维修费用。
在第k年卖掉一台役龄为t年的设备,买进一台新的设
备的更新净费用。
3.5
3
2.5
2.2
1.5
0.5
更新费
3
2.5
2
1.5
1
0.5
维修费
2.5
3
3.75
4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
3.5 3
2.5 2.2 1.5 0.5 更新费 3
2.5 2
1.5 1
0.5 维修费 2.5 3
3.75
4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
即:
“买一部新机器的费用”,“卖一部t年役龄的旧机器
的收益”。
阶段指标函数: 最优指标函数 :第k年初,使用一台已用了 年的设
备,到第5年末的最大效益,有
按逆序建立递推式: 下面用逆序法求解:
K=5时:
此时, 的所有可能取值为:1,2,3,4。下分别求最优指
标函数值:
1
2
3
4
5
3.5
3
2.5
2.2
1.5
0.5
更新费
3
2.5
2
1.5
1
0.5
维修费
2.5
3
3.75
4
4.5
5
效益
5
4
3
2
1
0
役龄
项目
此时,
3.5 3
2.5 2.2 1.5 0.5 更新费 3
2.5 2
1.5 1
0.5 维修费 2.5 3
3.75
4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
此时,
3.5 3
2.5 2.2 1.5 0.5 更新费 3
2.5 2
1.5 1
0.5 维修费 2.5 3
3.75
4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
此时,
3.5 3
2.5 2.2 1.5 0.5 更新费 3
2.5 2
1.5 1
0.5 维修费 2.5 3
3.75
4
4.5 5
效益
5
4
3
2
1
0
役龄 项目
此时,
3.5
2.5
2
1.5
3.5 3
2.5 2.3
1.75 2
0.5 1.5
1
2
3
4
3.5
2.5
2
1.5
1
2
3
4
K=5时最优值表 K=4时:
此时, 的所有可能取值为:1,2,3。下分别求最优指
标函数值:
1
2
3
4
5
3.5
2.5
2
1.5
1
2
3
4
K=5时最优值表
3.5
3
2.5 2.2 1.5 0.5 更新费
3
2.5 2
1.5 1
0.5 维修费
2.5 3
3.75 4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
此时, 3.5 2.5 2
1.5
1
2
3
4
K=5时最优值表
3.5 3
2.5 2.2 1.5
0.5
更新费
3
2.5 2
1.5 1
0.5 维修费
2.5 3
3.75 4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
此时, 3.5 2.5 2
1.5
1
2
3
4
K=5时最优值表
3.5 3
2.5 2.2 1.5 0.5 更新费
3
2.5 2
1.5
1
0.5
维修费
2.5
3
3.75 4
4.5
5
效益
5
4
3
2
1
0
役龄
项目
此时, 6.5
5.8
5.5
1
2
3
K=4时最优值表
K=3时: 此时, 的所有可能取值为:1,2。下分别求最优指
标函数值: 1
2
3
4
5
3.5
3
2.5
2.2
1.5
0.5
更新费
3
2.5 2
1.5 1
0.5 维修费 2.5 3
3.75
4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
此时,
6.5 5.8 5.5
1
2
3
K=4时最优值表
3.5 3
2.5 2.2 1.5 0.5 更新费 3
2.5 2
1.5 1
0.5 维修费 2.5
3
3.75
4
4.5
5
效益
5
4
3
2
1
0
役龄
项目
此时,
6.5
5.8
5.5
1
2
3 K=4时最优值表 9.5
8.8
1
2
K=3时最优值表 K=2时:
此时, 只能取1。所以
1
2
3
4
5
3.5
3
2.5
2.2
1.5
0.5
更新费
3
2.5
2
1.5 1
0.5 维修费 2.5 3
3.75 4
4.5 5
效益
5
4
3
2
1
0
役龄
项目
此时, 9.5 8.8
1
2
K=3时最优值表
K=1时: 此时, 只能取0。所以
1
2
3
4
5
3.5 3
2.5 2.2 1.5 0.5 更新费 3
2.5 2
1.5 1
0.5
维修费
2.5
3
3.75
4
4.5
5
效益
5
4
3
2
1
0
役龄
项目
此时,
1
2
3
4
5
状态转移方程:
上述计算递推回去,当
时,由状态转移方程:
知
查
得
1
2
3
4
5
状态转移方程:
有
知
9.5
8.8
1
2
K=3时最优值表 查
知
1
2
3
4
5
状态转移方程: 查
知
6.5
5.8
5.5
1
2
3
K=4时最优值表 1
2
3
4
5
状态转移方程: 查
3.5
2.5
2
1.5
1
2
3
4
K=5时最优值表 故本题最优策略为 ,即第一年初购买的设备
到第二、三、四、年初各更新一次,用到第5年末,其总效
益为17万元。
对图进行调整
初始状态给定,可使用逆序法
S2=4, x可取1 ,修改该表
f2({3, 4} , 2) 可表示为 f2({cityx, city y} , 2) 容易理解 。后面类似
结点j表示第j年初 无论x1是K或者R,由状态转移方程可知S2必定为1