引言
例如短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动 态规划方法比用其它方法求解更为方便。
虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时 间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为 多阶段决策过程,也可以用动态规划方法方便地求解。
例1 最短路线问题
例2 生产计划问题
1.2决策过程的分类
根据过程的时间变量是离散的还是连续的,分为离散时间决策过程 和连续时间决策过程;根据过程的 演变是确定的还是随机的,分为确定性决策过程和随机性决策过程,其中应用广的是确定性多阶段决策过程。
2 基本概念、基本方程和计算方法
2.1 动态规划的基本概念和基本方程
一个多阶段决策过程优化问题的动态规划模型通常包含以下要素。
2.2.1阶段
阶段是对整个过程的自然划分。通常根据时间顺序或空间顺序特征来分阶段,以便按阶段的次序解优化问题。
阶段变量一般用k=1,2,…,n表示。在例1中由A出发为k=1,由Bi(i=1,2)出发为k=2,依次下去从Fi(i=1,2)出发为k=6,共n=6个阶段。在例2中按照第一、二、三、四季度分为k=1,2,3,4,共四个阶段。
2.1.2状态
状态(state)表示每个阶段开始时过程所处的自然状况。它应能描述过程特征并且无后效性,即当某阶段的状态变量给定时,这个阶段以后过程的演变与该阶段以前各阶段的状态无关。通常还要求状态是直接或间接可以观测的。
描述状态的变量称状态变量。变量允许取值的范围称允许状态集合。用
x
k
x_k
xk表示第k阶段的状态变量,它可以是一个数或一个向量。用
X
k
X_k
Xk表示第k阶段允许的状态集合。
在例1中
x
2
x_2
x2可取B1,B2,或将Bi定义为i(i=1,2),则x2=1或2,而X2={1,2}。
n个阶段的决策过程有n+1个状态变量,xn+1表示xn演变的结果。在例1中x7=1。
根据过程演变的具体情况,状态变量可以是离散的或连续的。为了计算的方便有时将连续变量离散化;为了分析的方便有时又将离散变量视为连续的。
状态变量简称为状态。
2.1.3 决策
当一个阶段的状态确定后,可以作出各种选择而演变到下一阶段的某个状态,这种选择手段称为决策,在最优控制问题中也称为控制。
描述决策的变量称为决策变量,变量允许取值的范围称允许决策集合。
用
u
k
(
x
k
)
表
示
第
k
个
阶
段
处
于
状
态
x
k
时
的
决
策
变
量
,
它
是
x
k
的
函
数
,
用
U
k
(
x
k
)
表
示
x
k
的
允
许
决
策
集
合
。
在
例
1
中
u
2
(
B
1
)
可
取
C
1
,
C
2
或
C
3
,
可
记
作
u
2
(
1
)
=
1
,
2
,
3
,
而
U
2
(
1
)
=
{
1
,
2
,
3
}
用u_k(x_k)表示第k个阶段处于状态x_k时的决策变量,它是x_k的函数,用U_k(x_k)表示x_k的允许决策集合。在例1中u_2(B_1)可取C_1,C_2或C_3,可记作u_2(1)=1,2,3,而U_2(1)=\{1,2,3\}
用uk(xk)表示第k个阶段处于状态xk时的决策变量,它是xk的函数,用Uk(xk)表示xk的允许决策集合。在例1中u2(B1)可取C1,C2或C3,可记作u2(1)=1,2,3,而U2(1)={1,2,3}。
决策变量简称决策。
2.1.4 策略
决
策
组
成
的
序
列
称
为
策
略
。
由
初
始
状
态
x
1
开
始
的
全
过
程
的
策
略
记
作
p
1
n
(
x
1
)
即
决策组成的序列称为策略。由初始状态x_1开始的全过程的策略记作p_{1n}(x_1)即
决策组成的序列称为策略。由初始状态x1开始的全过程的策略记作p1n(x1)即
p
1
n
(
x
1
)
=
{
u
1
(
x
1
)
,
u
2
(
x
2
)
,
.
.
.
,
u
n
(
x
n
)
}
p_{1n}(x_1)=\{u_1(x_1),u_2(x_2),...,u_n(x_n)\}
p1n(x1)={u1(x1),u2(x2),...,un(xn)}
由
第
k
个
阶
段
的
状
态
x
k
开
始
到
终
止
状
态
的
后
部
子
过
程
策
略
记
作
p
k
n
(
x
k
)
,
即
由第k个阶段的状态x_k开始到终止状态的后部子过程策略记作p_{kn}(x_k),即
由第k个阶段的状态xk开始到终止状态的后部子过程策略记作pkn(xk),即
p
k
n
=
{
u
k
(
x
k
)
,
.
.
.
,
u
n
(
x
n
)
}
p_{kn}=\{u_k(x_k),...,u_n(x_n)\}
pkn={uk(xk),...,un(xn)}
类
似
地
,
由
第
k
到
第
j
阶
段
的
子
过
程
的
策
略
记
作
类似地,由第k到第j阶段的子过程的策略记作
类似地,由第k到第j阶段的子过程的策略记作
p
k
j
(
x
k
)
=
{
u
k
(
x
k
)
,
.
.
.
,
u
j
(
x
j
)
}
p_{kj}(x_k)=\{u_k(x_k),...,u_j(x_j)\}
pkj(xk)={uk(xk),...,uj(xj)}
可供选择的策略有一定发范围,称为允许策略集合,用P1n(x1),Pkn(xk),Pkj(xk)表示。
2.1.5 状态转移方程
在确定性过程中,一旦某阶段的状态和决策为已知,下阶段的状态便完全确定。用状态转移方程表示这种演变规律,写作
2.1.6指标函数和最优值函数
指标函数是衡量过程优劣的数量指标,它是定义在全过程和所有后部子过程上的数量函数,用Vk,n(xk,uk,xk+1,…,xn+1)表示,k=1,2,…,n。指标函数应具有可分离性,即Vk,n可表示为xk,uk,Vk+1,n的函数,记为
V
k
,
n
(
x
k
,
u
k
,
x
k
+
1
,
.
.
.
,
x
x
+
1
)
=
φ
k
(
x
k
,
u
k
,
V
k
+
1
,
n
(
x
k
+
1
,
u
k
+
1
,
.
.
.
,
x
n
+
1
)
)
V_{k,n}(x_k,u_k,x_{k+1},...,x_{x+1})=φ_k(x_k,u_k,V_{k+1,n}(x_{k+1},u_{k+1},...,x_{n+1}))
Vk,n(xk,uk,xk+1,...,xx+1)=φk(xk,uk,Vk+1,n(xk+1,uk+1,...,xn+1))
并且函数φk对变量Vk+1,n是严格单调的。
根据状态转移方程指标函数Vk,n还可以表示为状态xk和策略pkn的函数,即Vk,n(xk,pkn)。在xk给定时指标函数Vk,n对pkn的最优值称为最优函数。记为fk(xk),即
2.1.7最优策略和最优轨线
2.1.8递归方程
model:
Title Dynamic Programming;
sets: vertex/A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G/:L;
road(vertex,vertex)/A B1,A B2,B1 C1,B1 C2,B1 C3,B2 C2,B2 C3,B2 C4,
C1 D1,C1 D2,C2 D1,C2 D2,C3 D2,C3 D3,C4 D2,C4 D3,
D1 E1,D1 E2,D2 E2,D2 E3,D3 E2,D3 E3,
E1 F1,E1 F2,E2 F1,E2 F2,E3 F1,E3 F2,F1 G,F2 G/:D;
endsets
data:
D=5 3 1 3 6 8 7 6
6 8 3 5 3 3 8 4
2 2 1 2 3 3
3 5 5 2 6 6 4 3;
L=0,,,,,,,,,,,,,,,;
enddata
@for(vertex(i)|i#GT#1:L(i)=@min(road(j,i):L(j)+D(j,i)));
end
纵上所述,如果一个问题能用动态规划方法求解,那么,我们可以按下列步骤,首 先建立起动态规划的数学模型:
- 将过程划分成恰当的阶段。
- 正确选择状态变量 x k x_k xk,使它既能描述过程的状态,又满足无后效性,同时确定允许状态集合 X k X_k Xk。
- 选择决策变量 u k u_k uk,确定允许决策集合 U k ( x k ) U_k(x_k) Uk(xk)。
- 写出状态转移方程。
- 确定阶段指标 v k ( x k , u k ) v_k(x_k,u_k) vk(xk,uk)及指标函数 V k n V_{kn} Vkn的形式(阶段指标之和,阶段指标之积,阶段指标之极大或极小等)。
- 写出基本方程即优值函数满足的递归方程,以及端点条件。
3 逆序解法的计算框图
以自由终端、固定始端、指标函数取和的形式的逆序解法为例给出计算框图,其它情况容易在这个基础上修改得到。 一般化的自由终端条件为:
其中φ为已知,固定始端条件可表示为
X
1
=
{
x
1
}
=
{
x
1
∗
}
X_1=\{x_1\}=\{x_1^*\}
X1={x1}={x1∗}。
如果状态xk和uk是连续变量,用数值方法求解时需要按照精度要求进行离散化。 设状态xk的允许集合为:
状态转移方程和阶段指标应对xk的每个取值xki和xui的每个取值ukj(j)计算,即Tk=Tk(xki)的允许集合为Tk=Tk(xk1,),vk=v(xki,uki(j))。最优值函数应对xk的每个取值xki计算。基本方程可以表为:
用动态规划写下列线性规划
其
中
g
k
(
u
k
)
为
任
意
的
已
知
函
数
。
其中g_k(u_k)为任意的已知函数。
其中gk(uk)为任意的已知函数。
解
:
按
变
量
u
k
的
序
号
划
分
阶
段
,
看
作
n
段
决
策
过
程
。
设
状
态
x
1
,
x
2
,
.
.
.
,
x
n
+
1
,
取
问
题
中
的
变
量
u
1
,
u
2
,
.
.
.
,
u
n
为
决
策
。
状
态
转
移
方
程
为
:
解:按变量u_k的序号划分阶段,看作n段决策过程。设状态x_1,x_2,...,x_{n+1},取问题中的变量u_1,u_2,...,u_n为决策。状态转移方程为:
解:按变量uk的序号划分阶段,看作n段决策过程。设状态x1,x2,...,xn+1,取问题中的变量u1,u2,...,un为决策。状态转移方程为:
g
k
(
u
k
)
为
阶
段
指
标
,
最
优
值
函
数
的
基
本
方
程
为
(
注
意
到
x
n
+
1
=
0
)
g_k(u_k)为阶段指标,最优值函数的基本方程为(注意到x_{n+1}=0)
gk(uk)为阶段指标,最优值函数的基本方程为(注意到xn+1=0)