1. 动态规划是什么
(1)美国数学家贝尔曼在研究多阶段决策过程优化问题时提出的一套最优化原理
(2)把多阶段过程转化为一系列单阶段问题,利用各阶段间的关系,逐个求解,直至求得最终的最优解。
2. 基本思想
把待求解的问题分解为若干子问题,先求解子问题,然后根据子问题的解得到原问题的解。
例如:求5的阶乘,若使用动态规划法求解,则首先,将该问题分解为5×(4的阶乘)两个子问题,只要解决了4的阶乘和两个数乘法的求解问题,则原问题的解就可以得出,而4的阶乘,又可以继续分解为4×(3的阶乘)…,这样的一系列分解,分解后的子问题的规模不断缩小,直至可以直接求解,一旦子问题得以解决,则可以回溯至原问题的最终求解。
3. 动态规划的适用场景
满足下列全部条件的场景:
(1)原问题的解可以分解为若干小问题的解,只要得到了小问题的解,原问题的解就可以得出;
(2)小问题的求解过程与原问题的求解过程相似,区别只在于规模较小;
(3)当小问题的规模小到某个程度时,它的解能直接求出;
4. 动态规划与马尔科夫最优决策
再次回顾一下求解马尔科夫过程的贝尔曼方程:
最优策略为:
π
∗
(
a
∣
s
)
=
{
1
arg
max
a
Q
∗
(
s
,
a
)
0
其他
\displaystyle \pi^*(a|s)=\begin{cases} 1\qquad \arg\max_aQ^*(s,a)\\ 0 \qquad 其他 \end{cases}
π∗(a∣s)={1argmaxaQ∗(s,a)0其他
为了求
π
∗
\pi^*
π∗,必须求出
Q
∗
(
s
,
a
)
Q^*(s,a)
Q∗(s,a),而
Q
∗
(
s
,
a
)
Q^*(s,a)
Q∗(s,a)可由下式求出:
Q
∗
(
s
,
a
)
=
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
V
∗
(
s
′
)
Q^*(s,a)=R_s^a+\gamma\sum_{s'\in S}P_{ss'}^aV^*(s')
Q∗(s,a)=Rsa+γs′∈S∑Pss′aV∗(s′)
为了求
V
∗
(
s
′
)
V^*(s')
V∗(s′),必须求
V
π
(
s
)
V_\pi(s)
Vπ(s),根据
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
V
π
(
s
′
)
)
V_\pi(s)=\sum_{a\in A}\pi(a|s)\left( R_s^a+\gamma\sum_{s'\in S}P_{ss'}^aV_\pi(s') \right)
Vπ(s)=a∈A∑π(a∣s)(Rsa+γs′∈S∑Pss′aVπ(s′))
可知,要求
V
π
(
s
)
V_\pi(s)
Vπ(s),只需要求其后继状态s’的值函数,而后继状态的值函数又可以由后继的后继值函数求解,…
所以,使用动态规划可以求出最优策略。
它涉及到两个操作:
(1)策略评估:根据
<
S
,
A
,
P
,
R
,
γ
>
<S,A,P,R,\gamma>
<S,A,P,R,γ>和
π
\pi
π,求
V
π
(
s
)
V_\pi(s)
Vπ(s);
(2)策略改进:利用
V
π
(
s
)
V_\pi(s)
Vπ(s),对策略进行改进。