近似动态规划
我将为您系统讲解近似动态规划(Approximate Dynamic Programming, ADP)这一解决高维动态规划问题的核心方法。
1. 动态规划的"维数灾难"问题
动态规划(DP)通过贝尔曼方程(Bellman equation)来求解多阶段决策问题的最优策略。其核心是价值函数(value function),表示从某个状态开始所能获得的最大期望总回报。传统DP算法(如值迭代、策略迭代)需要遍历所有状态并计算其精确价值函数。然而,当状态变量维度较高时,状态空间会呈指数级增长(例如,10个状态变量,每个有100个可能取值,状态总数达100^10),导致计算和存储完全不可行。这就是著名的"维数灾难"(curse of dimensionality)。
2. ADP的核心思想:用近似代替精确
ADP的基本思路是放弃计算精确的价值函数,转而寻找一个易于计算的近似函数来替代。这个近似函数通常由一个参数化函数来表示,记作 \(\tilde{J}(s, r)\),其中 \(s\) 是状态,\(r\) 是待确定的参数向量。ADP的目标不再是求解每个状态点的精确价值,而是通过调整参数 \(r\),使得近似函数 \(\tilde{J}\) 在整体上能够较好地逼近真实的最优价值函数 \(J^*\)。这样,存储负担从状态数量(巨大)转变为参数数量(可控)。
3. ADP的关键组件与工作流程
一个完整的ADP算法通常包含以下三个核心组成部分的迭代:
- 策略模拟/采样(Simulation/Sampling):由于无法遍历所有状态,ADP通过随机或启发式地生成一系列状态样本(或样本路径/轨迹)来探索状态空间。这避免了"维数灾难",将计算集中在可能遇到的状态区域。
- 价值函数近似(Value Function Approximation, VFA):这是ADP的灵魂。我们需要选择一个函数逼近器来构建 \(\tilde{J}(s, r)\)。常见的选择包括:
- 线性模型:\(\tilde{J}(s, r) = \sum_{i} r_i \phi_i(s)\),其中 \(\phi_i(s)\) 是预先设计的关于状态 \(s\) 的特征(basis functions),如多项式、径向基函数等。参数 \(r\) 是特征权重。
- 非线性模型:如神经网络(Neural Networks),其输入是状态 \(s\),输出是近似价值,网络权重就是参数 \(r\)。深度学习与ADP的结合即深度强化学习。
- 参数更新(Parameter Update):在每次模拟中,当系统处于某个样本状态时,我们会获得一个关于该状态价值的"观测值"(通常基于贝尔曼方程计算,称为时序差分误差)。这个观测值与当前近似函数 \(\tilde{J}(s, r)\) 的预测值之间存在误差。算法利用这个误差信号来更新参数 \(r\),使近似函数预测得更准。更新规则常采用随机梯度下降法或其变体。
4. 主要算法分类:前瞻与后验
根据更新参数时利用信息的不同,ADP算法可分为两类:
- 后验状态价值法(Value Function Based / Post-decision State VFA):这是最主流的方法。它直接近似常规的价值函数。在模拟过程中,当系统处于状态 \(S_t\),采取行动 \(a_t\) 后,会进入某个状态 \(S_{t+1}\)。我们计算目标值(例如,\(c_t + \gamma \tilde{J}(S_{t+1}, r)\),其中 \(c_t\) 是即时成本,\(\gamma\) 是折扣因子),并将其与当前近似值 \(\tilde{J}(S_t, r)\) 比较,用差值(时序差分误差)来更新参数 \(r\)。这种方法学习的是某个状态"有多好"。
- 前瞻法(Lookahead Policies):这种方法不直接存储一个价值函数近似。当需要在状态 \(s_t\) 做出决策时,它会在当前时刻构建一个简化版的有限前瞻(lookahead)模型(例如,只向前模拟有限的几步),并在这个简化模型上求解一个局部的动态规划问题来决定当前最优行动。常见的如滚动时域控制(Receding Horizon Control)。
5. 应用场景与挑战
ADP被广泛应用于解决现实世界中的复杂序贯决策问题,包括:
- 资源分配(如医疗资源、人力资源调度)
- 库存管理与供应链优化
- 金融领域的投资组合优化
- 交通网络的车流控制
- 游戏AI(如围棋、电子游戏)
面临的挑战主要包括:
- 逼近误差(Approximation Error):近似函数无法完全精确,可能导致策略不是真正最优。
- 探索与利用的权衡(Exploration vs. Exploitation):如何平衡尝试新状态(探索)和选择当前认为最好的行动(利用)。
- 收敛性保证:对于复杂的非线性近似器(如神经网络),算法理论上的收敛性难以保证。
总之,近似动态规划是连接经典动态规划理论与高维实际应用的桥梁,通过函数近似和采样,巧妙地规避了"维数灾难",是现代序列决策问题求解的核心工具。