§7 动 态 规 划
[最优化原则] 一个过程的最优策略具有以下性质,即无论其初始状态和初始决策如何,
其今后各决策对以第一个决策所形成的状态作为初始状态的过程而言,必须构成最优策略。
[多阶段决策过程] 命x为状态矢量,描述物理系统在任何时刻的状态,设状态向量x是 n维列矢量。对N阶段决策过程:系统的状态先由变换x2 g(x1,m1),从x1变到x2,得到 一个输出或效益r(x1,m1),然后由变换x3 g(x2,m2)从x2变到x3,得到一个输出或效益
, ), ,
( 2 m2
r x 最 后 由 变 换 xN g(xN1,mN1) 从 xN1 变 到 xN , 得 到 一 个 输 出 或 效 益 )
, ( N1 mN1
r x ,问题是选择一个N阶段策略
m1,m2,m3,,mN
U使总效率
N
j
j j
N r m
R
1
) , (x
为最大。N 阶段过程的最大总效益显然只是初始状态x1与阶段长度N的函数,用 fN(x1)表 示
) (x1 fN
N
j
j j U
m r m
i 1
) , (
max x
决定 fN(x1)的策略
mj 称为最优策略或最优控制策略。最优化原则描述了最优控制策略的基本性质,它是建立在不变嵌入原则的基本概念上 的。这个概念表示解一个特殊的最优决策问题时,可以把原来的问题嵌入一类较容易解的类 似问题之中。对多阶段决策过程就可以将原来的多阶段最优化问题以解一单个阶段决策序列 的问题来代替,这无疑是比较容易处理的。
根据最优化原则,N阶段决策过程的总效益可以写成
)]
, ( [ )
,
( 1 m1 f 1 g 1 m1 r
RN x N x
上式右端的第一项是初始效益,而第二项则代表最后N1个阶段的最大效益。那末最大总效 益为
( , ) [ ( , )]
max )
( 1 r 1 m1 f 1 g 1 m1
f N
U N m
i
x x
x
这个方程对N2都成立。但当N 1时最大效益为
( , )
max )
( 1 1 1
1 r m
f
U
mi x
x
显然,应用基本原则,那末N阶段决策过程就变为一个N个单阶段决策过程的序列,因此使 这个最优化问题可以在系统的迭代方式下得到解决。
[离散动态系统的最优控制] 设有一离散动态系统,其状态差分方程为 )]
( ), ( [ ) 1
(i x i mi
x f (i0,1,,N1) 初始条件为
) 0
0
( x
x
其中x(i)为n维状态矢量,m(i)为r维控制矢量,f 为n维矢函数。假定x和m满足约束条件 C : m维矢函数g(x,m)的每个分量小于或等于零。系统的性能指标(或目标函数)为
1
0
)]
( ), ( [ )]
( [
N
i
N G x N F x i m i
I
问题是要决定一个控制序列m(0),m(1),,m(N1),当将
m(i)
及相应的
x(i) 代入目标函数 时使IN达到最小(或最大)值。这是一个N阶段决策过程(图18。14),目标函数的最小值必为初始状态x(0)和阶段长
度N的函数,如果把它记作VN[x(0)]则
1
) 0 1 ( , ), 0
( min [ ( )] [ ( ), ()]
)]
0 ( [
N
G i N m
N m G N F i i
V x x x m
根据最优化原则可将上式写成
[ (0), (0)] [ (1)]
min )]
0 (
[ 1
) 0
( x m x
x
N
G
N m F V
V 式中
1
) 1 1 ( , ), 1
1[ (1)] ( min [ ( )] [ ( ), ( )]
N
G i N m
N m G N F i i
V x x x m
这是一个函数方程,可以递推求解,每次都是求一个m(Nk)的最优解,其求解步骤如下:
(1) 令V0[x(N 1)]G[x(N)]
(2) 对任一个x(N1),由
[ ( 1), ( 1)] [ ( )]
min )]
1 (
[ 0
) 1
1 N ( F N N V N
V x m N G x m x
式中x(N)f[x(N1),m(N1)],求出使V1[x(N1)]的右端取最小值的m(N1)则
[ ( 1), ( 1)]
)]
1 ( ), ( [ )]
1 (
[ 0
1 N F N N V N N
V x x m f x m
(3) 对任一个x(N2),由
[ ( 2), ( 2)] [ ( 1)]
min )]
2 (
[ 1
) 2
2 (
F N N V N
N V
G N
m x m x
x
式中 x(N1)f[x(N2),m(N2)]
求出使上式右端取最小值的m(N 2),则
[ ( 2), ( 2)]
)]
2 ( ), 2 ( [ )]
2 (
[ 1
2 N F N N V N N
V x x m f x m
(4) 一般地,如果已经算出VN(k1)[x(k1)],则对任一x(k), 由
[ ( ), ( )] [ ( 1)]
min )]
(
[ ( 1)
)
(
k F k k V k
V N k
G k k m
N x x m x
式中x(k1)f[x(k),m(k)],可求出使上式的右端为极小的m(k),由此得
[ ( ), ( )]
)]
( ), ( [ )]
(
[ k F k k V ( 1) k k
VNk x x m Nk f x m
(5) 重 复 步 骤(4),由 kN2 一 直 算 到 k 0 为 止 。 这 样 , 便 可 算 出 最 优 策 略 )
1 ( , ), 1 ( ), 0
(
m m N
m 和目标函数的最优值VN[x(0)]。
[分配问题] 设有一定数量的某种资源x0可用于 n 种生产,如以数量xi应用于第 i 种生
产,则相应的收入为gi(xi),问应如何分配此资源于这n种生产使总收入最大?
问题的数学模型是 求x1,x2,,xn满足
) , , 2 , 1 ( 0
0,
2
1 x x x x i n
x n i
且使
) ( )
( )
( 1 2 2
1 x g x gn xn
g
取最大值。
这是一个规划问题,当gi(xi)都是线性函数时,它是个线性规划问题,否则它是一个非 线性规划问题。当n比较大时,具体求解是比较麻烦的。
对问题进行动态处理。令 fk(x)表示以数量 x 分配于前 k 种生产所得到的最大总收入,
利用最优化原则,得
) ( )
( 1
1 x g x
f
( ) ( )
( 2,3, , ) max)
( 1
0 g x f x x k n
x
f k k k k
x k x
k
当函数gi(x)有某些特性时,例如gi(x)都是线性函数或凸函数,则可不太困难地求出 fk(x)的 表达式,但当gi(x)比较复杂时,是需从上面的递推公式利用计算机对不同的 x 值与 k 值将
) (x
fk 逐步算出。由于当 x 在[0,x0]连续变动时不可能对所有的 x 求出 fk(x),可以令 , 0
, 2 , ,
0 m x
x ,然后对每个k (k1,2,,n)在所有这些点上算出 fk(x)的值,并且在计 算时上式中的xk也只取这些值。因此便成为
) ( )
( 1
1 x g x
f
( ) ( )
max )
( 1
0
g p f x p
x
f k k
q k p
其中xq。在具体问题中的大小应根据最优解所要求的精确度、计算机的容量、容许计 算的时间与各方面的经验而定。
由上面的递推关系式,先求出 f1(x),x0,,,m。然后递推出 f2(x), f3(x),直至
) (x
fn 。 从 fn(x0)(x0 m) 中 决 定 最 优 决 策 xn ; 从 fn1(x0 xn) 决 定 出 xn-1,,从 )
( 0 n n1 k1
k x x x x
f 决定xk,直至x1,则x1,x2,, xn即为所求的最优分配量,fn(x0) 是相应的最大总收入。
这种做法可以看作是将一个连续模型用离散模型代替。
[连续型的动态规划方法] 以下考虑连续动态系统的最优控制。
设有一由矢量微分方程
) , , ( )
(t x m t
x f
描述的n阶控制过程,其中x是一个n维状态矢量,m是r维控制矢量,f 是一个可微n维矢 函数,始终条件为
0 0)
( x
x t 目标函数为
tf
f t
f t F t dt
t G
0
) , , ( ]
), (
[x x m
I
其中F(x,m,t)是一个可微数量函数。
这里的问题是:寻求控制量m(t)和对应的状态矢量x(t)目标函数取最小值(或最大值)。
命 V t t m
G tf tf
ttf F t dt
0
) , , ( ]
), ( [ min ] ), (
[x x x m
其中t在区间[t0,tf]上变换,极小是对所有m取的。应用最优化原则得到函数方程
t
t
m F t dt V t t
t
V(x, ) min (x,m, ) [x( ), ] 当0时,函数方程变为
min ( , , ) V ( , ,t) t
t F V
m x m
m x
x f
从此得出下列两个微分方程
0
x m m
V
F f
0 )
, , ( )
, ,
(
t t V t V
F x m
m x
x f
由此可以决定最优控制矢量m*(t)。 例 考虑由
m ax x
描述的一阶控制过程,其中a和 为正常数,控制信号m受条件 M
m
约束,决定使目标函数
1
0
) 2
(m t x dt I
为极小的最优控制信号m。
解 命 [ ( ), ] m i n
t1 2t M
m x dt
t t x V 那末函数方程为
( )
min 2 ax m
x x V x
V
M
m
如果
x M V
t
m
s g n
) ( 即最优控制m*(t)按
x V
的符号切换于M 和+M之间,则从函数方程可知花括号中的函数 是极小的。因为
x M V x
V x M V
x m V
* sgn
所以 x V
由下面的偏微分方程的解来决定:
x M V x ax V x x
V
2
这可用数值方程求解。
说明 动态规划的函数方程方法提供了一个获得最优化问题的解的计算方法,它不依赖 于偏微分方程的解,因此克服了两点边值问题的困难,但对高维多阶段决策过程,计算中需 要很大的存贮量,因此在各种情况下,还需要利用各种不同的最优化技巧(如§1~§4的直接方 法和数值方法)以及各种不同的计算方法(如降维法),甚至有时需要用观察或猜测来得到函数
方程的解。