一个最优策略的子策略也是最优的。或者说,如果从 A 到 C 的最优路径经过了 B,那么从 B 到 C 的那一段也是最优的。这保证了多步决策问题可以分解为一系列单步优化。
策略与反馈控制律的形式化定义、Bellman 最优性原理的直观与严格表述、Bellman 方程推导与 DP 求解流程
掌握Bellman方程与最优性原理在DP中的应用
建议先完成前面的课程,或具备线性代数与概率论基础。
🎯 本讲目标
形式化定义策略(Policy)与反馈控制律、深刻理解 Bellman 最优性原理、推导 Bellman 方程、掌握 DP 的标准求解流程。
🔑 核心思想
最优策略的子策略也是最优的——这就是 Bellman 最优性原理。它将多步决策问题分解为一系列单步优化,每个子问题只需基于当前状态求解。
上一讲我们学习了 DP 的三个基本要素:
我们已经知道,闭环策略(基于当前状态决策)优于开环策略。但如何找到最好的闭环策略?这就需要引入策略(Policy)的概念和Bellman 方程。
把闭环决策规则的形式化:
$\mu_{k}$ 称为第 $k$ 步的控制律(control law)
完整的策略定义为:
$\pi$ 称为一个策略(policy)或控制律序列
基本问题 (P1) 最终可以表述为:
在所有可能的策略中,找到使总期望代价最小的那个策略
💡 理解策略
策略就是"如果看到状态 $x_{k}$,就执行动作 $\mu_{k}(x_{k})$"的一系列规则。动态规划的目标是找到最优策略,而不是简单找到一组最优控制值。因为策略是状态到动作的映射,天然具备反馈能力。
策略空间的大小取决于状态空间和动作空间的大小。如果状态有 $|S|$ 种可能,动作有 $|A|$ 种可能,那么每个 $\mu_{k}$ 就有 $|A|^{|S|}$ 种选择——组合数巨大!DP 的强大之处就在于不需要穷举所有策略。
最优性原理(Principle of Optimality) 由 Richard Bellman 于 1957 年提出,是动态规划的基石:
🏆 Bellman 最优性原理
一个最优策略具有这样的性质:无论初始状态和初始决策如何,剩余的决策必须构成一个以第一个决策产生的状态为初始状态的最优策略。
反过来说:如果从 B 到 C 不是最优的,那你就可以用从 B 到 C 的更优路径替换它,从而得到一条从 A 到 C 的更优路径——这与原来的路径是最优的矛盾。
因为代价函数是可加的(分离性)。未来代价只依赖于当前状态和未来决策,不依赖于历史。这是马尔可夫性质的体现。
当代价函数不可加(例如存在跨阶段的约束),或者状态不满足马尔可夫性(未来依赖于历史而非仅当前状态)时,最优性原理可能不成立。
定义最优代价函数(value function)$V_{k}(x_{k})$ 为从状态 $x_{k}$ 开始、执行最优策略到终点的最小期望代价:
根据最优性原理,我们可以写出 $V_{k}$ 和 $V_{k+1}$ 之间的递推关系:
边界条件:
这就是 Bellman 方程——DP 的核心递推公式。
Bellman 方程将多步优化分解为单步优化:
🎯 Bellman 方程的魔力
我们只需要在每个状态 $x_{k}$ 上求解一个单步优化问题,而不需要考虑未来的所有可能路径!正是最优性原理保证了这种分解是全局最优的。
完整的 DP 求解包含四个步骤:
设置终端代价函数:
$$ V_{N}(x_{N}) = g_{N}(x_{N}), \quad \forall x_{N} $$为每个可能的终端状态赋值。
对 $k = N-1, N-2, \dots, 0$:
$$ V_{k}(x_{k}) = \min_{u_k} \mathbb{E}[g_{k} + V_{k+1}] $$对每个可能的状态 $x_{k}$ 求解。
保存每个状态下的最优决策:
$$ \mu_{k}^*(x_{k}) = \arg\min_{u_k} \mathbb{E}[g_{k} + V_{k+1}] $$记录最优动作。
在实际运行时,根据当前状态查表执行最优动作:
$$ u_{k} = \mu_{k}^*(x_{k}) $$直到达到终端状态。
假设库存 $x_{k}$ 的取值范围是 0~100(离散化),订货量 $u_{k}$ 的取值范围是 0~50:
📌 维度灾难(Curse of Dimensionality)
DP 理论上可以解决任何离散状态和离散控制的序贯决策问题,但状态空间的维度会导致计算量指数增长。这是 DP 在实际应用中的主要限制。
假设状态是 10 维的向量,每维离散化为 10 个值,那么状态总数就是 $10^{10} = 100$ 亿——完全不可行。
用参数化模型(如神经网络)来近似 $V_{k}(x_{k})$,而不是精确存储每个状态的值。这是深度强化学习的核心思路。
通过采样而非穷举来估计期望值。只访问"高概率"的状态,忽略极不可能的状态。
将高维问题分解为若干低维子问题。利用问题的特殊结构(如稀疏性、可分性)来降低复杂度。
对于线性系统 + 二次代价 + 高斯噪声(LQG),Bellman 方程有解析解——Riccati 方程。这正是 KF 和 LQR 的联系。
本讲是 KF L18 动态规划入门系列的第二部分。总结核心要点:
| 概念 | 数学表达 | 核心含义 |
|---|---|---|
| 策略 | $\pi = \{\mu_{0}, \dots, \mu_{N-1}\}$ | 从状态到动作的映射序列 |
| 最优性原理 | 最优策略的子策略也最优 | DP 可行性的理论基础 |
| Bellman 方程 | $V_{k} = \min_{u_k} \mathbb{E}[g_{k} + V_{k+1}]$ | 分解多步为单步优化 |
| DP 流程 | 初始化 → 反向递推 → 提取策略 → 正向执行 | 从终点倒推求解 |
| 维度灾难 | 状态空间指数增长 | 需借助近似方法 |
🔗 与 KF 的联系
Kalman Filter 可以看作是 DP/Bellman 方程在线性高斯系统下的一个应用。KF 的协方差更新方程(Riccati 方程)与 LQR 的 Riccati 方程互为对偶。这也是为什么我们把 DP 放在 KF 系列的最后一讲——它们是同一个理论框架的不同侧面。
Bellman 最优性原理的核心含义是什么?
一个最优策略的子策略也是最优的。或者说,如果从 A 到 C 的最优路径经过了 B,那么从 B 到 C 的那一段也是最优的。这保证了多步决策问题可以分解为一系列单步优化。
Bellman 方程 $V_{k}(x_{k}) = \min_{u_k} \mathbb{E}[g_{k} + V_{k+1}(f_{k})]$ 的每一项代表什么?
$g_{k}(x_{k}, u_{k}, w_{k})$ 是当前步的即时代价,$V_{k+1}(f_{k}(x_{k}, u_{k}, w_{k}))$ 是从下一步状态开始的最优未来代价。期望 $\mathbb{E}$ 对随机扰动 $w_{k}$ 取。$\min_{u_k}$ 选择当前步的最优控制。
什么是"维度灾难"?有哪些常用的应对方法?
施老师大课堂 · 研讨会系列 KF L18 · 策略、最优性原理与 Bellman 方程