楼层: 首页/ 数学/ 研究生进阶/ 动态规划最优性原理:未来与过去无关
22

动态规划最优性原理:未来与过去无关

Bellman Optimality · 动态规划的理论基石
先想个场景:从北京开车到广州最短。如果某条最短路线经过武汉,那么"武汉→广州"这段也必须是最短的——否则换个更短的武汉→广州,全程就更短。这就是贝尔曼最优性原理。

是什么:最优路线的子路线也最优。贝尔曼把它写成递归方程,是 DP 的宪法。生活比喻:要搭出最好的乐高城堡,每一步已经搭好的部分也必须是它那个小阶段的最优解。

卡必背公式 / 记忆口诀
Bellman 最优性原理
递推关系:未来不依赖过去
状态转移方程
口诀:DP 把大问题拆小,存起来不重算
这一节在走廊里的位置:进阶补全应用:最优子结构。它就是强化学习贝尔曼方程的祖宗,调度/路径规划的灵魂。
这节要学:状态/动作 → 最优子结构 → 贝尔曼方程 → 值迭代

因贝尔曼方程

最优性原理:一个最优策略具有这样的性质——无论初始状态和初始决策如何,剩余决策必须针对由第一个决策产生的状态构成一个最优策略。

贝尔曼方程(值函数):V*(s) = max_a [ R(s,a) + γ·Σ_{s'} P(s'|s,a) V*(s') ]。当前最优 = 当前立即奖励 + 折扣后的未来最优期望。

三要素:状态 s、动作 a、转移概率 P、奖励 R、折扣 γ。γ→0 近视,γ→1 远视。

V*(s) = max_a { R(s,a) + γ E[V*(s')|s,a] }

路考点心法:看到「动态规划最优性原理:未来与过去无关」先想什么

• 直觉优先:研究生数学从具体到抽象——先用生活直觉类比理解,再看严格定义

• 反例思维:对任意定理,先想一个反例看看它到底在保证什么条件

• 历史脉络:每门抽象数学都有几十年的酝酿——知道为什么需要它才能真正懂

完整解法:最短路径递推

有向无环图 A→B→D, A→C→D, A→D。边长 AB=2, AC=5, BD=1, CD=1, AD=8。求 A→D 最短。
审题:从终点倒着递推。
思路V(D)=0;V(B)=BD=1;V(C)=CD=1。 逐步① V(A) = min(AB+V(B), AC+V(C), AD) = min(2+1, 5+1, 8) = min(3,6,8) = 3。 答案最短 = A→B→D = 3。贝尔曼方程自动选择"立即+未来最优"。
交叉应用

强化学习的 Q-learning 直接学贝尔曼方程;自动驾驶决策、机器人运动规划、棋类 AI(AlphaGo)全靠它;最优控制的动态规划是模型预测控制的理论根。

费曼学习法:讲给别人听
① 用自己的话讲:动态规划的最优性原理就是"不管前面怎么走,剩下的子问题本身也得是最优的",所以可以倒着递归。
② 举个反例(什么条件下不成立):状态不够小(维数爆炸)就崩;不满足无后效性时 DP 直接用不了。
③ 哪里还说不清:贝尔曼方程的收敛为什么要"压缩映射"来保证?
记
这节你该带走

① 最优路线的子路线也最优——最优性原理。

② V*(s)=max_a{R+γE[V*(s')]},强化学习的宪法。

费曼学习法
合上书,给一个完全不懂的人讲清楚「动态规划最优性原理:未来与过去无关」——说不清楚的地方就是你没真懂的。

证动态规划最优性原理:未来与过去无关的关键定理与公式

核心性质:① Bellman 方程 $V^*(s)=\max_a[R(s,a)+\gamma\sum_{s'}P(s'|s,a)V^*(s')]$;② 最优性原理:子策略在子问题上也必最优;③ 值迭代是 $\gamma$-压缩映射,收敛率 $\propto\gamma^k$。

推导思路:① 由一步转移的全期望展开,最优值满足自洽方程(Bellman);② 定义算子 $T(V)(s)=\max_a[R(s,a)+\gamma\sum_{s'}P(s'|s,a)V(s')]$,它是 $\gamma$-压缩:$\|TV-TV'\|_\infty\le\gamma\|V-V'\|_\infty$;③ 由 Banach 不动点定理存在唯一 $V^*$,值迭代几何收敛。

直觉把握:DP 是"未来与过去无关、只盯眼前最优"——把大问题拆成可递推的小问题;最短路径、背包、强化学习(Q-learning)的核心都是 Bellman 方程。

④ 用途与案例

工程:动态规划最优性原理:未来与过去无关

在工程、物理、计算机、金融等领域,动态规划最优性原理:未来与过去无关是基础工具——理解"使用场景"比死记公式重要。

日常:你见过但没注意的动态规划最优性原理:未来与过去无关

生活中处处有动态规划最优性原理:未来与过去无关——价格波动、几何造型、统计图表、游戏设计——只不过没人告诉你这就是数学。

防坑警示:动态规划最优性原理:未来与过去无关常见陷阱

• 陷阱1:忽略边界条件(如定义域、等号条件、0 的特殊性)

• 陷阱2:混淆概念——动态规划最优性原理:未来与过去无关容易和相邻概念搞混

• 陷阱3:计算跳步——哪怕简单题也别心算跳步,一错全错

练习与答案

1.【基础】 写出有限状态 MDP 的 Bellman 方程,并说明"最优性原理"是什么意思。

思路与解答$V^*(s)=\max_a[R(s,a)+\gamma\sum_{s'}P(s'|s,a)V^*(s')]$;最优策略在每个状态做出的子策略,在对应的子问题上也必须是最优的。
【自评反馈】和答案对得上 → 继续下一题;对不上 → 回到本页"是什么"和例题区,把卡住的那步再推一遍。

2.【进阶】 用动态规划解 0-1 背包,给出状态转移方程。

思路与解答令 $dp[i][w]$ 为前 $i$ 件物品、容量 $w$ 时能获得的最大价值;$dp[i][w]=\max(dp[i-1][w],\ dp[i-1][w-w_i]+v_i)$,即"不选第 $i$ 件"与"选第 $i$ 件"取较大者。
【自评反馈】和答案对得上 → 继续下一题;对不上 → 回到本页"是什么"和例题区,把卡住的那步再推一遍。

3.【挑战】 为什么值迭代收敛?用"压缩映射"一句话解释,并说明 $\gamma<1$ 的关键作用。

思路与解答Bellman 算子 $T$ 是 $\gamma$-压缩:$d(TV,TV')\le\gamma d(V,V')$,由 Banach 不动点定理迭代几何收敛;$\gamma<1$ 保证每步误差被收缩而非放大,否则可能发散。
【自评反馈】和答案对得上 → 继续下一题;对不上 → 回到本页"是什么"和例题区,把卡住的那步再推一遍。