模型预测控制 (MPC),也称为滚动优化控制,是一种成熟且应用广泛的方法,它与智能体如何学习并运用环境模型的原理紧密相关。MPC 是控制理论中的一种强效技术,在过程控制、机器人和自动驾驶等多种应用场景中得到广泛使用。理解基于模型的强化学习 (MBRL) 与 MPC 之间的联系和区别,为认识这两种方法的优点和用途提供了有益的背景。模型预测控制的核心思想其核心是,MPC 通过重复解决在线优化问题来运作。在每个时间步 $t$,控制器(或智能体)执行以下循环:观察状态: 测量或估计系统当前状态,$s_t$。预测未来: 使用系统动力学的内部模型,从 $s_t$ 开始,根据潜在的控制动作序列 $a_t, a_{t+1}, ..., a_{t+H-1}$,预测有限时间范围 $H$ 内的未来状态序列。优化动作: 找到在时间范围 $H$ 内优化预定义目标函数(通常是最小化表示与目标状态偏差和控制功耗的成本函数)的动作序列。应用第一个动作: 只执行优化序列中的第一个动作,$a_t$。重复: 丢弃计划序列的其余部分。在下一个时间步 ($t+1$),观察新状态 $s_{t+1}$ 并重复整个过程(预测、优化、应用)。这种“计划、短暂行动、重新计划”的策略使得 MPC 能够有效处理扰动和模型不准确性,因为它根据最新的状态信息不断重新评估情况。digraph MPC_Loop { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", color="#495057", fontcolor="#495057"]; edge [fontname="sans-serif", color="#495057", fontcolor="#495057"]; subgraph cluster_mpc { label = "时间 t 的 MPC 控制器"; bgcolor="#e9ecef"; Observe [label="1. 观察状态\n(st)", shape=ellipse, style=filled, fillcolor="#a5d8ff"]; Predict [label="2. 预测未来\n(模型 + 动作)", style=filled, fillcolor="#bac8ff"]; Optimize [label="3. 优化动作\n(在范围 H 上)", style=filled, fillcolor="#d0bfff"]; Apply [label="4. 应用第一个动作\n(at)", shape=ellipse, style=filled, fillcolor="#fcc2d7"]; System [label="系统/环境", shape=cylinder, style=filled, fillcolor="#b2f2bb"]; } Observe -> Predict [label=" 当前状态 "]; Predict -> Optimize [label=" 预测轨迹 "]; Optimize -> Apply [label=" 最优序列 "]; Apply -> System [label=" 动作 at "]; System -> Observe [label=" 下一个状态 st+1 ", style=dashed]; }模型预测控制的典型循环。控制器使用模型在未来时间范围上优化动作,但只执行即时动作,然后重复该过程。与基于模型的强化学习的相似之处MPC 的操作循环与许多基于模型的强化学习方法有许多相似之处:依赖模型: 这两种模式都根本上依赖于拥有环境动力学模型 ($P(s'|s, a)$) 以及潜在的奖励函数 ($R(s, a, s')$)。规划组成部分: 两者都使用模型进行“预见”并做出决策。在 MPC 中,这是显式的优化步骤。在基于模型的强化学习中,它表现为 Dyna-Q 中的规划步骤、轨迹模拟或与学习模型一起使用的蒙特卡洛树搜索 (MCTS) 等树搜索算法。滚动优化原理: MPC 的策略是在范围 $H$ 上规划、行动,然后从新状态重新规划,这在基于模型的强化学习智能体中也有体现:它们在选择环境中的每个动作之前,会使用模型进行规划(例如,MCTS 搜索)。设想一个使用蒙特卡洛树搜索 (MCTS) 和学习到的动力学模型的基于模型的强化学习智能体。在每一步,它基于当前状态和学习到的模型运行 MCTS 模拟(规划),以确定最佳动作。它执行该动作,观察结果,可能更新其模型,然后从新状态重复 MCTS 规划过程。这看起来与 MPC 循环非常相似。区别尽管有相似之处,但在侧重点和典型实现上仍存在重要区别:模型来源: 传统的 MPC 通常假设模型是已知的(例如,从物理定律导出)或通过独立的系统识别技术获得。基于模型的强化学习则侧重于直接从交互数据中学习模型,通常使用神经网络等灵活的函数逼近器。这使得基于模型的强化学习能够处理无法获得或难以处理第一性原理模型的问题。目标函数: MPC 通常优化用户定义的成本函数(例如,最小化跟踪误差 + 控制能量)。基于模型的强化学习旨在最大化环境定义的预期累积奖励,这通常要求智能体学习价值函数或 Q 函数,作为评估动作长期结果的一部分。优化/规划算法: MPC 使用根据模型和成本结构定制的经典优化求解器(例如,线性系统的 QP 求解器)。基于模型的强化学习采用适合可能复杂的、学习到的模型和奖励函数的规划算法,例如价值迭代、策略迭代(应用于学习到的模型)、MCTS 或适应随机环境的轨迹优化方法。处理不确定性和试探: 基于模型的强化学习明确处理模型不确定性以及需要试探以改进模型并发现更好策略的挑战。标准 MPC 通常假设模型足够准确,尽管存在鲁棒和自适应 MPC 变体。学习是基于模型的强化学习的核心,对于经典 MPC 则不那么突出。交互与联系这种关系不仅仅是并行发展;这些方法之间存在日益增长的联系:基于模型的强化学习用于 MPC 模型学习: 基于模型的强化学习中的深度学习技术可用于从数据中学习复杂的动力学模型,然后将其并入 MPC 框架。当难以推导出精确的基于物理的模型时,这非常有用。基于模型的强化学习作为自适应控制: 基于模型的强化学习方法根据经验持续更新其内部模型,可以看作是复杂形式的自适应控制,与自适应 MPC 密切相关。学习目标: 虽然 MPC 通常使用预定义的成本,但强化学习的思路可以指导设计更多目标函数,甚至学习目标/成本函数的一部分。实质上,基于模型的强化学习将 MPC 中突出的使用模型进行决策的核心思想,扩展到模型本身必须从交互中学习,并且目标通过环境奖励定义的情形。这两个方面都从建模、规划和优化方面的进步中受益,为不确定性下的序贯决策提供了互补的视角。认识到与 MPC 的联系,有助于将基于模型的强化学习置于控制和优化技术之中。