配色: 字号:
第五章 动态规划
2022-11-23 | 阅:  转:  |  分享 
  
第五章 动态规划



动态规划是运筹学的一个重要分支,它

是从 1951年开始,由美国人贝尔曼 (R.Belman)

为首的一个学派发展起来的。动态规划在经

济、管理、军事、工程技术等方面都有广泛

应用。

动态规划是解决 多阶段决策过程 的最

优化问题的一种方法。

所谓 多阶段决策过程 是指这样一类决策过

程:它是把一个复杂问题按时间(或空间)分

成若干个阶段,每个阶段都需要作出决策,以

便得到过程的最优结局。

由于在每个阶段采取的决策是与时间有关

的而且与前一阶段采取的决策如何 ,不但与该

阶段的经济效果有关,还影响以后各阶段的经

济效果,可见这类多阶段决策问题是一个动态

的问题。因此,处理的方法称为 动态规划方法 。

动态规划也可以处理一些本来与时间

没有关系的静态模型 , 只要人为 地 引入 “时

间 ”因素 , 分成时段 , 就可以把它看作是多阶

段的动态模型,用动态规划方法去处理。

动态规划对于解决多阶段决策问题的

效果是明显的,但也有一定的 局限性 。

首先,它没有统一的处理方法,必须根

据问题的各种性质并结合一定的技巧来处

理;

另外当变量的维数增大时,总的计算量

及存储量急剧增大。由于计算机的存储量及

计算速度的限制 ,目前的计算机仍不能用动

态规划方法来解决较大规模的问题,这就是

所谓的 “维数障碍 ”。



§1 动态规划的基本概念

1.1 多阶段决策问题

在研究社会经济、经营管理和工程技术

领域内的有关问题中,有一类特殊形式的动

态决策问题 —多阶段决策问题 。 在多阶段决

策过程中,系统的动态过程可以按照时间进

程分为相互联系而又相互区别的各个阶段,

在每个阶段都要进行决策。系统在每个阶段

存在许多不同的状态,在某个时点的状态 往

往要依某种形式受到过去某些决策的影响,

而系统的当前状态和决策又会影响系统过

程今后的发展。因而在寻求多阶段决策问题

的最优解时,重要的是不能仅仅从眼前的局

部利益出发进行决策,而需要从系统所经过

的整个事件的总效应出发,有预见性地进行

动态决策,找到不同时点的最优决策及整个

过程的最优策略。

下面举例说明什么是多阶段决策问题。

例 1(最短路线问题) 在线路网络图中,从 A至 E

有一批货物需要调运。图上所标数字为各节点之间

的运输距离,为使总运费最少,必须找出一条由 A

至 E总里程最短的路线。



为了找到由 A 至 E的最短线路,可以将该问

题分为 A B C D E? ? ? ? 4个阶段,在每个阶段

都要作出决策,即在 A 点需决策下一步到 1B 还是

到 2B 或 3B ;同样,若到达第二阶段某个状态,比如

1B ,需决定走向 1C 还是 2C ;以此类推,可以看出:

各个阶段的决策不同,由 A 至 E 的路线就不同,

当从某个阶段的某个状态出发作出一个决策,则这

个状态不仅影响下一个阶段的距离,而且直接影响

后面各阶段的行进线路。所以这类问题要求在各个

阶段选择一个恰当的决策,使这些决策序列所决定

的一条路线对应的总路程最短。

例 2(带回收的资源分配问题)

某厂新购某种机床 125台。据估计,这种设

备 5年后将被其它设备所代替。此机床如在

高负荷状态下工作,年损坏率为 1/2,年利润

为 10万元;如在低负荷状态下工作,年损坏

率为 1/5,年利润为 6 万元。问应如何安排

这些机床的生产负荷,才能使 5年内获得的

利润最大?



本问题具有时间的次序性,在五年计划的每一

年都要作出关于这些机床生产负荷的决策,并且一

旦作出决策,不仅影响本年利润的多少,而且影响

到下一年初完好机床数,从而 影响以后各年的利润。

所以在每年初作出决策时,必须将当年的利润和以

后各年利润结合起来,统筹考虑。

与上面的例 1、例 2类似的多阶段决策问题还

有资源分配、生产存贮、可靠性、背包、设备更新

问题等等。

1.2 动态规划的基 本概念

1.阶段

动态规划问题通常都具有时间或空间

上的次序性,因此求解这类问题时,首先要

将问题按一定的次序划分成若干相互联系

的阶段,以便能按一定次序去求解。如例 1,

可以按空间次序划分为 A B C D E? ? ? ?4个

阶段,而例 2,按照时间次序可分成 5个阶

段。

2.状态

在多阶段决策过程中,每阶段都需要作出

决策,而决策时根据系统所处情况决定的。状

态是描述系统情况所必需的信息。如例 1 中每

阶段的出发点位置就是状态,例 2 中每年初拥

有的完好机床数是作出机床负荷安排的根据,

所以年初完好机床 数是状态。一般地,状态可

以用一个变量来描述,称为状态变量。记第 k

阶段的状态变量为 , 1 , 2 , ,kx k n?.

3.决策

多阶段决策过程的发展是用各阶段的

状态演变来描述的,阶段决策就是决策者从

本阶段某状态 出发对下一阶段状态所作出

的选择。描述决策的变量称为决策变量,当

第 k阶段的状态确定之后,可能作出的决策

要受到这一状态的影响。这就是说决策变量

ku 还是状态变量 kx 的函数,因此,又可将第

k阶段 kx 状态下的决策变量记为 ()kkux.

在实际问题中,决策变量的取值往往限

制在某一范围之内,此范围称为允许决策变

量集合,记作 ()kkDu.如例 2中取高负荷运行

的机床 数 ku 为决策变量,则 0 kkux??( kx 是

k阶段初完好机床数)为允许决策变量集合。

4.状态转移方程

在多阶段决策过程中,如果给定了 k阶

段的状态变量 kx 和决策变量 ku ,则第 1k? 阶

段的状态变量 1kx? 也会随之而确定。也就是

说 1kx? 是 kx 和 ku 的函数,这种关系可记为

1 ( , )k k kx T x u? ?

称之为状态转移方程。

5.策略

在一个多阶段决策过程中,如果各个阶

段的决策变量 ( ) ( 1 , 2 , , )kku x k n?都已确定,

则整个过程也就完全确定。称决策序列

? ?1 1 2 2( ) , ( ) , , ( )nnu x u x u x为该过程的一个策

略。从阶段 k到阶段 n的决策序列称为子策

略, 表示成 ? ?11( ) , ( ) , , ( )k k k k n nu x u x u x??。如例

1 中,选取一线路 1 2 2A B C D E? ? ? ?就是一

个策略:

? ?1 1 2 1 2 3 2 2 4 2( ) , ( ) , ( ) , ( )u A B u B C u C D u D E? ? ? ?

由于每一阶段都有若干个可能的状态和多

种不同的决策,因而一个多阶段决策的实际问

题存在许多策略可供选择,称其中能够满足预

期目标的策略为最优策略。例 1中存在 12条不

同线路,其中 2 1 2A B C D E? ? ? ?是最短线路。

6.指标函数

用来衡量过程优劣的数量指标,称为指标

函数。在阶段 k 的 kx 状态下执行决策 ku ,不仅

带来系统状态的转移,而且也必然对目标函数

给予影响,阶段效应就是执行阶段决策时给目

标函数的影响。

多阶段决策过程关于目标函数的总效应是

各阶段的阶段效应累积形成的。常见的全过程

目标函数有以下两种形式:

( 1)全过程的目标函数等于各阶段目标函数的

和,即 1 1 1 2 2 2( , ) ( , ) ( , )n n nR r x u r x u r x u? ? ? ?

( 2)全过程的目标函数等于各阶段目标函数的

积,即 1 1 1 2 2 2( , ) ( , ) ( , )n n nR r x u r x u r x u? ? ? ?

指标函数的最优值,称为 最优函数值 。一般,

11()fx表示从第 1 阶段 1x 状态出发至第 n 阶段

(最后阶段)的最优指标函数, ()kkfx表示从第

k 阶段 kx 状态出发至第 n 阶段的最优指标函数

( 1 , 2 , , )kn? .

§2 动态规划的最优性原理

多阶段决策过程的特点是每个阶段都要进

行决策,具有 n个阶段的决策过程的策略是由

n 个 相继进行的阶段决策构成的决策序列。由

于前阶段的终止状态又是后一阶段的初始状态,

因此确定阶段最优决策不能只从本阶段的效应

出发,必须通盘考虑整体规划。 就是说,阶段 k

的最优决策不应只是本阶段的最优,而必须是

本阶段及其所有后续阶段的总体最优,即关于

整个后部子过程的最优决策。

对此,贝尔曼在深入研究的基础上,针对

具有无后效性的多阶段决策过程的特点,提出

了著名的多阶段决策的最优性原理 : “整个过程

的最优策略具有这样的性质:即无论 过程 过去

的状态和决策如何,对前面的决策 所形成的状

态而言 , 余下的诸决策必须构成最优策略 。 ”

简而 言之,最优性原理的含意就是: 最优

策略的任何一部分子策略也必须是最优的。

如例 1, 2 1 2A B C D E? ? ? ?是由 A到 E

的最短路线,我们在该路线上任取一点 1C ,

按照最优性原理 12C D E??应该是 1C 到 E的

最短路。很容易用反证法证明这一结论的正

确性,从而说明最优性原理的正确性。

按最优性原理,可以将例 1 分成

A B C D E? ? ? ?4个阶段,由后向前逐步求

出各点到 E 的最短线路,直至求出 A 至 E

的最短线路。( 逆序法 )

以例 1为例。(如图)



4K ? 时,出发点为 1 2 3D D D, ,,记

4 ( ) ( 1 , 2 , 3 )if D i ?为 iD到 E的最短距离; 4 ()iuD表

示从状态 iD出发采取的决策。

显然:

4 1 4 1( ) 7 , ( )f D u D E??;

4 2 4 2( ) 8 , ( )f D u D E;

4 3 4 3( ) 6 , ( )f D u D E??

3K ? 时,出发点为 1 2 3C C C, ,

? ?3 1 1 1 4 1 1 2 4 2( ) m in ( ) ( ) , ( ) ( )f C d C D f D d C D f D? ? ?

??m in 4 7 , 2 8 1 0? ? ? ?

所以 3 1 2()u C D?

? ?3 2 2 2 4 2 2 3 4 3( ) m in ( ) ( ) , ( ) ( )f C d C D f D d C D f D? ? ?

??m in 5 8 , 7 6 1 3? ? ? ?

所以 3 2 2()u C D?或 3D

? ?3 3 3 2 4 2 3 3 4 3( ) m in ( ) ( ) , ( ) ( )f C d C D f D d C D f D? ? ?

??m in 1 0 8 , 9 6 1 5? ? ? ?

所以 3 3 3()u C D?

2K ? 时,出发点为 1 2 3B B B, ,

? ?2 1 1 1 3 1 1 2 3 2( ) m in ( ) ( ) , ( ) ( )f B d B C f C d B C f C? ? ?

??m in 6 1 0 , 4 1 3 1 6? ? ? ?

所以 2 1 1()u B C?

? ?2 2 2 1 3 1 2 3 3 3( ) m in ( ) ( ) , ( ) ( )f B d B C f C d B C f C? ? ?

??m in 3 1 0 , 1 1 5 1 3? ? ? ?

所以 2 2 1()u B C?

? ?2 3 3 2 3 2 3 3 3 3( ) m in ( ) ( ) , ( ) ( )f B d B C f C d B C f C? ? ?

??m in 8 1 3 , 4 1 5 1 9? ? ? ?

所以 2 3 3()u B C?

1K ? 时,出发点只有 A

1 2 1

1 2 2 2

3 2 3

( ) ( ) 4 16

( ) m in ( ) ( ) m in 5 13 18

3 19( ) ( )

d A B f B

f A d A B f B

d A B f B

? ?? ?

??

? ? ? ? ???

?? ??

??



所以 12()u A B?

由 1 ( ) 1 8fA ?,可知从起点 A 到终点 E 的

最短距离是 18。 为了找出最短线路,再按计算

顺序反推回去,可求出最优决策序列,即由

12()u A B?, 2 2 1()u B C?, 3 1 2()u C D?, 42()u D E?

组成最优策略,也就是最短路线为:

2 1 2A B C D E? ? ? ?

从上面的例子不难看出,对于最短路线问

题,有如下的递推关系(函数方程): ? ?

1

11

( ) m in ( , ( ) ) ( ( , ) )

( ) 0 ( , 1 , , 1 )

k k k k k k k k

nn

f x d x u x f T x u

f x k n n

?

??

? ??

? ? ? ?

?



一般情况下,多阶段决策问题存在下面的

递推关系:

? ?1

11

( ) ( , ( ) ) ( ( , ) )

( )

( ) ( , 1 , , 1 )

k k k k k k k k k

k k k

nn

f x o p t r x u x f T x u

u D u

f x C k n n

?

??

??

?

? ? ?



这里

( , ( ) )k k k kr x u x是第 k 阶段采用 ()kkux决策产

生的阶段效应;

11()nnf x C?? ?是边界条件;

“? ”大多数情况下是 “+ ”, 也可能是 “? ”。

称上述递推关系为 动态规划的基本方程 ,

这个方程 是 最优化原理的具体表达形式。





§3 建立动态规划模型的步骤

“最优化原理 ”是动态规划的核心 , 所有动

态规划问题的递推关系都是根据这个原理建立

起来的,并且根据递推关系依次计算,最终可

求得动态规划问题的解。

一般来说,利用动态规划求解实际问题需

先建立问题的动态模型, 具体步骤 如下:

1、将问题按时间或空间次序划分成若干阶

段。有些问题不具有时空次序,也可以人为地

引进时空次序,划分阶段。

2、正确选择状态变量 kx ,这一步是形成动

态模型的关键,状态变量是动态规划模型中最

重要的参数。一般来说,状态变量应具有以下

三个特征:

( 1)要能够用来描述决策过程的演变特征。

( 2)要满足无 后效性。即如果某阶段状态已给定

后,则以后过程的进展不受以前各状态的影响。也

就是说,过去的历史只通过当前的状态去影响未来

的发展。

( 3)递推性。即由 k阶段的状态变量 kx 及决策变

量 ku 可以计算出 1k? 阶段的状态 变量 1kx? .

3、确定决策变量 ku 及允许决策变量集合

()kkDu .

4、根据状态变量之间的递推关系,写出状

态转移方程: 1 ( , ( ) )k k k kx T x u x? ? .

5、建立指标函数。一般用 ( , )k k kr x u描写阶

段效应 , ()kkfx表示 kn? 阶段的最优子策略函数 .

6、建立动态规划基本方程:

? ?1

11

( ) ( , ( ) ) ( ( , ) )

( )

( ) ( , 1 , , 1 )

k k k k k k k k k

k k k

nn

f x o p t r x u x f T x u

u D u

f x C k n n

?

??

??

?

? ? ?



以上是建立动态规划模型的过程,这个过

程是正确求解动态规划的基础。

在动态规划基本方程中, ( , )k k kr x u,

1 ( , )k k kx T x u? ? 都是已知函数,最优子策略

()kkfx与 + 1 + 1()kkfx之间是递推关系,要求出

()kkfx及 ()kkux,需要先求出 + 1 + 1()kkfx,这就决

定了应用动态规划基本方程求最优策略总是逆

着阶段的顺序进行的。 由后向前逐步计算,最

终可以算出全过程的最优策略函数值及最优策

略。

另一方面,由于 1k? 阶段的状态

k + 1 ( , )kkx T x u? 是由前面的状态 kx 和决策 ku 所

形成的,在计算 + 1 + 1()kkfx时还不能具体确定 1kx?

的值。所以, 这就要求必须就 1k? 阶段的各个

可能状态计算 + 1 + 1()kkfx,因此动态规划方法不

但能求出整个问题的最优策略和最优目标值,

而且还能求出决策过程中所有可能状态的最优

策略及最优目标值。

下面就按上述步骤求解例 2.



例 2(带回收的资源分配问题) 某厂新购某种机

床 125台。据估计,这种设备 5年后将被其它

设备所代替。此机床如在高负荷状态下工作,

年损坏率为 1/2,年利润为 10万元;如在低负

荷状态下工作,年损坏率为 1/5,年利润为 6万

元。问应如何安排这些机床的生产负荷,才能

使 5年内获得的利润最大?

解: 以年为阶段, 1 , 2 , 3 , 4 , 5k ?

取 k 年初完好的机床数为状态变量 kx ,以

k年初投入高负荷运行的机床数为决策变量 ku ,

则低负荷运行机床数是 kkxu? ,于是状态转移

方程为:

1 1 / 2 4 / 5 ( ) 0 . 8 0 . 3k k k k k kx u x u x u? ? ? ? ? ?

以利润为目标函数,则 k年利润为:

1 0 6 ( ) 4 6k k k k ku x u u x? ? ? ?

记 ()kkfx为 k 年至 5 年末最大总利润,则动

态规划基本方程为:

? ?1

66

( ) m a x 4 6 ( 0 .8 0 .3 )

( ) 0 ( 5 , 4 , 3 , 2 , 1 )

k k k k k k kf x u x f x u

f x k

?? ? ? ? ??

???

以上是建立动态模型的过程,下面具体求解。

注意动态规划基本方程为: ? ?

1( ) m a x 4 6 ( 0 .8 0 .3 )

0

k k k k k k k

kk

f x u x f x u

ux

?? ? ? ?

??

所以,当 5k? 时,有 ? ?

5 5 5 5 6 6 5

55

( ) m a x 4 6 ( ) 1 0

0

f x u x f x x

ux

? ? ? ?

??

55ux?

当 4k? 时,有 ? ?

4 4 4 4 5 4 4 4

44

( ) m a x 4 6 ( 0 .8 0 .3 ) 1 5

0

f x u x f x u x

ux

? ? ? ? ?

??

44ux?

当 3k? 时,有 ? ?

3 3 3 3 4 3 3 3

33

( ) m a x 4 6 ( 0 .8 0 .3 ) 1 8

0

f x u x f x u x

ux

? ? ? ? ?

??

3 0u ?



当 2k? 时,有 ? ?

2 2 2 2 3 2 2 2

22

( ) m a x 4 6 ( 0 .8 0 .3 ) 2 0 .4

0

f x u x f x u x

ux

? ? ? ? ?

??

2 0u ?

当 1k? 时,有 ? ?

1 1 1 1 2 1 1 1

11

( ) m a x 4 6 ( 0 .8 0 .3 ) 2 2 .3 2

0

f x u x f x u x

ux

? ? ? ? ?

??

1 0u ?

所以利润为: 2 2 .3 2 1 2 5 2 7 9 0??(万元)

再按与计算过程相反的顺序推回去,可得最优计划

如下表所示:



年份 完好机床数 高负荷机床数 低负荷机床数

第一年 125 0 125

第二年 100 0 100

第三年 80 0 80

第四年 64 64 0

第五年 32 32 0



献花(0)
+1
(本文系太好学原创)