《1 引言》

1 引言

20世纪50年代初, 美国数学家贝尔曼提出了最优性原理和动态规划方法, 它和前苏联数学家庞里亚特金同期提出的最大值原理共同构成现代控制理论的重要的定理[1], 引起了控制理论的重大变革。从此、控制理论由频域法转为时域法;由经典控制理论时代进入现代控制理论时代。

动态规划现今在许多技术领域, 特别是在管理科学、运筹学、经济学等方面得到了广泛的应用, 它是处理控制变量限制在一定闭集内的最优控制问题的有效的数学方法, 它把复杂的控制问题变为多级决策过程的递推函数关系[2,3], 其基础和核心是最优原理, 动态规划的求解过程是一个反向递推的求解过程, 很多文献中有详尽的求解过程[4,5], 近几年, 人们从各方面对动态规划的求解过程进行了探讨, 取得了一定的成果[6,7,8], 由于求解过程是反向递推的, 从终端开始, 所以在多级决策过程中, 无论实际解决的问题是多少, 都要求解全部过程, 这使动态规划的计算量大大增加, 限制了它的应用, 笔者用正向递推方法求解动态规划的最优值, 并推导出哈密尔顿-雅可比方程, 是对动态规划求最优解方法的探讨。

《2 多级决策的正向求解》

2 多级决策的正向求解

多级决策是指把一个过程按时间或空间顺序分成若干级, 然后对每一级做出决策, 以使整个过程取得最优结果。动态规划是解决多级决策过程优化问题的强有力的工具, 传统动态规划的求解方法是从终端开始, 用反向递推的办法。下面以行车问题为例, 说明动态规划的正向求解过程。

设汽车从A城出发到B城, 途中需经过三条河流, 它们各有两座桥P, Q可供选择通过, 如图1, 各段间的行车时间 (h) 见图中标注, 现在确定一条最优路线, 使从A城到B城的行车时间最短。

《图1》

图1 段间行车时间

图1 段间行车时间  

Fig.1 Running time between segments

动态规划正向求解的原则——所选择的最优路线必须保证其前部子路线是最优的。在图1中, 如果AQ1P2Q3B是最优路线, 那么从起始点到这条路线上任一中间点的子路线必定也是最优的, 否则AQ1P2Q3B就不是最优路线了。

根据这一原则求解最优路线, 从起点开始, 按时间最短为目标, 逐步向后, 求出起点至各中间站的最优值, 直至求出至终点的最优值。

第一段, 起点A的后一站是P1, Q1, 无论汽车到终点B的路径如何, 总要经过P1Q1, 到P1Q1都只有一条路线, 所以到P1的最优路线是AP1, 历时3 h;到Q1的最优路线是AQ1, 历时4 h。

第二段, P1, Q1的后一站是P2, Q2, 到P2有两条路线, 从P1P2——AP1P2, 历时10 h;从Q1P2——AQ1P2, 历时8 h, 其最短历时8 h。到Q2也有两条路线, 从P1Q2——AP1Q2, 历时9 h;从Q1Q2——AQ1Q2, 历时12 h, 其最短历时9 h。

第三段, P2, Q2的后一站是P3, Q3, 到P3有两条路线, 从P2P3, 要使历时最短, 从AP2一定走路线AQ1P2, 即AQ1P2P3, 历时10 h;从Q2P3, 要使历时最短, 从AQ2一定走路线AP1Q2, 即AP1Q2P3, 历时12 h, 其最短历时10 h。到Q3也有两条路线, 从P2Q3, 要使历时最短, 从AP2一定走路线AQ1P2, 即AQ1P2Q3, 历时10 h;从Q2Q3, 要使历时最短, 从AQ2一定走路线AP1Q2, 即AP1Q2Q3, 历时12 h, 其最短历时10 h。

第四段, P3, Q3的后一站是终点站B, 到终点站B有两条路线, 从P3B, 要使历时最短, 从AP3一定走路线AQ1P2P3, 即AQ1P2P3B, 历时14 h;从Q3B, 要使历时最短, 从AQ3一定走路线AQ1P2Q3, 即AQ1P2Q3B, 历时12 h, 其最短历时12 h。

所以最优路线是AQ1P2Q3B, 最优值是12 h。图2为正向递推求解的图示过程。

《图2》

图2 正向递推求解过程

图2 正向递推求解过程  

Fig.2 Recursion solution process in positive direction

动态规划传统的反向递推求解原则:所选择的最优路线必须保证其后部子路线是最优的。在图2中, 如果AQ1P2Q3B是最优路线, 那么这条路线上从任一中间点到终点的子路线必定也是最优的, 否则AQ1P2Q3B就不是最优路线了。求解过程是从终点开始, 按时间最短为目标, 逐步向前, 求出各中间点到终点的最优值, 直至求出起始点至终点的最优值。详见文献[4,5], 图3是传统反向递推求解的图示过程, 从图3中可以看出:传统反向递推求解与正向递推求解其结果完全一致。

《图3》

图3 反向递推求解过程

图3 反向递推求解过程  

Fig.3 Recursion solution process in reverse direction

《3 离散系统动态规划的正向递推方法》

3 离散系统动态规划的正向递推方法

设离散系统 (见图4) 的状态方程为

xk+1=f[xk,uk]k=0,1,\:,Ν-1

式中xk+1=x (k+1) 为n维状态矢量在 (k+1) T时刻的值, uk=u (k) 为r维控制矢量在kT时刻的值, fn维矢量函数。

《图4》

图4 离散系统多级决策求解

图4 离散系统多级决策求解  

Fig.4 Multistage decision solution to discrete systems

状态初值 x (0) = x0,

控制约束 g[xk, uk] ≤ 0,

性能泛函J=Φ[xΝ]+k=0Ν-1L[xk,uk],

式中Φ[xN]是对终端状态xN=x (N) 的要求。

寻求一个最优控制序列{u*k} (k = 0, 1, \:, N-1) , 使上述性能泛函取极值。

根据多级决策的正向求解的方法, N段最优决策过程中, 前k段决策一定是最优决策。

J*k (xk) = min {J*k-1[xk-1]+L[xk-1, uk-1]}

xk = f[xk-1, uk-1],

J*0 (x0) =Φ[xN],

J*1 (x1) = min {J*0 [x0]+L[x0, u0]}

x1 = f[x0, u0],

J*N (xN) = min {J*N-1[xN-1]+L[xN-1, uN-1]}

xk = f[xk-1, uk-1]。

对于一个多段决策的最优求解过程, 其初始值和终端状态都是给定的, 利用正向求解, 很容易求出前k段的最优值。

《4 连续系统动态规划的正向递推方法设连续系统 (见图5) 的状态方程为》

4 连续系统动态规划的正向递推方法设连续系统 (见图5) 的状态方程为

x = f[x, u, t],

状态初值 x (t0) = x0,

终端约束 N[x (tf) , tf] = 0,

性能泛函 J[x, t] =Φ[x (tf) ]+

0tf, L[x, u, t]dt,

寻求一个最优控制u* (t) , 使上述性能泛函取极值。

根据多级决策正向求解的方法, 如果x* (t) 是以x (t0) 为初始状态, 以x (tf) 为终端状态的最优轨线, 那么以x (t′) 为终端状态的前半段一定是最优轨线。

《图5》

图5 连续系统多级决策求解

图5 连续系统多级决策求解  

Fig.5 Multistage decision solution to continuous systems

若取tf=t, t′=tft 则最优性能泛函

J*[x(t)t]=min{Φ[x(t)]+t0tL[x,u,t]dt}=min{Φ[x(t)]+t0t-ΔtL[x,u,t]dt+t-ΔttL[x,u,t]dt},J*[x(t-Δt)t-Δt]=min{Φ[x(t)]+t0t-ΔtL[x,u,t]dt}

当Δt很小时

t-ΔttL[x,u,t]dtL[x,u,t]Δtx(t-Δt)=x-Δtdx/dt+=x-Δx+x-f[x,u,t]ΔtJ*[x(t-Δt),t-Δt]J*[x-Δx,t-Δt]=J*[x(t),t]-[J*(x,t)-x]ΤΔx-J*(x,t)-tΔt

所以

J*[x(t),t]=min{J*[x(t-Δt),t-Δt]+L[x,u,t]Δt}=min{J*[x(t),t]-[J*(x,t)-x]ΤΔx-J*(x,t)xΔt+L[x,u,t]Δt}=J*[x(t),t]-J*(x,t)-tΔt+min{-[J*(x,t)-x]Τf[x,u,t]Δt+L[x,u,t]Δt}

整理得

-J*(x,t)t=min{L[x,u,t]+[J*(x,t)-x]Τf[x,u,t]}

这就是连续系统动态规划基本方程, 即贝尔曼方程。

令哈密尔顿函数

Η[x,u,λ,t]=L[x,u,t]+[J*(x,t)x]Τf[x,u,t]=L[x,u,t]+λΤf[x,u,t]λ=J*(x,t)x

得密尔顿-雅可比方程

-J*(x,t)t=Η[x,u,λ,t]

《5 结论》

5 结论

笔者以实例说明为依据, 用正向递推的方法求解动态规划的最优值, 并推出动态规划的基本方程和密尔顿-雅可比方程, 是对动态规划求最优解方法的探讨。利用动态规划的正向递推方法, 在应用中不仅可以大大减少计算量, 而且使一些很难利用反向递推求解的问题得到解决, 扩大了动态规划的应用范围。在实际技术领域中, 尤其对于离散的控制系统, 如何充分的利用动态规划的正向递推方法, 简化最优值的求解过程, 解决传统动态规划方法难以解决的问题, 还有待于进一步探讨。