运筹学 .

140
1 . 运运运 运运运运

description

运筹学. 动态规划. 运筹学. 本章内容重点. 多阶段决策过程的最优化 动态规划的基本概念和基本原理 动态规划方法的基本步骤 动态规划方法应用举例. 决策 u 1. 决策 u 2. 决策 u k. 决策 u n. 状态 x n +1. 状态 x 1. 状态 x 2. 状态 x 3. 状态 x k. 状态 x k +1. 状态 x n. 阶段 1. 阶段 2. 阶段 k. 阶段 n. T 1. T 2. T k. Tn. 1. 多阶段决策过程的最优化. 一、多阶段决策问题 - PowerPoint PPT Presentation

Transcript of 运筹学 .

Page 1: 运筹学 .

1

运筹学

.

运筹学

动态规划动态规划

Page 2: 运筹学 .

2

多阶段决策过程的最优化动态规划的基本概念和基本原理动态规划方法的基本步骤动态规划方法应用举例

本章内容重点

Page 3: 运筹学 .

3

一、多阶段决策问题(Multi-Stage decision process)多阶段决策过程特点 :

状态 x1

阶段 1

T1

决策 u1

状态 x2

决策 u2

阶段 2

T2

状态 x3

...状态 xk

决策 uk

阶段 k

Tk

状态 xk+1

...状态 xn

决策 un

阶段 n

Tn

状态 xn+1

1. 多阶段决策过程的最优化

Page 4: 运筹学 .

4

1. 多阶段决策过程的最优化 动态规划方法与“时间”关系

很密切,随着时间过程的发展而决定各时段的决策,产生一个决策序列,这就是“动态”的意思。然而它也可以处理与时间无关的静态问题,只要在问题中人为地引入“时段”因素,就可以将其转化为一个多阶段决策问题。在本章中将介绍这种处理方法。

Page 5: 运筹学 .

5

1. 多阶段决策过程的最优化 二、多阶段决策问题举例 属于多阶段决策类的问题很多,

例如: 1) 工厂生产过程:由于市场需求是

一随着时间而变化的因素,因此,为了取得全年最佳经济效益,就要在全年的生产过程中,逐月或者逐季度地根据库存和需求情况决定生产计划安排。

Page 6: 运筹学 .

6

1. 多阶段决策过程的最优化 2) 设备更新问题:一般企业用于生产活动

的设备,刚买来时故障少,经济效益高,即使进行转让,处理价值也高,随着使用年限的增加,就会逐渐变为故障多,维修费用增加,可正常使用的工时减少,加工质量下降,经济效益差,并且,使用的年限越长、处理价值也越低,自然,如果卖去旧的买新的,还需要付出更新费.因此就需要综合权衡决定设备的使用年限,使总的经济效益最好。

Page 7: 运筹学 .

7

1. 多阶段决策过程的最优化 3) 连续生产过程的控制问题:

一般化工生产过程中,常包含一系列完成生产过程的设备,前一工序设备的输出则是后一工序设备的输入,因此,应该如何根据各工序的运行工况,控制生产过程中各设备的输入和输出,以使总产量最大。

Page 8: 运筹学 .

8

1. 多阶段决策过程的最优化 以上所举问题的发展过程都与时间因素有关,

因此在这类多阶段决策问题中,阶段的划分常取时间区段来表示,并且各个阶段上的决策往往也与时间因素有关,这就使它具有了“动态”的含义,所以把处理这类动态问题的方法称为动态规划方法。不过,实际中尚有许多不包含时间因素的一类“静态”决策问题,就其本质而言是一次决策问题,是非动态决策问题,但是也可以人为地引入阶段的概念当作多阶段决策问题,应用动态规划方法加以解决。

Page 9: 运筹学 .

9

1. 多阶段决策过程的最优化 4 )资源分配问题:便属于这类静

态问题。如:某工业部门或公司,拟对其所属企业进行稀缺资源分配,为此需要制定出收益最大的资源分配方案。这种问题原本要求一次确定出对各企业的资源分配量,它与时间因素无关,不属动态决策,但是,我们可以人为地规定一个资源分配的阶段和顺序,从而使其变成一个多阶段决策问题 ( 后面我们将详细讨论这个问题 ) 。

Page 10: 运筹学 .

10

1. 多阶段决策过程的最优化 5 )运输网络问题:如图 5-1 所示

的运输网络, 点间连线上的数字表示两地距离 ( 也可是运费、时间 等 ) ,要求从 fk(sk)至 v10 的最短路线。

这种运输网络问题也是静态决策问题。但是,按照网络中点的分布,可以把它分为 4 个阶段,而作为多阶段决策问题来研究。

Page 11: 运筹学 .

11

1. 多阶段决策过程的最优化

图 5-11 运输网络图示

Page 12: 运筹学 .

12

1. 多阶段决策过程的最优化 三、动态规划求解的多阶段决策问题的特点 通常多阶段决策过程的发展是通过状态的一系列变换

来实现的。一般情况下,系统在某个阶段的状态转移除与本阶段的状态和决策有关外,还可能与系统过去经历的状态和决策有关。因此,问题的求解就比较困难复杂。而适合于用动态规划方法求解的只是一类特殊的多阶段决策问题,即具有“无后效性”的多阶段决策过程。所谓无后效性,又称马尔柯夫性,是指系统从某个阶段往后的发展,仅由本阶段所处的状态及其往后的决策所决定,与系统以前经历的状态和决策 (历史 ) 无关。

Page 13: 运筹学 .

13

1. 多阶段决策过程的最优化 四、动态规划方法导引 例 5.1 :为了说明动态规划的基本思想方法和特点,

下面以图 5-1 所示为例讨论的求最短路问题的方法。 第一种方法称做全枚举法或穷举法。它的基本思想是

列举出所有可能发生的方案和结果,再对它们一一进行比较,求出最优方案。这里从 v1到 v10 的路程可以分为 4 个阶段。第一段的走法有三种,第二三两段的走法各有两种,第四段的走法仅一种,因此共有 3×2×2×1= 12条可能的路线,分别算出各条路线的距离,最后进行比较,可知最优路线是 v1 →v3 → v7 → v9 →v10 , 最短距离是 18 .

Page 14: 运筹学 .

14

1. 多阶段决策过程的最优化 显然,当组成交通网络的节点很多时,用穷

举法求最优路线的计算工作量将会十分庞大,而且其中包含着许多重复计算.

第二种方法即所谓“局部最优路径”法,是说某人从 k 出发,他并不顾及全线是否最短,只是选择当前最短途径,“逢近便走”,错误地以为局部最优会致整体最优,在这种想法指导下,所取决策必是 v1 →v3 →v5 → v8 → v10 ,全程长度是 20;显然,这种方法的结果常是错误的.

Page 15: 运筹学 .

15

1. 多阶段决策过程的最优化 第三种方法是动态规划方法。动态规划

方法寻求该最短路问题的基本思想是,首先将问题划分为 4 个阶段,每次的选择总是综合后继过程的一并最优进行考虑,在各段所有可能状态的最优后继过程都已求得的情况下,全程的最优路线便也随之得到。

为了找出所有可能状态的最优后继过程,动态规划方法总是从过程的最后阶段开始考虑,然后逆着实际过程发展的顺序,逐段向前递推计算直至始点。

Page 16: 运筹学 .

16

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 。

Page 17: 运筹学 .

17

1. 多阶段决策过程的最优化 同样,当阶段 3 上所有可能状态的最优

后继过程都已求得后,便可以开始考虑阶段 2 上所有可能状态的最优决策和最优后继过程,如 v2 的最优决策是到 v5, 最优路线是 v2→v5→v9→v10 ,最短距离是 15… 依此类推,最后可以得到从初始状态 v1 的最优决策是到 v3 最优路线是 v1→v3→v7→v9→v1

0 ,全程的最短距离是 18 。图 5—1 中粗实线表示各点到的最优路线,每点上方括号内的数字表示该点到终点的最短路距离。

Page 18: 运筹学 .

18

1. 多阶段决策过程的最优化 综上所述可见,全枚举法虽可找出最优方案,

但不是个好算法,局部最优法则完全是个错误方法,只有动态规划方法属较科学有效的算法。它的基本思想是,把一个比较复杂的问题分解为一系列同类型的更易求解的子问题,便于应用计算机。整个求解过程分为两个阶段,先按整体最优的思想逆序地求出各个子问题中所有可能状态的最优决策与最优路线值,然后再顺序地求出整个问题的最优策略和最优路线。计算过程中,系统地删去了所有中间非最优的方案组合,从而使计算工作量比穷举法大为减少。

Page 19: 运筹学 .

19

2. 动态规划的基本概念 一、动态规划的基本概念 使用动态规划方法解决多阶段决

策问题,首先要将实际问题写成动态规划模型,同时也为了今后叙述和讨论方便,这里需要对动态规划的下述一些基本术语进一步加以说明和定义:

Page 20: 运筹学 .

20

2. 动态规划的基本概念 ( 一 ) 阶段和阶段变量 为了便于求解和表示决策及过程的发展顺序,

而把所给问题恰当地划分为若干个相互联系又有区别的子问题,称之为多段决策问题的阶段。一个阶段,就是需要作出一个决策的子问题,通常,阶段是按决策进行的时间或空间上先后顺序划分的。用以描述阶段的变量叫作阶段变量,一般以k 表示阶段变量.阶段数等于多段决策过程从开始到结束所需作出决策的数目,图 5—1 所示的最短路问题就是一个四阶段决策过程。

Page 21: 运筹学 .

21

2. 动态规划的基本概念 (二)状态、状态变量和可能状态集 1.状态与状态变量。用以描述事物( 或系统 ) 在某特定的时间与空间域中所处位置及运动 特征的量,称为状态。反映状态变化的量叫做状态变量。状态变量必须包含在给定的阶段上确定全部允许决策所需要的信息。按照过程进行的先后,每个阶段的状态可分为初始状态和终止状态,或称输入状态和输出状态,阶段 k 的初始状态记作 sk ,终止状态记为 sk+1 。但为了清楚起见,通常定义阶段的状态即指其初始状态。

Page 22: 运筹学 .

22

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} ;

Page 23: 运筹学 .

23

(三)决策、决策变量和允许决策集合 所谓决策,就是确定系统过程发展的方案。决

策的实质是关于状态的选择,是决策者从给定阶段状态出发对下一阶段状态作出的选择。

用以描述决策变化的量称之决策变量和状态变量一样,决策变量可以用一个数,一组数或一向量来描述,也可以是状态变量的函数,记以 uk= uk(sk) ,表示于阶段 k状态 sk 时的决策变量。

决策变量的取值往往也有一定的允许范围,称之允许决策集合。决策变量 uk(sk) 的允许决策集用 Uk(sk) 表示 , uk(sk)∈ Uk(sk) 允许决策集合实际是决策的约束条件。

2. 动态规划的基本概念

Page 24: 运筹学 .

24

(四)、策略和允许策略集合 策略 (Policy) 也叫决策序列.策略有全过程策略和 k 部子

策略之分,全过程策略是指具有 n 个阶段的全部过程,由依次进行的 n 个阶段决策构成的决策序列,简称策略,表示为p1,n{u1,u2,…,un} 。从 k 阶段到第 n 阶段,依次进行的阶段决策构成的决策序列称为 k 部子策略 , 表示为 pk,n{uk,uk+1,…,un} ,显然当 k=1 时的 k 部子策略就是全过程策略。

在实际问题中,由于在各个阶段可供选择的决策有许多个,因此,它们的不同组合就构成了许多可供选择的决策序列( 策略 ) ,由它们组成的集合,称之允许策略集合,记作 P1,n ,从允许策略集中,找出具有最优效果的策略称为最优策略。

2. 动态规划的基本概念

Page 25: 运筹学 .

25

(五)状态转移方程 系统在阶段 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) 无关。系统状态的这种转移,用数学公 式描述即有:

2. 动态规划的基本概念

))(,(1 kkkkk susTs (5-1)

Page 26: 运筹学 .

26

通常称式 (5-1) 为多阶段决策过程的状态转移方程。有些问题的状态转移方程不一定存在数学表 达式,但是它们的状态转移,还是有一定规律可循的。

( 六 ) 指标函数 用来衡量策略或子策略或决策的效果的某种数

量指标,就称为指标函数。它是定义在全过程或各子过程或各阶段上的确定数量函数。对不同问题,指标函数可以是诸如费用、成本、产值、利润、产量、耗量、距离、时间、效用,等等。例如:图 5—1 的指标就是运费。

2. 动态规划的基本概念

Page 27: 运筹学 .

27

(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) 的函数,严格说来,应表示为 :

2. 动态规划的基本概念

))(,( kkkk spsR

Page 28: 运筹学 .

28

不过实际应用中往往表示为 Rk(sk,uk) 或 Rk(sk) 。还跟第 k子过程上各段指标函数有关,过程指标函数 Rk(sk)通常是描述所实现的全过程或 k 后部子过程效果优劣的数量指标,它是由各阶段的阶段指标函数 gk(sk,uk)累积形成的,适于用动态规划求解的问题的过程指标函数(即目标函数),必须具有关于阶段指标的可分离形式.对于部子过程的指标函数可以表示为:

式中,表示某种运算,可以是加、减、乘、除、开方等。

2. 动态规划的基本概念

),(),(),(

),,,,,,(

111

11,,

nnnkkkkkk

nnkkkknknk

usgusgusg

usususRR

(5-2)

Page 29: 运筹学 .

29

多阶段决策问题中,常见的目标函数形式之一是取各阶段效应之和的形式,即 :

(5-3) 有些问题,如系统可靠性问题,其目标函数是取各阶

段效应的连乘积形式,如: (5-4)

总之,具体问题的目标函数表达形式需要视具体问题而定。

2. 动态规划的基本概念

n

kiiiik usgR ),(

n

kiiiik usgR ),(

Page 30: 运筹学 .

30

( 七 ) 最优解 用 fk(sk) 表示第 k子过程指标函数 在状态 sk下的最优值 , 即 称 fk(sk) 为第 k子过程上的最优指标函数;与它相应的子策略称为 sk状态下的最优子策略,记为 pk

*(sk) ;而构成该子策赂的各段决策称为该过程上的最优决策,记为 ;有

简记为

2. 动态规划的基本概念))(,( kkkk spsR

nkspsRoptsf kkkksPp

kkkKk

,,2,1))},(,({)()(

)(,),(),( 11 nnkkkk sususu

nksusususp nnkkkkkk ,,2,1)},(,),(),({)( 11

nkuuup nkkk ,,2,1},,,,{ 1

Page 31: 运筹学 .

31

特别当 k=1 且 s1 取值唯一时, f1(s1) 就是问题的最优值,而 p1

* 就是最优策略。如例只有唯一始点v1 即 s1 取值唯一 , 故 f1(s1)=18 就是例的最优值,而

就是例的最优策略。 但若取值不唯一 , 则问题的最优值记为 f0 有

最优策略即为 s1=s1

*状态下的最优策略:

我们把最优策略和最优值统称为问题的最 优解。

2. 动态规划的基本概念

},,,{ 109731 vvvvp

)()}({ 11111011

ssfsfoptfSs

},,),({)( 211111 nuusussp

Page 32: 运筹学 .

32

按上述定义,所谓最优决策是指它们在全过程上整体最优 ( 即所构成的全过程策略为最优 ) ,而不一定在各阶段上单独最优。

( 八 ) 多阶段决策问题的数学模型 综上所述,适于应用动态规划方法求解

的一类多阶段决策问题,亦即具有无后效性的多阶段决策问题的数学模型呈以下形式 :

2. 动态规划的基本概念),,2,1( nkuk

nk

Uu

Ss

usTs

ts

usususRRoptf

kk

kk

kkkk

nnuu n

,,2,1

),(

..

),,,,,,(

1

2211~1

( 5-5 )

Page 33: 运筹学 .

33

式中“ OPT” 表示最优化,视具体问题取 max 或 min 。

上述数学模型说明了对于给定的多阶段决策过程,求取一个 ( 或多个 ) 最优策略或最优决策序列 ,使之既满足式 (5-5)给出的全部约束条件,又使式 (5-5) 所示的目标函数取得极值,并且同时指出执行该最优策略时,过程状态演变序列即最优路线

2. 动态规划的基本概念

},,,{ 21nuuu

},,,,{ 121

nn ssss

Page 34: 运筹学 .

34

二、动态规划的最优化原理与基本方程 1 .标号法 为进一步阐明动态规划方法的基本思路,我

们介绍一种只适用于例这类最优路线问题的特殊解法——标号法。标号法是借助网络图通过分段标号来求出最优路线的一种简便、直观的方法。通常标号法采取“逆序求解”的方法来寻找问题的最优解,即从最后阶段开始,逐次向阶段数小的方向推算,最终求得全局最优解。

2. 动态规划的基本原理

Page 35: 运筹学 .

35

下面给出标号法的一般步骤: 1. 从最后一段标起,该段各状态

( 即各始点 )到终点的距离用数字分别标在各点上方的方格内,并用粗箭线连接各点和终点。

2.向前递推,给前一阶段的各个状态标号。每个状态上方方格内的数字表示该状态到终点的最短距离。即为该状态到该阶段已标号的各终点的段长,再分别加上对应终点上方的数字而取其最小者。将刚标号的点沿着最短距离所对应的已标号的点用粗箭线连接起来,表示出各刚标号的点到终点的最短路线。

2. 动态规划的基本原理

Page 36: 运筹学 .

36

3. 逐次向前递推,直到将第一阶段的状态 ( 即起点 ) 也标号,起点方格内的数字就是起点到终点的最短距离,从起点开始连接终点的粗箭线就是最短路线。

用标号法来求解下例 例 5.2 :网络图 5—2 表示某城市的局部道路分布图。

一货运汽车从 S 出发,最终到达目的地 E 。其中 Ai(i=1 , 2 , 3),Bj(j= 1 , 2) 和 Ck(k= 1 , 2) 是可供汽车选择的途经站点,各点连线上的数字表示两个站点问的距离。问此汽车应走哪条路线,使所经过的路程距离最短 ?

2. 动态规划的基本原理

Page 37: 运筹学 .

37

2. 动态规划的基本原理

图 5-2 某城市的局部道路分布图

Page 38: 运筹学 .

38

第一步:先考虑第四阶段,即 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 。

2. 动态规划的基本原理

Page 39: 运筹学 .

39

(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 。

2. 动态规划的基本原理

Page 40: 运筹学 .

40

(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共有三条最短路线: 此时 ,u1(S)= A1题 和 此时 ,u1(S)= A3 ,最短距离为 21 。

2. 动态规划的基本原理

ECBAS 111

ECBAS 113 ECBAS 123

Page 41: 运筹学 .

41

结果如图 5-3 所示。 每个状态上方的方格内的数字表示该状

态到 E 的最短距离,首尾相连的粗箭线构成每一状态到 E 的最短路线。因此,标号法不但给出起点到终点的最短路线和最短距离,同时也给出每一状态到终点的最短路线及其最短距离。如 ,A1到 E的最短路线是 , 最短矩离是 17

图见下页

2. 动态规划的基本原理

ECBA 111

Page 42: 运筹学 .

42

2. 动态规划的基本原理

图 5-3 某城市局部道路求最短路径的过程

Page 43: 运筹学 .

43

2 .最优化原理 (贝尔曼最优化原理)

作为一个全过程的最优策略具有这样的性质:对于最优策略过程中的任意状态而言,无论其过去的状态和决策如何,余下的诸决策必构成一个最优子策略。该原理的具体解释是,若某一全过程最优策略为:

2. 动态规划的基本原理

)}(),(,),(),({)( 221111 nnkk sususususp

则对上述策略中所隐含的任一状态而言,

第 k 子过程上对应于该状态的最优策略必然

包含在上述全过程最优策略 p1* 中,即为

)}(,),(),({)( 11 nnkkkkkk susususp

Page 44: 运筹学 .

44

如第一节所述,基于上述原理,提出了一 种逆序递推法;这里可以指出,该法的关键在于给出一

种递推关系。一般把这种递推关系称为动态规划的函数基本方程。

3.函数基本方程 在例中,用标号法求解最短路线的计 算公式可以概括写成:

(5-6) 其中, 在这里表示从状态 sk到由决策 uk(sk) 所决

定的状态 sk+1之间的距离 , 是边界条件,表示全过程到第四阶段终点结束。

2. 动态规划的基本原理

1,2,3,4))},(())(,({min)(

0)(

111)(

55

ksufsusgsf

sf

kkkkkkksUu

kkkkk

))(,( kkkk susg

0)( 55 sf

Page 45: 运筹学 .

45

一般地,对于 n 个阶段的决策过程,假设只考虑指标函数是“和”与“积”的形式,第 k阶段和第 k+1阶段间的递推公式可表示如下:

(1)当过程指标函数为下列“和”的形式时, 相应的函数基本方程为

( 5—7)

2. 动态规划的基本原理

))}(,({)()(

kkkksPp

kk spsRoptsfkKk

n

kiiii usg ),(

1,2,,1,))},(())(,({)(

0)(

111

11

nnksufsusgoptsf

sf

kkkkkkkUu

kk

nn

kk

Page 46: 运筹学 .

46

(2) 当过程指标函数为下列“积”的形式时 ,

相应的函数基本方程为

( 5—8) 可以看出,和、积函数的基本方程中边界 条件 ( 即 的取值 ) 是不同的。

2. 动态规划的基本原理

))}(,({)()(

kkkksPp

kk spsRoptsfkKk

n

kiiii usg ),(

1,2,,1,))},(())(,({)(

1)(

111

11

nnksufsusgoptsf

sf

kkkkkkkUu

kk

nn

kk

)( 11 nn sf

Page 47: 运筹学 .

47

3. 动态规划方法的基本步骤 标号法仅适用于求解象最短路线问题那样可

以用网络图表示的多阶段决策问题。但不少多阶段决策问题不能用网络图表示。此时 , 应该用函数基本方程来递推求解 . 一般来说 , 要用函数基本方程逆推求解 ,首先要有效地建立动态规划模型 , 然后再递推求解 , 最后得出结论 .然而 , 要把一个实际问题用动态规划方法来求解 , 还必须首先根据问题的要求。把它构造成动态规划模型 , 这是非常重要的一步。正确地建立一个动态规划模型 , 往往问题也就解决了一大半 , 而一个正确的动态规划模型 , 应该满足哪些条件呢 ?

Page 48: 运筹学 .

48

3. 动态规划方法的基本步骤 1 .应将实际问题恰当地分割成 n 个子问题 (n 个阶段 ) 。通常是根据时间或空间而划分的,或者在经由静态的数学规划模型转换为动态规划模型时,常取静态规划中变量的个数 n ,即 k=n 。

2 .正确地定义状态变量 sk ,使它既能正确地描述过程的状态,又能满足无后效性.动态规划中的状态与一般控制系统中和通常所说的状态的概念是有所不同的,动态规划中的状态变量必须具备以下三个特征:

Page 49: 运筹学 .

49

3. 动态规划方法的基本步骤 (1) 要能够正确地描述受控过程的变化特征。 (2) 要满足无后效性。即如果在某个阶段状态已经给定,那么在该阶段以后,过程的发展不受前面各段状态的影响,如果所选的变量不具备无后效性,就不能作为状态变量来构造动态规划的模型。

(3) 要满足可知性。即所规定的各段状态变量的值,可以直接或间接地测算得到。一般在动态规划模型中,状态变量大都选取那种可以进行累计的量。此外,在与静态规划模型的对应关系上,通常根据经验,线性与非线性规划中约束条件的个数,相当于动态规划中状态变量 sk的维数.而前者约束条件所表示的内容,常就是状态变量 sk所代表的内容。

Page 50: 运筹学 .

50

3. 动态规划方法的基本步骤 3 .正确地定义决策变量及各阶段的允许

决策集合 Uk(sk) ,根据经验,一般将问题中待求的量,选作动态规划模型中的决策变量。或者在把静态规划模型 ( 如线性与非线性规划 )转换为动态规划模型时,常取前者的变量 xj 为后者的决策变量 uk 。

4. 能够正确地写出状态转移方程,至少要能正确反映状态转移规律。如果给定第 k 阶段状态变量 sk 的值,则该段的决策变量 uk 一经确定,第 k+1 段的状态变量 sk+1 的值也就完全确定,即有 sk+1=Tk(sk ,uk)

Page 51: 运筹学 .

51

3. 动态规划方法的基本步骤 5 .根据题意 , 正确地构造出目标与变量

的函数关系——目标函数,目标函数应满足下列性质:

(1) 可分性,即对于所有 k 后部子过程,其目标函数仅取决于状态 sk及其以后的决策 uk ,uk+1,┈,un, 就是说它是定义在全过程和所有后部子过程上的数量函数。

(2) 要满足递推关系,即

(3)函数 对其变元 Rk+1 来说要严格单调。

)],,(,,[),,,,,( 111111, nkkkkknkkkknk ssRussususR )],,(,,[ 111 nkkkkk ssRus

Page 52: 运筹学 .

52

6 .写出动态规划函数基本方程例如常见的指标函数是取各段指标和的形式

其中 表示第 i 阶段的指标,它显然

是满足上述三个性质的。所以上式可以写成 :

3. 动态规划方法的基本步骤

n

kiiiikk usgsR ),()(

),( iii usg

),,(),( 111 nkkkkkk ssRusgR

Page 53: 运筹学 .

53

二.动态规划方法的基本步骤 为进一步说明动态规划模型建立的基本方法及其求解

过程 , 下面通过实际例子用上述方法具体给出求解动态规划方法的基本步骤:

例 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 。

3. 动态规划方法的基本步骤

Page 54: 运筹学 .

54

假设某厂开始有 x=1000台完好的机床,现要制定一个五年生产计划,问每年开始时如何重新分配完好的机床在两种不同的负荷下生产的数量,以使在 5 年内产品的总产量为最高。

解:首先构造这个问题的动态规划模型。 1 .变量设置 (1) 设阶段变量 k 表示年度,因此,阶段总数 n=5 。

(2)状态变量 sk 表示第 k 年度初拥有的完好机床台数,同时也是第 k-1 年度末时的完好机床数量。

3. 动态规划方法的基本步骤

Page 55: 运筹学 .

55

(3) 决策变量 uk ,表示第 k 年度中分配于高负荷下生产的机床台数。于是 sk- uk 便为该年度中分配于低负荷下生产的机床台数.

这里 sk 与 uk均取连续变量,当它们有非整数数值时.可以这样理解:如 sk= 0.6 ,就表示一台机器在 k 年度中正常工作时间只占 6/10; uk=0.4 时,就表示一台机床在 k 年度只有 4/10 的时间于高负荷下工作.

2 .状态转移方程为 k=1 , 2 ,… ,6

3. 动态规划方法的基本步骤

)(9.07.0)(1 kkkkkkk usuusbaus

Page 56: 运筹学 .

56

3 .允许决策集合 , 在第 k 段为 4 .目标函数。设 gk(sk,uk) 为第 k 年度的产量,

则 gk(sk,uk)=8uk+5(sk-uk), 因此,目标函数 为 k= 1,2, ... ,5

5 .条件最优目标函数递推方程。 令 fk(sk) 表示由第 k 年的状态 sk 出发,采取最优分配

方案到第 5 年度结束这段时间的产品产量,根据最优化原理有以下递推关系:

k=1,2,3,4,5

3. 动态规划方法的基本步骤}0{)( kkkkk xuusU

5

),(ki

kkkk usgR

)(max)( kUu

kk xsfkk

)]}(9.07.0[)](58{[ 1 kkkkkkk usufusu

Page 57: 运筹学 .

57

6.边界条件为 下面采用逆序递推计算法 , 从第 5 年度开始递推计算。 k=5 时有

显然,当 u5*=s5时, f5(s5) 有最大值,相应的有 f5(s5)=8

s5 k=4 时有

3. 动态规划方法的基本步骤0)( 1515 sf

,

5055 max)(

suk

sf

)}()](58{[ 6555 ksfusu

50max

suk )](58{[ 555 usu

)( 44 sf )]}(9.07.0[)](58{[max 44454440 44

usufususu

)]}(9.07.0[8)](58{[max 4444440 44

usuususu

)}(2.126.13{max 4440 44

ususu

=

=

因此,当 u4*=s4 时,有最大值 f4(s4)=13.6s4

Page 58: 运筹学 .

58

k=3 时有 可见,当 u3

*=s3时, f3(s3) 有最大值 f3(s3) =17.55s3. k=2 时有 = + =此时,当取 u2

*=0 时有最大值,即 f2(s2)=20.8s2,其中 s2=0.7u1+0.9(s1-u1)

3. 动态规划方法的基本步骤 =)( 33 sf )}()](58{[max 44333

0 33

sfususu

)}(22.1755.17{max 3330 33

ususu

)}()](58{[max 332220 22

sfususu

)](58{[max 2220 22

ususu

)]}(9.07.0[55.17 222 usu )](8.2025.20{[max 222

0 22

ususu

)( 22 sf

Page 59: 运筹学 .

59

k=1 时有 + = 当取 u1

*=0 时 , f1(s1) 有最大值,即 f1(s1)=23.7s1, 因为 s1=1000, 故 f1(s1)=23700 个产品.

按照上述计算顺序寻踪得到下述计算结果:

3. 动态规划方法的基本步骤)( 11 sf )(58{max 111

0 11

ususu

)]}(9.07.0[8.20 111 usu

)}(7.2355.22{max 1110 11

ususu

01 u 10001 s 5000),( 111 usg 23700)( 11 sf

02 u 9002 s 4500),( 222 usg 187208.20)( 222 ssf

Page 60: 运筹学 .

60

上面所讨论的最优决策过程是所谓始端状态 s1固定,终端状态 s6 自由.如果终端也附加上一定的约束条件,那么计算结果将会与之有所差别.例如,若规定在第五个年度结束时,完好的机床数量为 500台 ( 上面只有 278台 ) ,问应该如何安排五年的生产,使之在满足这一终端要求的情况下产量最高?

3. 动态规划方法的基本步骤33 su 8103 s 6480),( 333 usg 1421655.17)( 333 ssf

44 su 5674 s 4536),( 444 usg 77116.13)( 444 ssf

55 su 3975 s 3176),( 555 usg 31766.13)( 555 ssf

2787.0)(9.07.0 55556 xusus

Page 61: 运筹学 .

61

解:由状态转移方程

有得 显而易见,由于固定了终端的状态 s6 ,第五年的决

策变量 U5 的允许决策集合 U5(s5) 也有了约束,上式说明 U5(s5)已退化为一个点,即第五年投入高负荷下生产的机床数只能由式 U5=4.5s5-2500 作出一种决策,故

3. 动态规划方法的基本步骤

= 500

)(9.07.0)(1 kkkkkkk usuusbaus

)(9.07.0 5556 usus

25005.4 55 su

Page 62: 运筹学 .

62

当 k=5 时有 当 k=4 时有

显然,只有取 u4

*=0 , f4(s4) 有最大值,即 f4(s4)=21.7s4-7500 。同理类推

3. 动态规划方法的基本步骤=

5055 max)(

suk

sf

)}(58{ 555 usu )25005.4(5)25005.4(8 555 usu

75005.18 5 s

=

)( 44 sf )}()](58{[max 554440 44

sfususu

}75005.18)(58{max 54440 44

uususu

}7500)](9.07.0[5.18)(58{max 4444440 44

usuususu

}750075.07.21{max 440 44

ussu

= =

Page 63: 运筹学 .

63

k=3时有

可知 ,当 u3*=0时 ,f3(s3)有最大值 f4(s4)=24.5s3-7500.

k=2时有

此时 ,当 u2*=0时有最大值 ,即

f2(s2)=27.1s2-7500

3. 动态规划方法的基本步骤

=

)( 33 sf )}()](58{[max 443330 33

sfususu

}7500)](9.07.0[7.21)](58{[max 3333330 33

usuususu

}75005.243.1{max 330 33

susu

=

)( 22 sf )}()](58{[max 332220 22

sfususu

)](58{[max 2220 22

ususu

}7500)](9.07.0[5.24 222 usu

}75001.279.1{max 220 22

susu

=

=

+

Page 64: 运筹学 .

64

k=1 时有

只有取 u1*=0 时 ,f1(s1) 有最大值,即

f1(s1)=29.4s1-7500 。 由此可见,为了使下一个五年计划开始的一年有完好的机床500台,其最优策略应该为:在前 4 年中,都应该把全部机床投人低负荷下生产,在第 5 年,只能把部分完好机投入高负荷下生产。根据最优策赂,从始端向终端递推计算出各年的状态,即算出每年年初的完好机床台数,因为 s1= 1000台,于是有

3. 动态规划方法的基本步骤

=

)( 11 sf )}()(58{max 221110 11

sfususu

}7500)](9.07.0[1.27)(58{max 1111110 11

usuususu

}75004.294.2{max 110 11

susu=

Page 65: 运筹学 .

65

因此, 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)比终端自由时要低一些。

3. 动态规划方法的基本步骤(台)

(台)

(台)(台)(台)

01 u 10001 s02 u 9009.0)(9.07.0 1

*11

*12 susus

03 u 8109.0)(9.07.0 2*22

*23 susus

04 u 7299.0)(9.07.0 3*33

*34 susus

6569.0)(9.07.0 4*44

*45 susus

2787.0)(9.07.0 55556 xusus (台)

Page 66: 运筹学 .

66

例 5.4 :一个线路网络图,从 A到 E要修建一条石油管道,必须 在 B 、 C 、D 处设立加压站。各边上的数为长度,现需要找一条路使总长度最短。

B3

B2

B1

C3

C2

C1

D3

D2

D1

EA

4

5

6

3

4

3

4

5

4

74

26

5

7

109

7

8

6

3. 动态规划方法的基本步骤

Page 67: 运筹学 .

67

解 : 可分成 4 个阶段: A到 B 、 B到 C 、 C到 D 、 D到 E; 每个阶段 k 的起点称为状态 Sk ; 从 k 阶段的起点出发可以做一选择,即决定到下一阶段的哪个节点 , 称为决策 Xk ;可见 ,Sk+1 是由 Sk 和 Xk 所决定的。

3. 动态规划方法的基本步骤

Page 68: 运筹学 .

68

那么,从 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 。

3. 动态规划方法的基本步骤

Page 69: 运筹学 .

69

① 记 fk(Sk) 为从 Sk 到 E的最短长度 ,称为从 Sk 到 E的距离。

那么, f1(A) 是从 A到 E的最短距离,即最优策略的值。

3. 动态规划方法的基本步骤

Page 70: 运筹学 .

70

② 最短路问题的特点:如果从 A到E 的最优策略经过某节点,那么这个策略的从该节点到 E 的一段,必定是该节点到 E 的所有线路中 Sk 最短的一条,即这一段的长度为 fk( Sk)。

( 1)逆序法:从 E到 A 。 ( 2)顺序法:对节点 Sk ,从 A到Sk 所有线路中,最短的一条的长度记为 φk( S k),例如 φ1( A) = 0 ,称为问题的边界条件。

3. 动态规划方法的基本步骤

Page 71: 运筹学 .

71

动态规划模型建立后,对基本方程分段求解,不像线性规划或非线性规划那样有固定的解法,必须根据具体问题的特点,结合数学技巧灵活求解,如动态规划模型中的状态变量与决策变量若被限定只能取离散值,则可采用离散变量的分段穷举法。当动态规划模型中状态变量与决策变量为连续变量,就要根据方程的具体情况灵活选取连续变量的求解方法。如经典解析方法、线性规划方法、非线性规划法或其它数值计算方法等。还有连续变量的离散化解法和高维问题的降维法及疏密格子点法等等。

3. 动态规划方法的基本步骤

Page 72: 运筹学 .

72

学习方法建议: 第一步 先看问题,充分理解问题的条件、情况及求解目标。 第二步 结合前面讲到的理论和解题过程,考虑如何着手进行求解该问题的工作。分析针对该动态规划问题的“四大要素、一个方程”——这一步在开始时会感到困难,但是一定要下决心去思考,在思考过程中深入理解前文讲到的概念和理论。

4. 动态规划方法应用举例

Page 73: 运筹学 .

73

第三步 动手把求解思路整理出来,或者说,把该问题作为习题独立的来做。 第四步 把自己的求解放到一边,看书中的求解方法,要充分理解教材中的论述。 第五步 对照自己 的求解,分析成败。

4. 动态规划方法应用举例

Page 74: 运筹学 .

76

求 最 短 路 径

Page 75: 运筹学 .

77

BA

CB

D

B

C

D

E

C

2

1

2

3

1

2

3

1

2

5

1

12

1410

610

4

1312

11

3

9

6

5

8

10

5

2

阶段 1 阶段 2 阶段 3 阶段 4 阶段 5

求 最 短 路 径例 5.5

Page 76: 运筹学 .

78

将问题分成五个阶段,第 k 阶段到达的具体地点用状态变量 xk 表示,例如: x2=B3 表示第二阶段到达位置 B3 ,等等。这里状态变量取字符值而不是数值。

将决策定义为到达下一站所选择的路径,例如目前的状态是 x2=B3 ,这时决策允许集合包含三个决策,它们是 D2

(x2)=D2(B3)={B3C1,B3C2,B3C3}

求 最 短 路 径

Page 77: 运筹学 .

79

最优指标函数 fk(xk) 表示从目前状态到 E 的最短路径。终端条件为

f5(x5)=f5(E)=0其含义是从 E到 E 的最短路径为 0 。第四阶 段 的递推方 程 为 :

f x v x d f xd D x

4 4 4 4 4 5 54 4 4

( ) min { ( , ) ( )}( )

从 f 5(x5)到 f 4(x4)的递推过程用下表表示:

x4 D4(x4) x5 v4(x4,d4) v4(x4,d4)+f5(x5) f4(x4) 最优决策 d4*

D1 D1 E E 5 5+0=5* 5 D1

ED2 D2

E E 2 2+0=2* 2 D2 E

求 最 短 路 径

Page 78: 运筹学 .

80

其中 * 表示最优值,在上表中,由于决策允许集合 D4(x4) 中的决策是唯一的,因此这个值就是最优值。

由此得到 f4(x4) 的表达式。由于这是一个离散的函数,取值用列表表示:

f 4(x4) 的表达式

x4 f 4(x4) 最优决策 d4* D1 5 D1

E D2 2 D2

E

求 最 短 路 径

Page 79: 运筹学 .

81

第三阶段的递推方程为:

从 f 4(x4)到 f 3(x3)的递推过程用表格表示如下:

x3 D3(x3) x4 v3(x3, d3

) v3(x3, d3)+f 4(x

4) f 3(x3

) 最优决策 d3*

C1 C1

D1

C1 D2

D1

D2 3 9

3+5=8* 9+2=11

8 C1 D1

C2 C2

D1

C2 D2

D1 D2

6 5

6+5=11 5+2=7*

7

C2 D2

C3 C3

D1

C3 D2

D1 D2

8 10

8+5=13 10+2=12*

12 C3 D2

)}(),({min)( 44333)(

33333

xfdxvxfxDd

求 最 短 路 径

Page 80: 运筹学 .

82

由此得到 f3(x3) 的表达式:

x3 f 3(x3) 最优决策 d3* C1 8 C1

D1 C2 7 C2

D2 C3 12 C3

D2 第二阶段的递推方程为:

)}(),({min)( 33222)(

22222

xfdxvxfxDd

从 f 3(x3)到 f 2(x2)的递推过程用表格表示如下:

求 最 短 路 径

Page 81: 运筹学 .

83

x2 D2(x2) x3 v2(x2, d2) v2(x2, d2)+f 3(x3) f 2(x2) 最优决策 d2*

B1

B1 C1

B1 C2

B1 C3

C1

C2

C3

12 14 10

12+8=20* 14+7=21 10+12=22

20

B1

C1

B2

B2 C1

B2 C2

B2 C3

C1 C2

C3

6 10 4

6+8=14* 10+7=17 4+12=16

14

B2

C1

B3

B3 C1

B3 C2

B3 C3

C1 C2

C3

13 12 11

13+8=21 12+7=19* 11+12=23

19

B3

C2

求 最 短 路 径

Page 82: 运筹学 .

84

由此得到 f2(x2) 的表达式:x2 f 2(x2) 最优决策 d2*

B1 20 B1 C1

B2 14 B2 C1

B3 19 B3 C2

求 最 短 路 径

Page 83: 运筹学 .

85

第一阶段的递推方程为:)}(),({min)( 22111

)(11

111

xfdxvxfxDd

从 f 2(x2)到 f 1(x1)的递推过程用表格表示如下:

x1 D1(x1) x2 v1(x1, d1) v1(x1, d1)+f 2(x2) f 1(x1) 最优决策 d1*

A

A B1

A B2

A B3

B1

B2

B3

2 5 1

2+20=22 5+14=19* 1+19=20

19

A B 2

求 最 短 路 径

Page 84: 运筹学 .

86

由此得到 f1(x1) 的表达式

x1 f 1(x1) 最优决策 d1* A 19 A B2

求 最 短 路 径

Page 85: 运筹学 .

87

资 源 分 配 问 题

Page 86: 运筹学 .

88

例 5.6: 有资金 4万元,投资 A 、 B 、 C三个项目,每个项目的投资效益与投入该项目的资金有关。三个项目 A 、 B 、 C 的投资效益(万吨)和投入资金(万元)关系见下表:

求对三个项目的最优投资分配,使总投资效益最大。

资 源 分 配 问 题

Page 87: 运筹学 .

89

1. 阶段 k :每投资一个项目作为一个阶段;2. 状态变量 xk :投资第 k 个项目前的资金数;

3. 决策变量 dk :第 k 个项目的投资;4. 决策允许集合: 0≤dk≤xk

5. 状态转移方程: xk+1=xk-dk

6. 阶段指标: vk(xk ,dk)见表中所示;7. 递推方程: fk(xk)=max{vk(xk ,dk)+fk+1

(xk+1)}8. 终端条件: f4(x4)=0

资 源 分 配 问 题

Page 88: 运筹学 .

90

k=4 , f4(x4)=0k=3 , 0≤d3≤x3 , x4=x3-d3

资 源 分 配 问 题

Page 89: 运筹学 .

91

k=2 , 0≤d2≤x2 , x3=x2-d2

资 源 分 配 问 题

Page 90: 运筹学 .

92

k=1 , 0≤d1≤x1 , x2=x1-d1

资 源 分 配 问 题

Page 91: 运筹学 .

93

背 包 问 题

Page 92: 运筹学 .

94

背 包 问 题

Page 93: 运筹学 .

95

则 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 种物品的件数;

背 包 问 题

Page 94: 运筹学 .

96

4. 决策允许集合:Dk(xk)={dk|0 dkxk/wk , dk 为整数 };5. 状态转移方程: xk+1=xk-wkdk

6. 阶段指标: vk=ckdk7. 递推方程 fk(xk)=max{ckdk+fk+1(xk+1)} =max{ckdk+fk+1(xk-wkdk)}8. 终端条件: fn+1(xn+1)=0

背 包 问 题

Page 95: 运筹学 .

97

例 5.7: 对于一个具体问题 c1=65 ,c2=80 , c3=30; w1=2 , w2=3 , w3=1;以及 W=5用动态规划求解 f4(x4)=0 对于 k=3

列出 f 3(x3)的数值表

背 包 问 题

Page 96: 运筹学 .

98

Page 97: 运筹学 .

99

Page 98: 运筹学 .

100

Page 99: 运筹学 .

101

由题意知,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时,相应的最优解立即可以

得到。

Page 100: 运筹学 .

102

机器负荷分配问题

Page 101: 运筹学 .

103

最短路径问题和背包问题的状态变量和决策变量都只能取离散的整数值。当状态变量和决策变量的取值范围很大,或者这些变量是连续的,用列举的方法就比较困难或者根本不可能了。这就需要用连续变量的处理方法。

例 5.8:某种机器可以在高、低两种负荷下生产。高负荷生产条件下机器完好率为 0. 7,即如果年初有u 台完好机器投入生产,则年末完好的机器数量为0. 7u台。系数 0. 7称为完好率。年初投入高负荷运行的 u台机器的年产量为 8u吨。系数 8称为单台产量。低负荷运行时,机器完好率为 0. 9,单台产量为5吨。设开始时有 1000台完好机器,要制订五年计划,每年年初将完好的机器一部分分配到高负荷生产,剩下的机器分配到低负荷生产,使五年的总产量为最高。

Page 102: 运筹学 .

104

构造动态规划模型如下: 阶段 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|0dkxk} 阶段指标: vk(xk ,dk)=8dk+5(xk-dk) 终端条件: f6(x6)=0

机器负荷分配问题

Page 103: 运筹学 .

105

递推方程: fk(xk)=max{vk(xk,dk)+fk+1(xk+1)}

dkDk(xk)

= max{8dk+5(xk- dk)+fk+1[0.7dk+0.9(xk-dk)]} 0dkxk

根据题意,本题的决策允许集合应该是一个整数集合,但由于决策允许集合中可取的决策数量很大,一一列举计算量很大,不妨认为状态变量和决策变量都是连续的,得到最优解后,再作取整处理。

机器负荷分配问题

Page 104: 运筹学 .

106

f5(x5)=max{8d5+5(x5-d5)+f6(x6)} 0d5x5

=max{3d5+5x5}=8x5, d5*=x5 0d5x5

f4(x4)=max{8d4+5(x4-d4)+f5(x5)} 0d4x4

=max{8d4+5(x4-d4)+8x5} 0d4x4

=max{8d4+5(x4-d4)+8[0.7d4+0.9(x4-d4)]}

0d4x4

=max{1.4d4+12.3x4}=13.7x4, d4*=x4

0d4x4

机器负荷分配问题

Page 105: 运筹学 .

107

f3(x3)=max{8d3+5(x3-d3)+f4(x4)} 0d3x3

=max{8d3+5(x3-d3)+13.7x4} 0d3x3

=max{8d3+5(x3-d3)+13.7[0.7d3+0.9(x3-d3)]} 0d3x3

=max{0.28d3+17.24x3}=17.52x3, d3*=x3 0d3x3

机器负荷分配问题

Page 106: 运筹学 .

108

f2(x2)=max{8d2+5(x2-d2)+f3(x3)} 0d2x2

=max{8d2+5(x2-d2)+17.52x3} 0d2x2

=max{8d2+5(x2-d2)+17.52[0.7d2+0.9(x2-d2)]} 0d2x2

=max{-0.504d2+20.77x2}=20.77x2,d2*=0 0d2x2

机器负荷分配问题

Page 107: 运筹学 .

109

f1(x1)=max{8d1+5(x1-d1)+f2(x2)} 0d1x1

=max{8d1+5(x1-d1)+20.77x2} 0d1x1

=max{8d1+5(x1-d1)+20.77[0.7d1+0.9(x1-d1)]} 0d1x1

=max{-0.05d1+23.69x1}=23.69x1,d1*=0 0d1x1

机器负荷分配问题

Page 108: 运筹学 .

110

由此可以得到:f1(x1)=23.69x1, d1*=0f2(x2)=20.77x2, d2*=0f3(x3)=17.52x3, d3*=x3f4(x4)=13.60x4, d4*=x4f5(x5)=8x5 d5*=x5

用 x1=1000代入,得到五年最大产量为f1(x1)=f1(1000)=23690

机器负荷分配问题

Page 109: 运筹学 .

111

每年投入高负荷运行的 机器数以每年初完好的机器数为:

x1=1000d1*=0, x2=0.7d1+0.9(x1-d1)=900d2*=0, x3=0.7d2+0.9(x2-d2)=810d3*=x3=810, x4=0.7d3+0.9(x3-d3)=567d4*=x4=567, x5=0.7d4+0.9(x4-d4)=397d5*=x5=397, x6=0.7d5+0.9(x5-d5)=278

机器负荷分配问题

Page 110: 运筹学 .

112

在这个例子中,状态变量的终端值 x6 是未加约束的,如果要求在第五年末(即第六年初)完好的机器数不少于 500台,这时决策变量 d5 的决策允许集合将成为:D5(x5)={d5|0.7d5+0.9(x5-d5)500, d50}即 0.9x5-0.2d5500d50 或 0d54.5x5-2500

容易想象,这时的最大产量将比 x6 是自由的情况下小。

这个例子可以推广到一般情况。设高负荷生产时机器的完好率为 k1 ,单台产量为p1;低负荷完好率为 k2 ,单台产量为 p2 。若有 t满足 :

机器负荷分配问题

Page 111: 运筹学 .

113

则从 1—t-1 年,年初将全部完好机器投入低负荷运行,从 t—n 年,年初将全部完好机器投入高负荷运行,这 样的决策,将使总产量达到最大。

tn

i

itn

i

i kkkp

ppk

01

121

21)1(

01 )(

机器负荷分配问题

Page 112: 运筹学 .

114

生 产 库 存 问 题

Page 113: 运筹学 .

115

例 5.9 :一个工厂生产某种产品 ,1- 7 月份生产成本和产品需求量的变化情 况如下表:

月份(k) 1 2 3 4 5 6 7

生产成本(ck) 11 18 13 17 20 10 15

需求量(rk) 0 8 5 3 2 7 4

为了调节生产生产和需求,工厂设有一个产品仓库,库容量 H=9。已知期初库存量为 2,要求期末(七月低)库存量为 0。每个月生产的产品在月末入库,月初根据当月需求发货。求七个月的生产量,能满足各月的需求,并使生产成本最低。

生 产 库 存 问 题

Page 114: 运筹学 .

116

阶段 k :月份, k=1,2,…,7,8;状态变量 xk:第 k 个月初(发货以前)的库存量; 决策变量 dk:第 k 个月的生产量;状态转移方程: xk+1=xk-rk+dk; 决策允许集合: Dk(xk)={dk | dk0, rk+1xk+1H }

={dk | dk0, rk+1xk-rk+dkH }; 阶段指标: vk(xk ,dk)=ckdk;终端条件: f8(x8)=0, x8=0;

生 产 库 存 问 题

Page 115: 运筹学 .

117

递推方程: fk(xk)=min{vk(xk ,dk)+fk+1(xk+1)}

dkDk(xk)

=min{ckdk+fk+1(xk-rk+dk)} dkDk(xk)

对于 k=7因为 x8=0有 d7=0递推方程为f7(x7)=min{c7d7+f8(x8)}=0 d7=0

生 产 库 存 问 题

Page 116: 运筹学 .

118

对于 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

生 产 库 存 问 题

Page 117: 运筹学 .

119

对于 k=5f5(x5)=min{c5d5+f6(x6)} d5D5(x5) =min{20d5+110-10x6} d5D5(x5) =min{20d5+110-10(x5-r5+d5)}

d5D5(x5)

=min{20d5+110-10(x5-2+d5)} d5D5(x5)

=min{10d5-10x5+130} d5D5(x5)

D5(x5) ={d5| d50, r6x5-r5+d5H } ={d5|d50, r6+r5-x5d5H+r5-x5}

={d5| d50, 9-x5d511-x5}

生 产 库 存 问 题

Page 118: 运筹学 .

120

因为 x5H=9 ,因此 9-x50 ,决策允许集合可以简化为 D5(x5)={d5| 9-x5d511-x5}递推方程成为f5(x5)=min{10d5-10x5+130} 9-x5d511-x5

=10(9-x5)-10x5+130 =220-20x5

d5*=9-x5

生 产 库 存 问 题

Page 119: 运筹学 .

121

对于 k=4f4(x4)=min{c4d4+f5(x5)} d4D4(x4)

=min{17d4+220-20x5} d4D4(x4)

=min{17d4+220-20(x4-r4+d4)} d4D4(x4)

=min{17d4+220-20(x4-3+d4)} d4D4(x4)

=min{-3d4-20x4+280} d4D4(x4)

生 产 库 存 问 题

Page 120: 运筹学 .

122

D4(x4)={d4| d40, r5x4-r4+d4H}={d4| d40, r5+r4-x4d4H+r4-x4}={d4| d40, 5-x4d412-x4}={d4| max[0,5-x4]d412-x4}

由于 在 f4(x4) 的表达式中 d4 的系数是 -3, 因此 d4 在决策允许集合中应取集合中的

最大值,即 d4=12-x4

由此 f4(x4)=-3(12-x4)-20x4+280 =-17x4+244

生 产 库 存 问 题

Page 121: 运筹学 .

123

对于 k=3f3(x3)=min {c3d3+f4(x4)} d3D3(x3)=min {13d3+244-17x4} d3D3(x3) =min {13d3+244-17(x3-r3+d3)} d3D3(x3)

=min {-4d3-17x3+329} d3D3(x3) D3(x3)={d3| d30,r4x3-r3+d3H}

={d3| d30,r4+r3-x3d3H+r3-x3}

={d3| d30,8-x3d314-x3}={d3| max[0,8-x3]d314-x3}

由此 f3(x3)=-4(14-x3)-17x3+329 =-13x3+273, d3*=14-x3

生 产 库 存 问 题

Page 122: 运筹学 .

124

对于 k=2f2(x2)=min{c2d2+f3(x3)} d2D2(x2)

=min{18d2+273-13x3} d2D2(x2)

=min{18d2+273-13(x2-r2+d2)} d2D2(x2)

=min{18d2+273-13(x2-8+d2)} d2D2(x2)

=min{5d2-13x2+377} d2D2(x2) D2(x2)={d2|d20,r3x2-r2+d2H}

={d2|d20,r3+r2-x2d2H+r2-x2} ={d2|d20,13-x2d217-x2}

生 产 库 存 问 题

Page 123: 运筹学 .

125

因为 13-x2>0所以 d2(x2)={d2|13-x2d217-x2}由此 f2(x2)=5(13-x2)-13x2+377

=-18x2+442, d2*=13-x2

生 产 库 存 问 题

Page 124: 运筹学 .

126

对于 k=1f1(x1)=min{c1d1+f2(x2)} d1D1(x1)

=min{11d1+442-18x2} d1D1(x1) =min{11d1+442-18(x1-r1+d1)} d1D1(x1)

=min{11d1+442-18(x1-0+d1)} d1D1(x1)

=min{-7d1-18x1+442} d1D1(x1)

D1(x1)={d1|d10,r2x1-r1+d1H}

={d1|d10,r2+r1-x1d1H+r1-x1}

={d1|d10,8-x1d19-x1}

生 产 库 存 问 题

Page 125: 运筹学 .

127

根据题意 x1=2所以 D1(x1)={d1| 6d17}由此 d1=7f1(x1)=-7d1-18x1+442

=-7×7- 18×2+ 442 =357

将以上结果总结成下表:k 1 2 3 4 5 6 7 ck 11 18 13 17 20 10 15 rk 0 8 5 3 2 7 4 xk 2 9 5 9 9 7 4 dk 7 13-x2=4 14-x3=9 12-x4=3 9-x5=0 11-x6=4 0

生 产 库 存 问 题

Page 126: 运筹学 .

128

设 备 更 新 问 题

Page 127: 运筹学 .

129

一台设备的价格为 P ,运行 寿命为 n 年,每年的维修费用是设备役龄的函数,记为 C(t) ,新设备的役龄为 t=0 。旧设备出售的价格是设备役龄的函数,记为 S(t) 。在 n 年末,役龄为 t 的设备残值为R(t) 。现有一台役龄为 T 的设备,在使用过程中,使用者每年都面临“继续使用”或“更新”的策略,

设 备 更 新 问 题

Page 128: 运筹学 .

130

阶 段 k: 运 行 年 份 ; 状 态 变 量 x k: 设 备 的 役 龄 t ; 决 策 变 量 d k:

继续使用

更新)(

)(Re

KeepK

placeRd k

状 态 转 移 方 程 :

Kdx

Rdx

kk

kk 1

11

阶段指标:

KdtC

RdtSCP

KdxC

RdxSCPv

k

k

kk

kkk

)(

)()0(

)(

)()0(

Page 129: 运筹学 .

131

递 推 方 程 :

KdtftC

RdftSCP

KdxfxC

RdxfxSCPxf

kk

kk

kkkk

kkkkkk

)1()(

)1()()0(min

)()(

)()()0(min)(

1

1

11

11

终 端 条 件 : f n ( t ) = - R ( t )

设 备 更 新 问 题

Page 130: 运筹学 .

132

例 5.10 :设具体数据如下:T 0 1 2 3 4 5 6 7

C(t) 10 13 20 40 70 100 100 -- S(t) -- 32 21 11 5 0 0 0 R(t) -- 25 17 8 0 0 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

设 备 更 新 问 题

Page 131: 运筹学 .

133

对 于 k = 5 :

Kd

Rd

tftC

ftSCPtf

5

5

6

65 )1()(

)1()()0(min)(

Kd

fC

fSCPf

*5

6

65

,44

3min

)17(13

)25(321050min

)2()1(

)1()1()0(min)1(

Kd

fC

fSCPf

*5

6

65

,1212

14min

)8(20

)25(211050min

)3()2(

)1()2()0(min)2(

Page 132: 运筹学 .

134

Rd

fC

fSCPf

*5

6

65

,2440

24min

040

)25(111050min

)4()3(

)1()3()0(min)3(

Rd

fC

fSCPf

*5

6

65

,3070

30min

070

)25(51050min

)5()4(

)1()4()0(min)4(

Rd

fC

fSCPf

*5

6

65

,35100

35min

0100

)25(01050min

)6()5(

)1()5()0(min)5(

Page 133: 运筹学 .

135

Rd

fC

fSCPf

*5

6

65

,35100

35min

0100

)25(01050min

)7()6(

)1()6()0(min)6(

Kd

Rd

tftC

ftSCPtf

4

4

5

54 )1()(

)1()()0(min)(

Rd

fC

fSCPf

*4

5

54

,2425

24min

1213

)4(321050min

)2()1(

)1()1()0(min)1(

对于 k=4:

Page 134: 运筹学 .

136

Rd

fC

fSCPf

*4

5

54

,3544

35min

2420

)4(211050min

)3()2(

)1()2()0(min)2(

Rd

fC

fSCPf

*4

5

54

,4570

45min

3040

)4(111050min

)4()3(

)1()3()0(min)3(

Page 135: 运筹学 .

137

Rd

fC

fSCPf

*4

5

54

,51105

51min

3570

)4(51050min

)5()4(

)1()4()0(min)4(

Rd

fC

fSCPf

*5

5

54

,56135

56min

35100

)4(01050min

)6()5(

)1()5()0(min)5(

Page 136: 运筹学 .

138

对于 k=3:

Kd

Rd

tftC

ftSCPtf

3

3

4

43 )1()(

)1()()0(min)(

Kd

fC

fSCPf

*3

4

43

,4848

52min

3513

24321050min

)2()1(

)1()1()0(min)1(

Page 137: 运筹学 .

139

Rd

fC

fSCPf

*3

4

43

,7391

73min

5140

24111050min

)4()3(

)1()3()0(min)3(

Rd

fC

fSCPf

*3

4

43

,79126

79min

5670

2451050min

)5()4(

)1()4()0(min)4(

Rd

fC

fSCPf

*3

4

43

,6365

63min

4520

24211050min

)3()2(

)1()2()0(min)2(

Page 138: 运筹学 .

140

Kd

Rd

tftC

ftSCPtf

2

2

3

32 )1()(

)1()()0(min)(

RdKd

fC

fSCPf

*2

*2

3

32

,7676

76min

6313

48321050min

)2()1(

)1()1()0(min)1(

或者

Rd

fC

fSCPf

*2

3

32

,8793

87min

7320

48211050min

)3()2(

)1()2()0(min)2(

对于 k=2:

Page 139: 运筹学 .

141

Rd

fC

fSCPf

*2

3

32

,73119

97min

7940

48111050min

)4()3(

)1()3()0(min)3(

对于 k=1:

Kd

Rd

tftC

ftSCPtf

1

1

2

21 )1()(

)1()()0(min)(

Rd

fC

fSCPf

*1

2

21

,115117

115min

9720

76211050min

)3()2(

)1()2()0(min)2(

97

Page 140: 运筹学 .

142

由以上计算可知,本问题有两个决策,它们对应的最小费用都是 115 。

年份 1 2 3 4 5

决策 1 更新 更新 继续 更新 继续

决策 2 更新 继续 更新 更新 继续

这两个决策是

设 备 更 新 问 题