目录
动态规划
引言
1951年,美国数学家贝尔曼(R.Bellman)等根据一类所谓多阶段决策问题的特性,提出了解决这类问题的“最优化原理”,并研究了许多实际问题,从而创立了最优化的一个新分支----动态规划。
动态规划没有统一的数学模型,对不同的问题要采用不同的方法去建立它们的模型。有了模型之后,要想得到数值解,仍然没有统一的处理方法。这是应当注意的。
1 动态规划原理
1.1 最短路问题及其解法
1.2 动态规划的基本概念和术语
1.3 最优化原理与动态规划方程
1.3.1 最优化原理
对于多阶段决策问题,作为整个过程的最优策略必然具有这样的性质:无论过去的状态和决策如何,就所形成的状态而言,余下的诸策略必然构成一个最优子策略。多阶段决策问题的这一规律称为最优化原理。
1.3.2 逆序动态规划方程
对后部指标函数 F k , n F_{k,n} Fk,n及最优函数 f k ( x k ) f_k(x_k) fk(xk)有
(1)当
F
k
,
n
=
∑
j
=
k
n
d
(
x
j
,
u
j
)
F_{k,n}=\sum\limits_{j=k}^nd(x_j,u_j)
Fk,n=j=k∑nd(xj,uj)时,
f
k
(
x
k
)
满
足
递
推
方
程
f_k(x_k)满足递推方程
fk(xk)满足递推方程
{
f
k
(
x
k
)
=
o
p
t
u
k
∈
D
k
{
d
(
x
k
,
u
k
)
+
f
k
+
1
(
x
k
+
1
)
}
,
f
n
+
1
(
x
n
+
1
)
=
0
,
k
=
n
,
n
−
1
,
⋯
,
2
,
1
\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_k \in D_k} \{ d(x_k,u_k) + f_{k+1}(x_{k+1})\} ,\\ f_{n+1}(x_{n+1})=0, k=n,n-1,\cdots,2,1 \end{array} \right.
{fk(xk)=uk∈Dkopt{d(xk,uk)+fk+1(xk+1)},fn+1(xn+1)=0,k=n,n−1,⋯,2,1
(2)当
F
k
,
n
=
∏
j
=
k
n
d
(
x
j
,
u
j
)
F_{k,n}=\prod\limits_{j=k}^nd(x_j,u_j)
Fk,n=j=k∏nd(xj,uj)时,
f
k
(
x
k
)
满
足
递
推
方
程
f_k(x_k)满足递推方程
fk(xk)满足递推方程
{
f
k
(
x
k
)
=
o
p
t
u
k
∈
D
k
{
d
(
x
k
,
u
k
)
⋅
f
k
+
1
(
x
k
+
1
)
}
,
f
n
+
1
(
x
n
+
1
)
=
1
,
k
=
n
,
n
−
1
,
⋯
,
2
,
1
\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_k \in D_k} \{ d(x_k,u_k) \cdot f_{k+1}(x_{k+1})\} ,\\ f_{n+1}(x_{n+1})=1, k=n,n-1,\cdots,2,1 \end{array} \right.
{fk(xk)=uk∈Dkopt{d(xk,uk)⋅fk+1(xk+1)},fn+1(xn+1)=1,k=n,n−1,⋯,2,1
利用这两个递推公式原则上可求出最优函数 f 1 ( x 1 ) f_1(x_1) f1(x1),称这两种递推公式为逆序动态规划方程。这种求最优函数的方法叫逆序法。
1.3.3 顺序动态规划方程
对前部指标函数 F 1 , k F_{1,k} F1,k及最优函数 f k ( x k ) f_k(x_k) fk(xk)有
(1)当
F
1
,
k
=
∑
j
=
2
k
d
(
u
j
−
1
,
x
j
)
F_{1,k}=\sum\limits_{j=2}^kd(u_{j-1},x_j)
F1,k=j=2∑kd(uj−1,xj)时,
f
k
(
x
k
)
f_k(x_k)
fk(xk)满足递推方程
{
f
k
(
x
k
)
=
o
p
t
u
k
−
1
∈
D
k
−
1
{
d
(
u
k
−
1
,
x
k
)
+
f
k
−
1
(
x
k
−
1
)
}
,
f
1
(
x
1
)
=
0
,
k
=
2
,
3
,
⋯
,
n
,
n
+
1
\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_{k-1} \in D_{k-1}} \{ d(u_{k-1},x_k) + f_{k-1}(x_{k-1})\} ,\\ f_1(x_1)=0, k=2,3,\cdots,n,n+1 \end{array} \right.
{fk(xk)=uk−1∈Dk−1opt{d(uk−1,xk)+fk−1(xk−1)},f1(x1)=0,k=2,3,⋯,n,n+1
(2)当
F
1
,
k
=
∏
j
=
k
n
d
(
u
j
−
1
,
x
j
)
F_{1,k}=\prod\limits_{j=k}^nd(u_{j-1},x_j)
F1,k=j=k∏nd(uj−1,xj)时,
f
k
(
x
k
)
f_k(x_k)
fk(xk)满足递推方程
{
f
k
(
x
k
)
=
o
p
t
u
k
−
1
∈
D
k
−
1
{
d
(
u
k
−
1
,
x
k
)
⋅
f
k
−
1
(
x
k
−
1
)
}
,
f
1
(
x
1
)
=
1
,
k
=
2
,
3
,
⋯
,
n
,
n
+
1
\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_{k-1} \in D_{k-1}} \{ d(u_{k-1},x_k) \cdot f_{k-1}(x_{k-1})\} ,\\ f_1(x_1)=1, k=2,3,\cdots,n,n+1 \end{array} \right.
{fk(xk)=uk−1∈Dk−1opt{d(uk−1,xk)⋅fk−1(xk−1)},f1(x1)=1,k=2,3,⋯,n,n+1
利用这两个递推公式原则上可求出最优函数 f n + 1 ( x n + 1 ) f_{n+1}(x_{n+1}) fn+1(xn+1),称这两种递推公式为顺序动态规划方程。这种求最优函数的方法叫顺序法。
1.4 动态规划基本定理
基本定理 对于
n
n
n阶段决策问题,若
p
1
,
n
∗
p^{\ast}_{1,n}
p1,n∗是最优策略,则对任意满足
1
<
k
<
n
1<k<n
1<k<n的自然数
k
k
k,其子策略
p
k
,
n
∗
p^{\ast}_{k,n}
pk,n∗(或
p
1
,
k
∗
p^{\ast}_{1,k}
p1,k∗)对于以
x
k
=
T
k
−
1
(
x
k
−
1
,
u
k
−
1
∗
)
(
或
x
k
−
1
=
T
k
−
1
(
u
k
−
1
∗
,
x
k
)
)
x_k = T_{k-1}(x_{k-1},u^{\ast}_{k-1}) (或x_{k-1} = T_{k-1}(u^{\ast}_{k-1}, x_{k}))
xk=Tk−1(xk−1,uk−1∗)(或xk−1=Tk−1(uk−1∗,xk))
为初始状态的
k
k
k到
n
n
n(或
1
1
1到
k
k
k)段子过程来说,也必定是最优策略。