跳转至

不确定性规划方向级综述:五种安全谱的全景、流派脉络与选型

本篇性质:方向级综述(survey),不是教程。它站在 Part-U 不确定性规划专题(深度教程 U0–U5 见 30_不确定性规划/)之上,做一次鸟瞰式的横切缝合——把"集合/概率/多模态/认知/尾部"五种不确定性、五条算法流派(分支场景、鲁棒 Tube、机会约束、POMDP、风险敏感 CVaR)放在同一坐标系里互相对照,给出选型矩阵开放问题清单。它回答的不是"某个方法怎么推导"(那是 U1–U5),而是"面对一个真实的不确定性问题,我该走哪条谱、为什么、代价是什么、前沿走到哪了"。

读者画像:已通读或正在通读 Part-U 教程(至少读完 U0 总论),掌握 C++17 / Eigen / 凸优化(QP/NLP)、用过一种 MPC(acados / OCS2 / CasADi)、对贝叶斯滤波与 MDP 有概念的算法工程师与博士生。本篇默认你已经知道"什么是 Tube MPC""什么是 belief",因此不重新定义这些术语,而是把它们当作既有词汇拿来比较与缝合

与深度教程的分工:U0–U5 是"把每条谱讲透"的纵深;本篇是"把五条谱并排比较"的横切。如果说 U0–U5 让你认识每一棵树,本篇要让你看清整片森林——森林的边界在哪、哪些树长在同一片土壤、哪条小径通向 RL 的版图。读完本篇,你应当能在白板上独立画出"不确定性 → 安全谱 → 算法 → 开源抓手 → RL 同义表达"的完整映射图。


前置自测

下面 6 题确认你是否具备读这篇综述的基础。综述比教程更"跳"——它假设你能在多个概念之间快速横跳。答不出 \(\ge 3\),建议先回 U0 总论与对应深度章补齐,再回来读这篇横切。

  1. 用一句话分别说出"鲁棒""机会约束""风险敏感"三者对约束违反的态度有什么本质不同?(→ U0 §3 / U2 / U3 / U5)
  2. "他车意图"和"阵风扰动"这两种不确定性,为什么需要根本不同的建模工具?前者是什么型、后者是什么型?(→ U0 §2 五范式主线 / U1 / U2)
  3. belief(信念)为什么被称为"历史的充分统计量"?它和"状态"的区别是什么?(→ U4 §U4.1)
  4. CVaR\(_\alpha\) 与"期望"和"最坏情况"分别是什么极限关系?\(\alpha\to 0\)\(\alpha\to 1\) 各退化成什么?(→ U5 §U5.1)
  5. 为什么说"MPDM 是简化的 MCTS、EPSILON 是简化的 POMCP"?这个类比的桥梁是什么?(→ U1 §U1.7 / 80_综述 §RL 贯穿)
  6. 一个标准 MPC 优化问题对"未来"做了什么假设?这个假设在不确定环境下为什么是危险的?(→ U0 §1 / 任一方向 MPC 基础)

这 6 题对应本篇的六根支柱:安全谱的态度光谱(贯穿全文)、不确定性的类型学(第一章)、belief 充分统计量(POMDP 一章的地基)、CVaR 的极限定位(风险敏感一章)、搜索-RL 桥(RL 贯穿视角)、MPC 的确定性假设(所有方法共同的"靶子")。第 1、2 题尤其关键——整篇综述的骨架就是"不同态度 × 不同类型"的二维网格。


本篇目标

读完这篇方向级综述,你应该能够:

  1. 建立"不确定性类型学":把机器人面对的所有不确定性归到五个相互正交的桶里(集合型 / 概率型 / 多模态型 / 认知型 / 尾部型),并能对任意一个真实问题判断它"主要落在哪个桶、次要落在哪个桶"。
  2. 画出"五安全谱"的态度光谱:从最保守(鲁棒 100% 保证)到最激进(风险中性只看期望),把五条流派排在一条线上,说清每条谱的"信息需求—保守度—计算量"三角权衡。
  3. 复述五条流派的发展脉络主干:每条流派从奠基论文到工业落地到 2024–2026 前沿的关键节点,以及它们之间的"借力"关系(如机会约束借了鲁棒的约束收紧、风险敏感借了机会约束做尾部、POMDP 借了分支做近似)。
  4. 使用选型矩阵:拿到一个新任务(形态 × 不确定性来源 × 实时性 × 安全等级),能在矩阵里查到"首选谱、备选谱、不该用什么",并说出理由。
  5. 辨认五条流派在 RL 版图上的位置:鲁棒↔Robust RL、机会约束↔Safe RL/CMDP、风险敏感↔Distributional RL、POMDP↔Recurrent/Model-based RL、分支↔MCTS/Dreamer——以及 2024–2026 的合流前沿(neural-guided POMDP、可微 MPC、diffusion risk-aware planner)。
  6. 列举并讨论开放问题:知道这个方向"还没解决什么"——分布漂移下的鲁棒性、保守度与性能的根本张力、多模态意图的长尾、风险度量的时间一致性、C++ 工程生态的空白带。

写作约定(与 U0 一致):本篇符号沿用 U0 总论。状态 \(x\)、控制 \(u\)、扰动 \(w\)、扰动集 \(\mathcal{W}\)、观测 \(y\)、信念 \(b\)、风险水平 \(\alpha\)/违反概率 \(\delta\)、代价 \(J\)、策略 \(\pi\)。引用具体论文时给出"作者-年-载体",便于回到 U1–U5 的代表性论文表对照。


知识导航

本篇的逻辑主线是一条"从分类到比较到选型到展望"的链:

主题 你将获得 对应深度章
§1 不确定性的类型学 ⭐⭐ 五个正交的"不确定性桶",判断问题归属 U0 §2
§2 五安全谱的态度光谱 ⭐⭐ 一条从保守到激进的线,三角权衡 U0 §3
§3 流派 1:分支 / 场景规划脉络 ⭐⭐ 多模态意图的处理史 U1
§4 流派 2:鲁棒 / Tube MPC 脉络 ⭐⭐ 集合型扰动的硬保证史 U2
§5 流派 3:机会约束规划脉络 ⭐⭐ 概率型违反的可控放松史 U3
§6 流派 4:POMDP / Belief 规划脉络 ⭐⭐⭐ 认知不确定性的决策史 U4
§7 流派 5:风险敏感 / CVaR 脉络 ⭐⭐⭐ 尾部风险的度量与优化史 U5
§8 五谱横向对比矩阵 ⭐⭐⭐ 多维对照大表 + 本质异同 U0 附录
§9 方法选型矩阵 ⭐⭐⭐ 拿到任务怎么选谱(决策树) U0 附录
§10 RL 贯穿:五谱在强化学习版图的位置 ⭐⭐⭐ 经典↔RL 同义映射 80_综述 §RL 贯穿
§11 开放问题与 2024–2026 前沿 ⭐⭐⭐⭐ 还没解决什么、合流走向 各章前沿节
§12 C++ 工程生态总评 ⭐⭐ 哪条谱有代码、哪条得自己写 U0 附录 / 各章

节奏提示:§1–§2 是地基(类型学 + 态度光谱),相对轻松;§3–§7 是五条脉络,密度中等、可跳读你最关心的谱;§8–§9 是全篇高潮(对比矩阵 + 选型),需要回看前面所有脉络;§10–§12 是收官与展望。建议第一遍线性读 §1–§2 + §8–§9,再回头补 §3–§7 的脉络细节。


前置知识桥接

这篇综述横切五条谱,复用了 Part-U 教程里的多块前置。这里用 3–5 行各激活一次核心要点,让你不翻回去也能跟上;需要细节时再回对应章。

回顾 U0 §2「五范式主线」:U0 把机器人不确定性按"该用什么数学工具"分成五条主线——确定性等价(忽略不确定性,风险中性 MPC)、鲁棒(最坏情况)、随机/机会约束(按分布、允许小概率违反)、风险敏感(度量尾部)、信息状态/POMDP(连状态都看不清)。本篇 §2 把这五条主线重新组织成一条"态度光谱",并在 §8 做横向对比。复用方式:U0 给的是"五条主线各是什么",本篇要做的是"它们排在一起谁更保守、谁信息需求更高、谁该在什么时候用"。

回顾 U2「约束收紧」:Tube MPC 的核心动作是把名义约束 \(g(x)\le 0\) 收紧成 \(g(\bar x)\le -\rho\)\(\rho\) 是 RPI 集在约束方向的支撑),从而对扰动集内所有 \(w\) 都满足原约束。复用方式:本篇 §5 会指出机会约束"借用"了同一套收紧逻辑,只是把"对所有 \(w\)"换成"以概率 \(1-\delta\)",收紧量从"集合支撑"换成"分位数 \(\Phi^{-1}(1-\delta)\sigma\)"——理解这个"同构"是看懂鲁棒↔机会约束关系的关键。

回顾 U4「belief = 充分统计量」:POMDP 里 agent 看不到真实状态 \(s\),只能维护一个分布 \(b(s)\)(belief),它压缩了整段观测-动作历史且对未来决策"足够用"。复用方式:本篇 §6 会用这一点把 POMDP 与 RL 的循环网络(R2D2、Dreamer 的 RNN/RSSM 隐状态)缝在一起——"隐状态 ≈ 摊销的 belief"是经典↔RL 在认知不确定性上的主桥。

回顾 U5「Rockafellar–Uryasev 变分公式」\(\mathrm{CVaR}_\alpha(Z)=\min_t\{t+\frac{1}{1-\alpha}\mathbb{E}[(Z-t)_+]\}\) 把"尾部均值"写成一个凸优化(样本化后是 LP)。复用方式:本篇 §7 用它把风险敏感与机会约束的关系点破——机会约束管"尾部有多厚"(违反概率),CVaR 管"尾部有多深"(违反后有多糟),后者是前者的"公理化升级"。

回顾基础概率论「方差 vs 尾部」:初学者常混淆"方差大"和"尾部重"。方差描述的是分布的"散开程度"(二阶矩),尾部描述的是分布在极端值处的衰减速度。一个分布可以方差小但尾部重(如 \(t\) 分布、自由度低时),也可以方差大但尾部轻(如宽幅高斯)。复用方式:这个区分直接影响 §5(机会约束)和 §7(CVaR)的选择——如果你的扰动方差大但尾部轻(高斯),CC 的 \(\Phi^{-1}\) 收紧就够了;如果方差不大但尾部重(碰撞事件服从重尾),CC 会低估危险,此时需要 CVaR 显式管尾部。

回顾优化基础「凸 vs 非凸」:凸问题有唯一全局最优、可多项式时间求解;非凸问题可能有多个局部最优、对初值敏感。复用方式:五条谱的"可用性"很大程度取决于它们导出的优化问题是否保凸——Tube MPC 的名义问题保凸(QP)、CC 的高斯收紧保凸(SOCP)、CVaR 的 RU 变分保凸(LP)。但分支规划(多树)和 POMDP(信念树搜索)本质非凸、用搜索/采样求解。凸性是"可实时求解"的根本保证——一条谱能否上车,首先看它的优化问题能否保凸或有效近似为凸。

本质洞察(前置知识的"复用密度"揭示了本篇的数学地基深度):数一数上面的前置回顾——Bellman 方程/约束收紧/belief/CVaR 变分/方差 vs 尾部/凸 vs 非凸——本篇综述建立在六块不同的数学地基上,且每一块都在正文中被复用多次。这意味着本篇的"横切缝合"不只是"把五条谱摆在一起比较"——它需要在六块地基之间自由跳跃(§8 对比矩阵是六块地基的"联合应用")。如果你觉得读 §8 "特别烧脑",原因就在这里——它要求你同时激活六块前置并在它们之间做交叉推理。解决办法不是"再使劲读",而是"回到缺的那块前置补齐,再回来"——上面的前置桥接已为每块指明了回查地址。

回顾 U1「共享干 + 分支」:分支规划对多个离散未来各备一条 backup,但要求它们共享一段不可分叉的初始轨迹(非预期约束),因为"现在还分不清是哪个未来"。复用方式:本篇 §3 与 §6 会指出这正是 POMDP belief 树的"廉价近似"——把连续 belief 演化离散成 \(K\) 个场景分支,DESPOT 的确定化稀疏树就是这个思想的严格版。

本质洞察:Part-U 五条谱看似各管一摊,底层其实只有两个旋钮在变——"你假设不确定性长什么样(集合 / 分布 / 多模态 / 不可观)"和"你对违反持什么态度(绝不 / 小概率 / 看尾部 / 不管)"。这篇综述的全部内容,都可以折叠进这两个旋钮张成的二维平面。记住这一点,下面所有脉络细节都只是这张平面图上的一个个坐标点。


§1 不确定性的类型学:五个正交的桶 ⭐⭐

1.1 动机:为什么"不确定性"这个词太笼统了

工程师口中的"不确定性"是一个被严重过载的词。"地形摩擦不确定""他车意图不确定""我看不清前方"——这三句话都用了"不确定",但它们要求的数学工具完全不同:第一个要扰动集,第二个要离散概率分布,第三个要 belief。如果不先把"不确定性"拆开,就会犯一类最常见的工程错误——用错工具:拿 Tube MPC 去处理他车意图(结果保守到寸步难行),或拿分支规划去处理连续阵风(结果分支数爆炸)。

不是 X 而是 Y:很多初学者以为"处理不确定性 = 加大安全裕度"。不是。加裕度只对集合型有界扰动有效;对多模态意图,加裕度会让你同时远离所有可能的未来,反而更危险(在两条可能车道中间行驶);对认知不确定性,加裕度根本不解决问题(你需要的是主动观测去消除不确定,而不是躲)。"不确定性的类型决定了应对策略的形态"——这是整个 Part-U 的第一性原理。

1.2 五个桶:一个穷举式的维度分类

按"该用什么数学对象建模",把机器人不确定性穷举成五个相互正交的桶。这不是随意举例,而是一个思考框架——拿到任何新问题,先问"它在这五个桶里各占多少"。

数学对象 典型来源 对应谱 一句话刻画
① 集合型(set-bounded) 扰动集 \(\mathcal{W}\)(紧致集) 阵风、模型失配、有界外力 鲁棒 / Tube MPC "扰动在一个盒子里,但不知道具体多大"
② 概率型(probabilistic) 概率分布 \(w\sim p(w)\) 传感器噪声、过程噪声(已知统计) 机会约束 / 随机 MPC "扰动服从已知分布,可以谈概率"
③ 多模态型(multimodal) 离散场景集 \(\{\omega_k, P_k\}\) 他车意图、路口让/抢、人手抓/不抓 分支 / 场景规划 "未来是几种离散可能之一"
④ 认知型(epistemic) 信念 \(b(s)\)(状态上的分布) 状态不可观、遮挡、地图未知 POMDP / Belief 规划 "连真实状态都看不清,只能推断"
⑤ 尾部型(tail) 风险度量 \(\rho(Z)\)(如 CVaR) 罕见但致命的事件(碰撞、摔倒) 风险敏感 / CVaR "平均没事,但小概率的灾难要单独管"

这五个桶并非互斥——一个真实任务往往同时落在多个桶里。但它们在"建模对象"层面是正交的:集合型管"范围",概率型管"分布形状",多模态管"离散分叉",认知型管"可观性",尾部型管"分布的尾巴"。理解正交性的好处是:复合不确定性可以分层处理——例如自动驾驶里,他车意图(③多模态)+ 他车轨迹噪声(②概率)+ ego 自身动力学扰动(①集合)可以叠成"分支 × 机会约束 × Tube"的三层架构(这正是 EPSILON + SSC + 收紧约束的工程形态)。

1.3 双重解读:aleatoric vs epistemic 的另一张地图

上面五个桶是按"数学对象"切的。还有一张正交的地图——机器学习社区更熟悉的 aleatoric(偶然)vs epistemic(认知) 二分,它从"不确定性能否被消除"的角度切:

  • 角度 1(数学对象视角,上面的五桶):你拿什么对象去建模它。
  • 角度 2(可消除性视角,aleatoric/epistemic):偶然不确定性(aleatoric)是世界本身的随机性,再多数据也消不掉(投骰子);认知不确定性(epistemic)来自"我知道得不够",收集更多数据/观测能消掉(不知道这条路通不通,走一趟就知道了)。

两张地图的对应关系值得画清楚——这是 R6A 要求的"双重解读":

五桶 aleatoric/epistemic 归属 含义
① 集合型 偏 aleatoric(有界随机) 阵风每次不同,消不掉,只能包络
② 概率型 aleatoric 噪声是世界的随机性
③ 多模态型 epistemic(他人意图未知)+ aleatoric(执行噪声) 意图一旦观测到就坍缩 → epistemic
④ 认知型 纯 epistemic belief 就是 epistemic 的显式表示,观测降低它
⑤ 尾部型 跨两者(管的是"后果"不是"来源") 尾部可以来自任一种不确定性

本质洞察:epistemic 不确定性有一个 aleatoric 没有的"出路"——主动信息收集。这就是为什么 POMDP(④认知型)会自然涌现出"探索行为"(先看一眼再决定),而鲁棒 MPC(①集合型)永远只会"保守地躲"。一个规划器会不会"主动消除不确定性",取决于它建模的是 epistemic 还是 aleatoric。这一点在 §10 RL 贯穿里会再次出现——RL 的"探索-利用权衡"本质上就是 epistemic 不确定性的主动消除。

1.3bis 五桶的数学形式化对照

上面用直觉和例子建立了五桶的概念,这里给出精确的数学形式,便于后续引用。

状态演化方程 不确定性对象 规划问题形式
① 集合型 \(x_{k+1}=f(x_k,u_k,w_k),\ w_k\in\mathcal{W}\) 紧致集 \(\mathcal{W}\) \(\min_u \max_{w\in\mathcal{W}} J\)
② 概率型 \(x_{k+1}=f(x_k,u_k,w_k),\ w_k\sim p(w)\) 概率分布 \(p(w)\) \(\min_u \mathbb{E}_w[J]\) s.t. \(\Pr[\text{safe}]\ge1-\delta\)
③ 多模态 \(x_{k+1}=f(x_k,u_k),\ \omega\sim\{P_1,\ldots,P_K\}\) 离散场景集 \(\min_u \sum_k P_k J_k\) s.t. 共享干约束
④ 认知型 \(x_{k+1}=f(x_k,u_k,w_k),\ y_k=h(x_k,v_k)\) 信念 \(b_k(x)\) \(\min_\pi \mathbb{E}_b[J]\)(在 belief 空间上优化)
⑤ 尾部型 (叠加在任一桶上) 风险度量 \(\rho\) \(\min_u \rho[J]\),如 \(\rho=\mathrm{CVaR}_\alpha\)

看这张表的关键:第三列(不确定性对象)从"集合"到"分布"到"离散集"到"belief"到"风险度量"——信息量递增,但计算量也递增。 这就是 §2.3 三角权衡的数学根源:你对不确定性描述得越精细(从"只知道范围"到"知道分布"到"知道分布的分布"),你能做出越好的决策,但付出的计算代价也越高。

多视角理解(五桶的"信息阶梯"):把五桶排成一条"信息阶梯",从信息量最低到最高: - 阶梯最低(桶①):只知道"扰动在一个盒子里",不知道它更可能靠近中心还是边缘 - 阶梯第二(桶②):知道"扰动服从什么分布"(均值、方差甚至全分布) - 阶梯第三(桶③):知道"未来有几种离散可能、各自的概率是多少" - 阶梯第四(桶④):连当前状态都不确定,需要从观测序列推断 - 阶梯顶部(桶⑤):不只看期望,还关注分布的形状(尾部)

你提供的信息越多(阶梯越高),规划器能做出越精细的决策——但前提是这些信息是可靠的。如果你声称"扰动服从高斯分布"但实际是重尾的,你的"高阶信息"反而有毒。这就是为什么 DRO(分布鲁棒优化)在 2024–2026 成为热点——它说"我知道一些分布信息,但我不完全信任它"

1.4 类型学的工程价值:误判类型的代价

把类型学讲清楚不是学术洁癖,而是因为误判类型的工程代价极高。下面三个反事实是真实项目里反复出现的坑:

  • 把多模态当集合型:他车"可能左转可能直行",若用一个大扰动集把两种轨迹都包进去,ego 会在两条轨迹的"中间地带"行驶——而中间地带恰恰是最危险的(既不让也不抢)。正确做法是分支(U1):为每个意图单独优化,共享一段不分叉的初始段。
  • 把认知当概率型:机器人不知道门后有没有障碍,若假设"障碍以 50% 概率在此"用机会约束处理,它会一直保守减速却永远不去看一眼。正确做法是 POMDP(U4):把"看一眼"作为一个降低 belief 熵的动作纳入决策。
  • 把尾部当期望:99% 的情况下平均代价很低,但 1% 的碰撞是灾难。若只优化期望(风险中性),规划器会为了那 99% 的微小收益去赌 1% 的灾难。正确做法是风险敏感(U5):用 CVaR 把尾部 \(\alpha\) 单独拎出来优化。

这三个反事实合起来就是一句话:先分类,再选谱。这也是 §9 选型矩阵的逻辑起点。


§2 五安全谱的态度光谱:从"绝不违反"到"不管违反" ⭐⭐

2.1 动机:把五条谱排成一条线

§1 按"建模对象"把不确定性分了类。但工程师还需要第二个视角——对"约束违反"持什么态度。这个视角能把五条谱排成一条单调的线,从最保守到最激进。理解这条线,是做"保守度 ↔ 性能"权衡的前提。

考虑同一个约束——"不撞墙"\(g(x)\le 0\)。在不确定下,"满足"这个约束有五种渐次放松的解释:

态度 形式化 保守度
绝不违反(对所有扰动) \(g(x_w)\le 0,\ \forall w\in\mathcal{W}\) 鲁棒 / Tube 最保守
几乎不违反(小概率例外) \(\Pr[g(x)\le 0]\ge 1-\delta\) 机会约束 次保守
违反也别太惨(管尾部深度) \(\mathrm{CVaR}_\alpha[g(x)]\le 0\) 风险敏感 中等
多准备几手(按场景兜底) \(g(x_k)\le 0\) 各分支独立 + 共享干 分支 / 场景 与意图离散度相关
不管违反(只看期望) \(\min\mathbb{E}[J]\),约束当软的 风险中性 MPC 最激进

阶段小结:到这里我们有了两张正交的地图——§1 的"五桶类型学"(按建模对象切)和 §2 的"态度光谱"(按违反态度切)。接下来 §2.2 把这两张地图叠成一张二维网格,那张网格就是整篇综述的骨架。

2.2 二维网格:类型 × 态度

把"不确定性类型"(横轴)与"违反态度"(纵轴)叠起来,得到一张网格。每个流派落在网格的某个区域——这就是 §1.4 末尾说的"先分类,再选谱"的可视化:

                 态度(纵轴,越往上越保守)
   绝不违反 │  Tube MPC          ·                ·
            │  (①集合)
   小概率   │  ·            CC-MPC/CC-RRT          ·
            │               (②概率)
   管尾部   │  ·                ·          CVaR-MPC/CVaR-POMDP
            │                              (⑤尾部,可叠加任一类型)
   多手兜底 │  ·          分支/MPDM/EPSILON         ·
            │             (③多模态)
   POMDP    │  ─────────── belief 规划贯穿(④认知,正交于纵轴)───────────
            └──────────────────────────────────────────────────────────
              集合①        概率②        多模态③      尾部⑤      横轴:类型

这张网格揭示了三件关键的事:

  1. 鲁棒、机会约束、CVaR 在纵轴上是一条放松链:它们处理的常是同一类(连续)扰动,区别只在"违反态度"——这解释了为什么三者在数学上高度同构(§5、§7 会展开"机会约束是鲁棒的概率松弛、CVaR 是机会约束的公理化升级")。
  2. 分支规划单独占一列(多模态③),它不是"态度"的放松,而是"类型"的不同——它处理的是离散分叉而非连续扰动。
  3. POMDP 横跨整行(认知④正交于纵轴),因为它处理的是"可观性"这个更底层的问题——一旦状态可观,POMDP 退化,上面四条谱才登场。这就是为什么 U0 把 POMDP 放在"最底层"。

2.3 三角权衡:信息需求—保守度—计算量

每条谱在三个维度上各有取舍,没有免费午餐。这是选型时最该盯住的三角:

信息需求 保守度 在线计算量 三角小结
鲁棒 / Tube 最低(只需扰动集边界 \(\mathcal{W}\) 最高 低(名义 MPC + 离线 RPI) 信息要得少,代价是保守
机会约束 中(需分布的均值+协方差) 中(\(\delta\) 可调) 中(SOCP / 采样) 拿分布换保守度下降
风险敏感 / CVaR 中高(需分布或样本) 中(\(\alpha\) 可调) 中高(LP dual / 分布 RL) 精细管尾部,要更多分布信息
分支 / 场景 中(需场景集 + 概率) 与意图离散度相关 中高(\(K\) 倍优化 + 仿真) 多模态专用,\(K\) 是成本旋钮
POMDP 最高(需 \(T,O,R\) 全模型 + belief) 自适应(最优权衡探索-利用) 最高(信念树搜索) 信息要得最多,换最优决策

本质洞察:这个三角的"守恒律"是——你想少假设不确定性的结构(信息需求低),就得接受更保守的结果;你想要最优而不保守的决策,就得提供最完整的模型(信息需求高)并付出最高计算量。鲁棒和 POMDP 是这个守恒律的两个极端,机会约束/风险敏感/分支落在中间。选型的本质,就是在你"能提供多少信息""能容忍多少保守""有多少在线算力"这三者之间找平衡点。

2.3bis 三角权衡的数学根源:为什么没有免费午餐

§2.3 的三角权衡(信息需求—保守度—计算量)不是经验规律,而是有信息论根源的。这里给出一个直觉论证,帮助你理解为什么"更好的决策必然要更多信息或更多计算"。

考虑一个最简单的问题:机器人要决定"左转还是右转"来避开一个不确定位置的障碍。障碍在左边的概率是 \(p\),在右边的概率是 \(1-p\)

  • 风险中性(只看期望):如果 \(p>0.5\) 就右转,\(p\le 0.5\) 就左转。决策简单,但 \(p\) 接近 \(0.5\) 时碰撞风险高。
  • 鲁棒(对最坏鲁棒):无论 \(p\) 是多少,都假设障碍在"你选的那一侧"——于是不敢动(两侧都可能有障碍 → 留在原地最安全但永远到不了目标)。保守到极致。
  • 机会约束:允许 \(\delta\) 概率碰撞。如果 \(p<\delta\),可以安全地选左转(碰撞概率 \(=p<\delta\))。比鲁棒灵活,但需要知道 \(p\)(信息需求↑)。
  • POMDP:如果 \(p\) 不确定,先"探一探"(如发射探测信号)——如果探测结果表明障碍在左边,右转;反之左转。决策最优,但需要"探测"这个额外动作(计算/行动成本↑)和完整的观测模型(信息需求最高)。

本质洞察(三角权衡是"信息=决策质量"这个基本原理的推论):在信息论中,"做出好决策所需的最小信息量"有一个下界——决策的质量不可能超出你拥有的信息量所支撑的上限。鲁棒方法只用最少的信息(扰动范围),所以决策最保守;POMDP 用最多的信息(完整模型 + 观测),所以决策最精细。在信息量固定的条件下,你不可能既不保守又不多算——这就是"没有免费午餐"的精确含义。 工程选型的本质,是在你"能提供多少信息"和"能承受多少保守/计算"之间找帕累托点。

2.3ter 一个具体场景走查:同一个任务用五条谱分别怎么做

把三角权衡落到一个具体任务上——"无人机在有风条件下穿越一个移动窗框"——看五条谱各自怎么处理、代价是什么:

怎么处理 结果 代价
鲁棒 Tube 把阵风建成有界集 \(\mathcal{W}\),收紧穿窗约束,名义轨迹瞄准窗中心偏内 永远穿过去(只要阵风不超 \(\mathcal{W}\))但轨迹保守(不敢贴窗边) 信息:只需风速上界。计算:低。保守度:高
机会约束 把阵风建成高斯分布,收紧量 \(=\Phi^{-1}(1-\delta)\sigma_{\text{wind}}\) \(1-\delta\) 概率穿过,允许小概率碰窗框 信息:需风速的 \(\mu,\sigma\)。计算:中。保守度:中(\(\delta\) 可调)
CVaR 收紧量看"最坏 \(\alpha\) 比例风速"的平均影响 尾部的猛烈阵风被额外重视,轨迹比 CC 更保守但比 Tube 宽松 信息:需风速分布。计算:中。保守度:中偏高
分支 枚举"风从左吹/风从右吹/无风"三个场景,各备一条轨迹 三条轨迹共享前段、后段按场景分叉 信息:需场景枚举。计算:\(3\times\)单轨迹。保守度:与场景覆盖度有关
POMDP 不确定窗框当前精确位置(被遮挡),先飞近观测再调整 涌现"先看一眼再穿"的主动感知行为 信息:需完整 \(T,O,R\) 模型。计算:最高。保守度:最优

反事实推理:如果你在这个任务上硬用 POMDP(最强但最贵),而实际上阵风是有界的、窗框位置可观——你白付了"维护 belief + 搜信念树"的代价,得到的结果和 Tube MPC 一样(因为状态可观时 POMDP 退化为 MDP,belief 坍缩为点分布)。"用最贵的方法不一定最好"——如果你的任务不需要那么多信息处理能力,多出的能力就是纯粹的浪费。这是 §9 选型纪律"用最便宜的能解决问题的"的活例子。

2.4 一个统一的视角:所有谱都在"收紧或加权"

退一步看,五条谱在优化层面其实只做两件事之一:

  • 收紧约束(鲁棒、机会约束):把可行域往里缩,缩多少取决于不确定性。鲁棒缩"集合支撑",机会约束缩"分位数 × 标准差"。
  • 重塑代价(风险敏感、分支、POMDP):改目标函数。CVaR 把"期望"换成"尾部均值",分支把"单轨迹代价"换成"场景加权代价 + 共享干约束",POMDP 把"状态代价"换成"belief 上的期望代价 + 信息增益"。

这个"收紧 vs 重塑"的二分,是把五条谱塞进同一个 MPC/优化框架的统一接口——也是为什么工程上能用同一个求解器(acados / OSQP / IPOPT)承载多条谱:你只是在往优化问题里注入不同的收紧量或代价项。U2 累积项目"同一测试台扫 \(\delta\)"的设计,正是利用了这个统一接口。


§3 流派 1:分支 / 场景规划脉络(多模态意图的处理史)⭐⭐

本节定位:处理 §1 的"③多模态型"不确定性——未来是几种离散可能之一(他车让/抢、人手抓/不抓)。深度推导见 U1,本节只梳理脉络、点出流派之间的"借力"关系,并补 2024–2026 前沿。

3.1 这条谱要解决的核心问题

分支规划的诞生动机是一个单轨迹规划永远解不了的困境:当未来有几种离散可能、且现在还分不清是哪种时,"赌最可能的那个"会在赌错时酿成灾难,而"取平均"会落到所有可能的中间地带(更危险)。它的答案是"共享干 + 分支"——为每个离散场景各备一条 backup 轨迹,但要求它们共享一段不可分叉的初始段(非预期约束 non-anticipativity),因为当前时刻还没有信息区分场景。这个结构既不赌单一未来,也不取危险的平均,而是"对所有未来都保持兼容,等信息到了再分叉"。

3.2 发展脉络主干

这条线的演进可以分成"形式化奠基 → 多策略闭环仿真 → 工业级实时化 → 风险感知 → 学习驱动"五个阶段:

阶段 时间 关键工作 贡献
形式化奠基 2013 Hardy & Campbell(IEEE T-RO) 把"为不同障碍物预测各备 backup、共享初始段"写成连续样条优化
多策略闭环仿真 2015–2017 MPDM(Cunningham, ICRA'15)/ Galceran(IJRR'17) ego 候选策略 × 他车候选策略组合成闭环前向仿真森林
工业级实时化 2020–2022 EUDM(ICRA'20)/ EPSILON(T-RO'22) DCP-Tree + CFB 把组合爆炸压回可实时;EPSILON 开源 C++
风险感知 2023 MARC(RA-L'23) 动态分支点(按场景 divergence)+ CVaR 双层风险偏好
学习驱动 2022–2026 Contingencies-from-Observations(CoRL'22)/ diffusion scenario learned latent 场景分布驱动分支;扩散先验生成场景

脉络的内在逻辑:每一步都在解决上一步暴露的瓶颈。MPDM 的闭环仿真森林复杂度是 \(O(|\Pi|^n)\)\(|\Pi|\) 策略数、\(n\) agent 数),组合爆炸——EUDM 用 DCP-Tree(只展开策略序列而非全组合)+ CFB(Conditional Focused Branching,只在危险交互处分支)把它压回实时。EPSILON 在 EUDM 上加 SSC(Spatio-temporal Semantic Corridor)运动规划层,成为"行为决策(EUDM)+ 运动规划(SSC-QP)"的分层架构。MARC 再指出 EPSILON 的固定分支点不够灵活,改成按场景轨迹散度动态决定何时分叉,并把代价从期望换成 CVaR(与 §7 风险敏感谱合流)。

3.3 子路线分类

同属"分支",但技术形态分五类(这是 R6E 的系统性分类):

子路线 代表 形式 抓手
(a) Scenario-tree 优化 Hardy-Campbell, MARC, branch MPC 共享根节点的树形 QP/NLP
(b) Multipolicy / 前向仿真 MPDM, EUDM, EPSILON 枚举语义 ego 策略闭环仿真打分 EPSILON (C++)
(c) POMDP 近似 / belief-tree (与 U4 交界) 保留 belief 节点严格剪枝 DESPOT
(d) Scenario Manager / FSM Apollo, Autoware 工程视角状态机 Apollo / Autoware
(e) Learned Contingency Rhinehart, diffusion-based 神经先验生成场景/分支概率 (Python 为主)

3.4 与相邻谱的"借力"关系

分支规划不是孤岛,它和另外两条谱有明确的借用:

  • 借 POMDP 做形式化背景:EPSILON 的行为层本质是一个被语义动作和闭环仿真简化的 POMDP——belief 树被压成"几个语义策略 × 几个意图场景"的稀疏树。这就是 §1.3 末尾"共享干 + 分支 = belief 树的廉价近似"的来源。
  • 借 CVaR 做风险偏好:MARC 把场景加权从"期望"换成 CVaR,让规划器对"小概率但致命的场景"加权更重。这是分支谱(③多模态)与风险敏感谱(⑤尾部)的合流点。

3.5 2024–2026 前沿与开放问题

近年的活跃方向(与 §11 呼应):

  • 学习场景分布:CoRL 2022 的 Contingencies-from-Observations 用观测数据训练 latent 场景分布,再驱动 learned contingency;2024–2026 出现 diffusion prior 直接采样场景集,绕开手工枚举意图。
  • 意图长尾问题:手工枚举的意图集(让/抢/直行)覆盖不了真实路口的长尾行为(违章、犹豫、误判)。如何让分支集"自适应扩张"是开放问题。
  • 分支数 \(K\) 的自适应:固定 \(K\) 在简单场景浪费算力、复杂场景不够用。MARC 的动态分支点是一步,但"该分几支"仍多靠启发式。

本质洞察:分支规划的全部精髓是一句话——"在信息到来之前保持选择权"(preserve optionality until information arrives)。共享干是"还没信息时不乱动",分支是"信息一到就能立刻切到对的那手"。这与金融期权、与 RL 的"价值of信息"是同一个数学直觉——这也是为什么它能自然地与 MCTS/POMCP 缝合(§10)。


§4 流派 2:鲁棒 / Tube MPC 脉络(集合型扰动的硬保证史)⭐⭐

本节定位:处理 §1 的"①集合型"不确定性——扰动在一个紧致集 \(\mathcal{W}\) 里,要对集内所有扰动给 100% 约束满足保证。深度推导见 U2,本节梳理脉络 + 工程生态 + 前沿。

4.1 这条谱要解决的核心问题

鲁棒规划回答的是安全关键场景里最硬的问题:在扰动有界但具体值未知时,如何保证约束在最坏情况下也不被违反?它的答案是 Tube MPC——把真实轨迹"包"进一条以名义轨迹为中心的管道(tube),管道半径由扰动通过反馈后的不变集(RPI, Robust Positively Invariant set)决定;只要把名义约束按管道半径收紧,真实轨迹就被锁在安全区内。这是 §2 态度光谱上"绝不违反"的一端,也是信息需求最低(只需扰动集边界)、保守度最高的一端。

4.2 发展脉络主干

鲁棒 MPC 是五条谱里理论最成熟、历史最长的一条:

阶段 时间 关键工作 贡献
min-max 奠基 1998 Scokaert-Mayne 把最坏情况写进 MPC 目标,但保守且难算
名义+管道分离 2005 Mayne-Seron-Raković(Automatica,~6k 引用) 经典 rigid tube:名义系统 + 不变管道,把鲁棒拆成"名义优化 + 离线收紧"
数值基石 2005 Raković(IEEE TAC,mRPI 外逼近) 让 RPI 集可计算
降保守度 2011–2016 Mayne 非线性 Tube / Raković Homothetic & Elastic Tube 管道半径可随时间伸缩,减少保守
搬上机器人 2017–2020 Majumdar-Tedrake funnel(IJRR'17)/ Kousik RTD(IJRR'20)/ FaSTrack SOS 认证漏斗 / 离线可达集 + 在线 QP
硬件落地 2020+ MIT Cheetah convex MPC / ETH ANYmal OCS2 NMPC 把鲁棒化搬上四足实时硬件
学习增强 2023–2026 GP-MPC(Hewing-Zeilinger)/ Neural Lipschitz tube / 可微 MPC(acados+leap-c) 在线学扰动模型收紧 tube;让 NMPC 成为可训练的一层

脉络的内在逻辑:主线是"如何在保留 100% 保证的同时减少保守度"。rigid tube(2005)用固定管道,最保守;homothetic/elastic tube(Raković)让管道半径随状态伸缩;GP-MPC(2020)用高斯过程在线学扰动分布,把"对最坏情况"放松成"对高概率"(此处已滑向 §5 机会约束);learning-based tube(2023+)则用神经网络预测扰动边界。保守度的下降,总是以"假设更多关于扰动的信息"为代价——这正是 §2.3 三角权衡的体现。

4.3 子路线分类

子路线 代表 关键词
(a) Rigid Tube Mayne 2005 固定管道,最经典
(b) Homothetic/Elastic/Parametric Tube Raković 管道可伸缩,降保守
(c) Min-max / Scenario MPC Scokaert-Mayne, Lucia multi-stage 显式最坏情况 / 场景树
(d) Stochastic / CC-MPC Cannon-Kouvaritakis 概率收紧(→ §5)
(e) Reachability-based RTD, FaSTrack 离线 forward reachable set
(f) Funnel libraries Majumdar-Tedrake SOS + LQR 认证漏斗
(g) Learning-based Tube MPC GP/Neural tube 在线学扰动

注意 (d) 已经是"鲁棒→机会约束"的过渡——把"对集合 \(\mathcal{W}\) 所有点"换成"以概率 \(1-\delta\)",这就是下一节 §5 的入口。这种"流派边界的模糊地带"恰恰是综述最该点出的地方:鲁棒和机会约束不是两个独立王国,而是同一条收紧逻辑在"集合"与"概率"两种不确定性表示下的两个端点

4.4 工程生态:五条谱里最成熟的一条

这是 Part-U 里 C++ 抓手最硬的一条(与 §12 呼应):

项目 Stars License 角色
acados ~1.2k 2-Clause BSD 嵌入式 NMPC 事实标准(C 内核 + HPIPM/BLASFEO),被 MIT Cheetah、openpilot、众多 quadrotor 采用;tube/robust 需用户注入收紧约束
OCS2 BSD-3 ETH legged NMPC(SLQ/iLQR/SQP)
Crocoddyl BSD-3 刚体动力学最优控制
TinyMPC BSD 嵌入式线性 MPC
do-mpc LGPL (Python) multi-stage robust MPC + MHE,适合先导教学

4.5 2024–2026 前沿与开放问题

  • 可微 Tube MPC:acados 的 solution-sensitivity + leap-c 让 NMPC 成为神经网络的一层,可用 RL 梯度端到端训练鲁棒代价权重——这是鲁棒谱与 RL 合流的工程主线(§10)。
  • 数据驱动收紧:GP-MPC、Neural Lipschitz、diffusion-augmented tube 用学到的扰动模型在线收紧管道,在"硬保证"与"低保守"间找新平衡点。
  • 混合系统的鲁棒性:四足/人形的接触切换是混合系统,rigid tube 的不变集理论难以直接套用,工程上多退而用 convex MPC + 经验收紧——接触切换下的严格鲁棒保证仍是开放问题。

本质洞察:Tube MPC 的核心不是"把轨迹包起来",而是把一个无穷维的鲁棒问题(对每个扰动序列都要满足约束)降维成一个有限维的名义问题 + 一次离线的集合计算。RPI 集就是那次离线计算的产物——它把"未来所有可能的扰动累积"压缩成一个静态的安全裕度。理解这个"无穷→有限"的降维,才理解为什么 Tube MPC 能实时。


§5 流派 3:机会约束规划脉络(概率型违反的可控放松史)⭐⭐

本节定位:处理 §1 的"②概率型"不确定性——扰动服从已知分布,允许约束以小概率 \(\delta\) 违反 \(\Pr[g(x)\le 0]\ge 1-\delta\)。深度推导见 U3,本节梳理脉络 + 点出它"夹在鲁棒与风险中性之间"的精确定位。

5.1 这条谱要解决的核心问题

机会约束(Chance Constraint, CC)回答的是一个非常工程的问题:鲁棒太保守(对从不发生的极端扰动也死守),风险中性太冒险(完全不管违反),有没有一个可调的中间地带?它的答案是"允许以一个可控的小概率 \(\delta\) 违反约束"——\(\delta\to 0\) 退化成鲁棒(硬保证),\(\delta\) 放大则接近风险中性。\(\delta\) 就是那个"风险预算"旋钮。这正是 §2 态度光谱上"几乎不违反"那一档。

5.2 发展脉络主干

阶段 时间 关键工作 贡献
运筹学源头 1959 Charnes & Cooper CC programming 概念诞生
粒子近似 2006–2010 Blackmore-Ono-Williams(IEEE T-AC'10) particle approximation 把 CC 变成可算
风险再分配 2008 Ono-Williams IRA(CDC) 按子约束最优分配 \(\alpha_i\),缓解 Boole bound 保守性
嵌入采样规划 2010–2013 How 组 CC-RRT / CC-RRT* / PCC-RRT(AIAA) 把 CC 塞进 RRT 家族
桥接 CVaR / 分布鲁棒 2016+ Stanford ASL:Vitus / Lew DR-MPC CC ↔ CVaR ↔ 分布鲁棒的统一
多机 / 协方差塑形 2019+ Zhu-Alonso-Mora CC-MPC / Wang-Theodorou covariance steering 多机 CC;把 CC 变成 SDP

脉络的内在逻辑:早期 CC(Charnes-Cooper)只是个运筹学概念,难落地;particle approximation(2010)让它可算但慢;IRA(2008)解决了"联合机会约束(JCC)拆成单约束(ICC)时 Boole 不等式过保守"的问题——均分风险预算是浪费,按各约束"危险程度"分配才最优;CC-RRT 把它从优化扩到采样规划;近年 DR-CC(分布鲁棒机会约束)则进一步放松"分布已知"的假设,只要均值+协方差就能给保证(这与 2024–2026 的 Wasserstein-CVaR 工作直接呼应)。

5.3 子路线分类

子路线 代表 关键词
(a) 优化型 CC-MPC MILP / disjunctive LP 把概率约束凸化进 MPC
(b) 采样型 CC-RRT/CC-RRT* How 组 概率约束嵌入采样规划
(c) 分布鲁棒 DR-CC Calafiore, Ben-Tal, Lew 只需矩信息,对分布不确定鲁棒
(d) Covariance Steering Okamoto, Tsiotras 显式塑形状态协方差
(e) Scenario Optimization Campi-Garatti 用有限样本给概率保证

5.4 与相邻谱的同构关系

机会约束是综述里"借力关系"最清晰的一条谱——它两头都借

  • 向鲁棒借收紧逻辑:高斯下 \(\Pr[a^\top x\le b]\ge 1-\delta\) 等价于 \(a^\top\bar x + \Phi^{-1}(1-\delta)\sqrt{a^\top\Sigma a}\le b\)——这和 Tube MPC 的约束收紧同构,只是收紧量从"RPI 集支撑"换成"分位数 \(\Phi^{-1}(1-\delta)\times\) 标准差"。\(\delta\to 0\)\(\Phi^{-1}\to\infty\),收紧量→∞,退化成鲁棒。
  • 向风险敏感借升级:单个机会约束只管"违反概率 \(\le\delta\)",不管"违反多严重"。把它换成 CVaR 约束 \(\mathrm{CVaR}_\alpha[g(x)]\le 0\) 就同时管住了概率和深度——这是 §7 的入口,也是 2024–2026 "DR-CVaR over Wasserstein ambiguity set" 工作的理论根。

不是 X 而是 Y:机会约束不是"把硬约束改成软约束随便违反",而是"给违反一个精确的概率预算 \(\delta\) 并严格遵守"。软约束(penalty)违反多少不可控;机会约束的违反概率被钉死在 \(\delta\)。这个区别在安全认证里是天壤之别——监管能接受"碰撞概率 \(\le 10^{-6}\)",但不能接受"碰撞代价加了个罚项"。

5.5 工程生态与开放问题

这条谱的 C++ 生态基本空白(与 §12 呼应)——StanfordASL/ccscp(Python)、Ono IRA(MATLAB)为主,C++ 侧只有课程级实现(aalapshah12297/cc_rrt, stars < 50)。教学结论:这恰是绝佳的课程大作业——学生用 Eigen + OSQP/IPOPT 自己实现 CC-MPC 或 CC-RRT*,正好把约束收紧、SOCP、Boole 拆解、风险分配全过一遍。

开放问题:(1) 非高斯分布下的凸化(高斯才有干净的 \(\Phi^{-1}\) 闭式,重尾/多模态分布需 particle 或 DR);(2) 联合机会约束的紧致性(Boole 上界保守,IRA 缓解但非最优);(3) 分布漂移\(\delta\) 保证失效(训练分布≠部署分布,这是 §11 的核心开放问题)。


§6 流派 4:POMDP / Belief 规划脉络(认知不确定性的决策史)⭐⭐⭐

本节定位:处理 §1 的"④认知型"不确定性——连真实状态都看不清,只能通过带噪观测维护 belief。深度推导见 U4,本节梳理这条"Part-U 的 C++ 教学主轴"的完整脉络 + 与 RL 的最深桥梁。

6.1 这条谱要解决的核心问题

前三条谱(鲁棒、机会约束、风险敏感)都默认状态可观,只是状态的演化不确定。POMDP 处理的是更底层的问题:状态本身看不清(遮挡、传感器噪声、未建图区域)。它的核心对象是 belief \(b(s)\)——状态空间上的一个分布,是整段观测-动作历史的充分统计量。POMDP 在 belief 空间上做决策,自然涌现出"主动信息收集"行为(先看一眼再决定),这是它区别于其他四条谱的根本特征(§1.3 的 epistemic 出路)。

本质洞察:POMDP 之所以在 Part-U 里地位特殊(U0 把它放在最底层),是因为它正交于态度光谱(§2.2 那张网格里 POMDP 横跨整行)。鲁棒/机会约束/CVaR 是"状态可观、问怎么应对演化不确定";POMDP 是"状态不可观、问怎么在推断中决策"。一旦你的状态完全可观,POMDP 退化成 MDP,其余四条谱才登场。所以 POMDP 不是和它们并列的"第四种态度",而是更底层的"可观性问题"。

6.2 发展脉络主干:从精确到近似到学习

POMDP 的历史是一部"与维度灾难和历史灾难搏斗"的历史:

阶段 时间 关键工作 贡献 / 突破点
精确算法 1971–1998 Sondik(α-vector + VI)/ Kaelbling-Littman-Cassandra(AIJ'98) α-vector 与 PWLC 值函数;精确解随视界指数爆炸
点基突破(离线) 2003–2008 PBVI(Pineau'03)→ HSVI(Smith-Simmons'05)→ SARSOP(Kurniawati'08) 只在可达 belief 上备份,避开全单纯形
在线 MCTS 2010 POMCP(Silver-Veness, NeurIPS'10) 把 UCT/MCTS 引入 POMDP,particle filter 代表 belief,开启 online 范式
确定化稀疏树 2013–2017 DESPOT(Somani-Ye-Hsu-Lee, NeurIPS'13 → JAIR'17) \(K\) 个确定化场景固化信念树 + 正则化,有遗憾界
连续动作/观测 2018 POMCPOW / PFT-DPW(Sunberg-Kochenderfer, ICAPS'18)/ HyP-DESPOT(GPU) progressive widening 扩到连续空间;GPU 并行
belief-space 运动规划 2010–2015 LQG-MP(Platt, RSS'10)/ RRBT(Bry-Roy'11)/ FIRM 高斯 belief + 连续空间的特化
学习派合流 2022–2026 DreamerV3(Nature'25)/ neural-guided POMDP(BetaZero) RSSM = 摊销 belief;policy/value net 作 DESPOT 的 default policy/bound

脉络的内在逻辑:精确解(Sondik)数学完美但视界一长就爆炸;点基方法(SARSOP)的洞察是"绝大多数 belief 永远到不了,只在可达 belief 上备份 α-vector",把离线求解变可行;POMCP/DESPOT 的洞察是"别求全局值函数,只为当前 belief 做在线树搜索",把指数复杂度换成 anytime 的在线计算。DESPOT 比 POMCP 更进一步——用 \(K\) 个确定化场景把随机的信念树"固化"成一棵稀疏的确定树,且证明了 output-sensitive 的遗憾界(性能只依赖最优策略的复杂度,不依赖整个树)。这是从"精确但不可算"到"近似但可实时"的完整下降链。

6.3 子路线分类

子路线 代表 关键词 抓手
(a) 离线 value-iteration PBVI/HSVI/SARSOP/GapMin α-vector,离线 SARSOP (C++)
(b) 在线 MCTS POMCP/DESPOT/AEMS/POMCPOW 信念树搜索,anytime DESPOT (C++)
(c) belief-space motion planning LQG-MP/BSP/RRBT/FIRM 高斯 belief + 连续空间
(d) learning-based DRQN/Dreamer/VariBAD RNN/RSSM 隐状态当 belief (Python/JAX)
(e) constrained/risk POMDP CC-POMDP, CVaR-POMDP 带风险约束的 POMDP(→ §7)
(f) active SLAM / NBV 信息增益当奖励 主动感知

6.4 工程生态:Part-U 的 C++ 教学主轴

这是五条谱里 C++ 抓手最完整的一条(与 §12 呼应),构成一个完整矩阵:

项目 语言 License 角色
AdaCompNUS/despot C++11 BSD-style(注意 memorypool.h 为 GPL 衍生,商用需复核) 教学主抓手:继承抽象类 DSPOMDP,实现 Step/ObsProb/...MemoryPool<> 做粒子对象池(教学价值极高)
SARSOP (APPL) C++ Apache-2.0 离线 α-vector,POMDP/POMDPX 输入
OPPT C++17 GPL ABT 默认求解器,插件式,含 ROS+Gazebo
TAPIR C++11 ABT 早期实现
POMDPs.jl / pomdp_py Julia / Python 生态对照,非 C++

DESPOT 的教学 API 极清晰:用户继承 DSPOMDP,实现 CreateStartStateInitialBeliefStepObsProbGetBestActionGetMaxRewardNumActions;main 只需 new MyPlanner(); planner->RunPlanning(argc, argv);。配套 despot_tutorials(ROS + Gazebo LaserTag)与金牌案例 Bai-Cai-Ye 2015 行人交互式自动驾驶,是 C++ POMDP 教学的标准路径:tiger/rock_sample → ROS laser_tag → 行人驾驶。

6.5 与 RL 的最深桥梁

POMDP 与 RL 的关系是五条谱里最深的(§10 会展开),核心桥是 belief = history 的充分统计量

  • Recurrent RL(DRQN/R2D2):用 RNN 隐状态近似 belief——隐状态压缩历史,正是 belief 的神经网络版。
  • Model-based RL(Dreamer/MuZero):DreamerV3 的 RSSM(Recurrent State-Space Model)可视作摊销的 belief(amortized belief),DreamerV3 是 amortized POMDP planner 在 150+ 任务上的 SOTA;POMCP/DESPOT 的 rollout=simulate 本身就是 model-based RL。
  • 2024–2026 合流前沿:neural-guided POMDP(如 BetaZero)把 policy/value network 作为 DESPOT 的 default policy 与剪枝 bound——这是"经典树搜索派"与"神经世界模型派"的合流标志。

6.6 开放问题

  • 连续高维 belief:particle filter 在高维状态下退化(粒子贫化),连续动作/观测的 POMCPOW 虽有进展但实时性吃紧。
  • 模型依赖:POMDP 需要完整的 \(T,O,R\) 模型,真实场景这些模型本身就不确定(model uncertainty on top of state uncertainty)——这把问题推向 Bayes-Adaptive POMDP,计算更难。
  • C++ 与 Python 的鸿沟:DreamerV3 官方是 JAX 实现,不适合 C++ 直接复现,只宜作理论收官——这是 §12 工程生态总评里反复出现的"研究在 Python、部署在 C++"的现实张力。

§7 流派 5:风险敏感 / CVaR 脉络(尾部风险的度量与优化史)⭐⭐⭐

本节定位:处理 §1 的"⑤尾部型"不确定性——平均没事但小概率灾难要单独管。深度推导见 U5,本节梳理脉络 + 点出它是"机会约束的公理化升级"与"RL 的风险化"双重身份。

7.1 这条谱要解决的核心问题

风险敏感规划回答的是机会约束回答不了的问题:机会约束只管"违反概率 \(\le\delta\)",但违反之后有多惨它不管——撞一下和撞穿在它眼里都是"一次违反"。当尾部事件的后果差异巨大(轻微剐蹭 vs 高速对撞)时,必须把尾部的"深度"也纳入优化。它的答案是用一致性风险度量(coherent risk measure),尤其是 CVaR\(_\alpha\)——"最坏 \(\alpha\) 比例情况下的平均代价"。这是 §2 态度光谱上"违反也别太惨"那一档。

7.2 发展脉络主干

阶段 时间 关键工作 贡献
公理化奠基 1999–2000 Artzner 等"Coherent Measures of Risk" / Rockafellar-Uryasev(J. Risk'00) 一致性风险 4 公理;CVaR 的凸优化(LP dual)变分公式
动态一致性 2001–2010 Borkar risk-sensitive MDP / Ruszczyński(2010 nested risk) 解决静态 CVaR 的时间不一致问题
RL 化 2015 Chow-Tamar-Mannor-Pavone(NeurIPS'15) 带 CVaR 约束的 policy gradient
机器人落地 2017–2018 Majumdar-Pavone(ISRR'17) / Singh-Chow(T-AC'18) 把 Artzner 公理翻译到机器人,批评"期望+碰撞概率"不满足公理
分布式 RL 2017–2018 C51(Bellemare, ICML'17) / QR-DQN / IQN 学整个回报分布,IQN 内置 CVaR/Wang/CPW 采样器
前沿融合 2023–2026 CVaR-Filter / DRO-MPC / Wasserstein-DR-CVaR / diffusion risk-aware CVaR 进 CBF/MPC;分布鲁棒 CVaR;扩散风险规划器

脉络的内在逻辑:Rockafellar-Uryasev(2000)是整条线的技术心脏——它把"尾部均值"这个看似难算的量写成 \(\mathrm{CVaR}_\alpha(Z)=\min_t\{t+\frac{1}{1-\alpha}\mathbb{E}[(Z-t)_+]\}\),样本化后就是一个线性规划,从此 CVaR 可算。但静态 CVaR 有个致命问题——时间不一致(time-inconsistency):今天觉得最优的 CVaR 计划,明天可能后悔,因此不能直接塞进动态规划。Ruszczyński(2010)的 nested CVaR(逐步施加一步条件 CVaR)修复了这点。Majumdar-Pavone(2017)则做了"公理审计"——指出机器人界两个默认选项(最小化期望代价、约束碰撞概率)都不满足完整的一致性公理,会诱发不合理行为,这是把金融风险理论引入机器人的里程碑批评。

7.3 子路线分类

子路线 代表 关键词
(a) 静态 CVaR 约束 RU-dual LP 一步 CVaR,凸可算
(b) time-consistent dynamic risk Ruszczyński nested CVaR 修复时间不一致
(c) distortion risk metrics Majumdar-Pavone 一般化畸变风险
(d) distributional RL C51/QR-DQN/IQN 学回报分布,采样实现任意风险
(e) DRO / Wasserstein ambiguity 对分布不确定也鲁棒
(f) risk-sensitive exponential utility LEQG, Whittle 指数效用,经典控制路线

7.4 与相邻谱的关系:机会约束的"公理化升级"

风险敏感谱的定位,最好通过它与机会约束(§5)的关系来理解——这是 R6A 的多视角:

  • 机会约束 = 管尾部的"厚度"\(\Pr[g>0]\le\delta\) 只看"超出约束的概率有多大",不看超出多少。
  • CVaR = 管尾部的"深度"\(\mathrm{CVaR}_\alpha[g]\le 0\) 把最坏 \(\alpha\) 比例的代价平均压住,既管概率又管深度。
  • 极限关系\(\alpha\to 0\) 时 CVaR → 期望(风险中性);\(\alpha\to 1\) 时 CVaR → 最坏情况(鲁棒)。所以 CVaR 是一条连续地连接风险中性与鲁棒的旋钮——这是它在五条谱里最优雅的性质,等于把 §2 态度光谱上的两端用一个参数 \(\alpha\) 连续地插值起来了。

本质洞察:CVaR 把"鲁棒"和"风险中性"从两个对立的哲学变成了一条连续谱上的两个端点(\(\alpha=1\)\(\alpha=0\))。这是整个 Part-U 最深的统一——五条谱看似五种哲学,但通过 CVaR 的 \(\alpha\) 旋钮(管态度)和 §1 类型学(管对象),它们可以被组织进一个连续的、有原理的设计空间,而不是五个互不相干的工具箱。

7.5 工程生态与开放问题

C++ 侧基本空白(与 §12 呼应)——分布式 RL 全在 PyTorch/JAX(Dopamine、rlax、SB3-contrib QR-DQN),cvxpylayers/CVXPY 做 CVaR 凸层,Stanford ASL 的 ccscp/risk_sensitive_control 为 Python/MATLAB。教学建议:把 Rockafellar-Uryasev LP dual 作为作业,Eigen + OSQP 实现,作为 Part-U 的"理论顶帽 + 小作业"。

开放问题:(1) 时间一致性 vs 保守度的张力(nested CVaR 一致但更保守);(2) 分布鲁棒 CVaR 的计算(Wasserstein-DR-CVaR 是 2024–2026 热点,但 SDP 规模大);(3) 风险度量的选择——CVaR 只是一致性风险的一个,distortion risk(如 Wang transform)在不同应用下更合适,但"该选哪个风险度量"缺乏系统指导。


§8 五谱横向对比矩阵:把脉络折叠成一张大表 ⭐⭐⭐

本节定位:§3–§7 是五条纵向脉络,本节把它们横切,在统一维度上并排对照。这是综述区别于教程的核心价值——教程让你深入一条谱,综述让你在五条谱之间做有依据的横向比较。

8.1 主对比矩阵:八个维度

下面这张表是整篇综述的"中央枢纽"。八个维度都经过精心选择,使得"读一行=理解一条谱的全部要点,读一列=理解所有谱在某个维度上的谱系":

维度 鲁棒/Tube (U2) 机会约束 (U3) 分支/场景 (U1) POMDP/Belief (U4) 风险敏感/CVaR (U5)
管的不确定性类型 ①集合型 ②概率型 ③多模态型 ④认知型 ⑤尾部型(叠加)
违反态度 绝不(∀w) 小概率(≤δ) 多手兜底 自适应 管尾部深度
核心数学对象 RPI 不变集 分位数收紧 共享干+分支 belief(充分统计量) CVaR 变分公式
保守度 最高 中(δ 可调) 与意图离散度相关 最优(自适应) 中(α 可调)
信息需求 最低(仅 \(\mathcal{W}\) 中(均值+协方差) 中(场景集+概率) 最高(T,O,R 全模型) 中高(分布/样本)
在线计算量 中高(K 倍) 最高(信念树) 中高(LP/分布RL)
优化层动作 收紧约束 收紧约束 重塑代价+约束 重塑代价(+信息增益) 重塑代价
C++ 成熟度 ★★★★(acados/OCS2) ★☆(自己写) ★★★★(EPSILON) ★★★★★(DESPOT) ★☆(Python为主)

8.2 跨谱的三组"同构/借力"关系(本质对比)

§3–§7 各节点出的借力关系,在这里汇总成三组——这是综述最该传递的"森林视角",因为它们揭示五条谱不是五个孤岛,而是一张互相连通的网

第一组:鲁棒—机会约束—CVaR 是一条连续放松链。 三者常处理同一类连续扰动,区别只在违反态度,且数学上高度同构: - 鲁棒收紧量 = RPI 集支撑;机会约束收紧量 = \(\Phi^{-1}(1-\delta)\cdot\sigma\);CVaR 把约束换成尾部均值。 - 极限连接:\(\delta\to 0\) 时机会约束→鲁棒;\(\alpha\to 1\) 时 CVaR→鲁棒,\(\alpha\to 0\) 时 CVaR→风险中性。 - 一句话:鲁棒是 δ=0 的机会约束;CVaR 是连接鲁棒(α=1)与风险中性(α=0)的连续旋钮

第二组:分支—POMDP 是"近似—精确"的一对。 - 分支的"共享干 + K 个场景"是 POMDP belief 树的廉价离散近似;DESPOT 的 \(K\) 个确定化场景是这个近似的严格版(有遗憾界)。 - EPSILON 的行为层 = 被语义动作简化的 POMDP;MARC 的动态分支点 = 信念发散的启发式触发。 - 一句话:分支规划是工程上"算得起"的 POMDP,POMDP 是理论上"最优"的分支规划

第三组:CVaR 横向渗透其余四条谱。 - CVaR-MPC(叠在鲁棒/机会约束上)、CVaR-POMDP(叠在 POMDP 上,Ahmadi-Rosolia-Ames)、MARC 的 CVaR 分支(叠在分支上)——尾部型(⑤)不是独立的第五条谱,而是一个可以附着到其余四条谱上的"风险修饰符"。 - 一句话:CVaR 是个形容词,不是名词——它修饰"怎么对待尾部",可以作用在任何一种规划器上。

本质洞察:把这三组关系叠起来看,五条谱其实坍缩成"两条主轴 + 一个修饰符"——主轴 1 是"连续扰动的违反态度"(鲁棒↔机会约束↔风险中性,一条线);主轴 2 是"离散/认知不确定的处理"(分支↔POMDP,近似↔精确);修饰符是 CVaR(管尾部,可附着到任意轴)。整篇综述讲了 1500 行,最后能折叠进这一句话——这就是"看清森林"的含义。

8.3 五大机器人形态上的迁移度对照

不同机器人形态对五条谱的需求差异极大。这张表把"谱 × 形态"的迁移度并排(★越多越契合),是 §9 选型矩阵的形态维度基础:

谱 形态 自动驾驶 无人机 机械臂 四足 人形 loco-manip
鲁棒/Tube ★★★ ★★★★(差分平坦友好) ★★★(重复任务) ★★★(接触切换偏混合) ★★★★ ★★★★
机会约束 ★★★★(横纵向控制) ★★★★(CC 原生) ★★★(抓取容差) ★★(混合动力学难) ★★ ★★★
分支/场景 ★★★★★(最成熟) ★★★(动态障碍) ★★★(人手意图) ★★(MPPI 更主流) ★★★(人机协作) ★★★★(抓取成败分支)
POMDP/Belief ★★★★★(行人交互金牌案例) ★★★(视觉 active perception) ★★★★(抓取 OPPT) ★★(偏 RL+域随机) ★★ ★★★
风险敏感/CVaR ★★★★(lane change 尾部碰撞) ★★★(gust/battery 尾部) ★★★(force/torque 尾部) ★★★(fall recovery 尾部) ★★★ ★★★

读表要点:自动驾驶几乎在每条谱上都是 ★★★★+,因为它同时面对所有五类不确定性(他车意图③、传感噪声②、动力学扰动①、遮挡④、尾部碰撞⑤)——这就是为什么自动驾驶是 Part-U 教学案例的富矿。无人机偏鲁棒+机会约束(差分平坦 + 阵风)。四足偏弱于优化型谱,因为接触切换的混合动力学让 RPI 集/机会约束难用,工程上多走 MPPI/DIAL-MPC 或 RL+域随机。


§9 方法选型矩阵:拿到任务怎么选谱 ⭐⭐⭐

本节定位:综述的"可操作终点"。前面所有脉络和对比,最终要落到一个能指导决策的工具——给定一个真实任务,怎么选谱。本节给出一个三步选型流程 + 一棵决策树 + 一组典型场景的填好的选型答案。

9.1 三步选型流程

选型不是"哪个最先进就用哪个",而是一个有依据的匹配过程。三步走:

第一步:分类(用 §1 的五桶)。 问自己——这个任务的不确定性主要落在哪个桶?次要落在哪些桶? - 他车/行人意图 → 主③多模态 - 阵风/模型失配/有界外力 → 主①集合 - 传感器噪声(已知统计)→ 主②概率 - 遮挡/状态不可观/未知地图 → 主④认知 - 罕见致命事件(碰撞/摔倒)→ ⑤尾部(作为修饰,叠在主桶上)

第二步:定态度(用 §2 的光谱)。 问自己——这个任务的安全等级要求什么违反态度? - 安全关键、可认证(航天/工业安全)→ 绝不违反 → 鲁棒 - 安全重要、但要性能(自驾/无人机)→ 小概率违反 → 机会约束 / CVaR - 尾部后果差异巨大 → 管尾部深度 → CVaR - 性能优先、违反代价低(仿真/探索)→ 风险中性

第三步:查三角 + 生态(用 §2.3 + §8.1)。 问自己——我能提供多少信息?有多少在线算力?有没有现成 C++ 抓手? - 信息少(只有扰动边界)→ 鲁棒 - 信息多(全模型)+ 算力足 → POMDP - 要现成 C++ 教学栈 → 鲁棒(acados)/ POMDP(DESPOT)/ 分支(EPSILON) - 接受自己写 → 机会约束 / CVaR

9.2 选型决策树

把三步流程画成一棵决策树(R3 的选型类视觉,≥3 方案用决策流程图):

START: 你的任务有什么不确定性?
├─ 状态看不清(遮挡/不可观/未知地图)?
│   └─ YES → 【POMDP/Belief 规划 (U4)】
│            ├─ 要现成 C++ → DESPOT (在线) / SARSOP (离线)
│            ├─ 高斯belief+连续空间 → LQG-MP/RRBT/FIRM
│            └─ 需主动感知 → active SLAM (信息增益当奖励)
├─ 未来是几种离散可能(他车/人手意图)?
│   └─ YES → 【分支/场景规划 (U1)】
│            ├─ 要现成 C++ → EPSILON (EUDM+SSC)
│            ├─ 要工程 FSM → Apollo/Autoware scenario_manager
│            └─ 要尾部加权 → MARC (CVaR 分支)
├─ 连续扰动 → 看违反态度:
│   ├─ 绝不违反(可认证、安全关键)
│   │   └─ 【鲁棒/Tube MPC (U2)】acados/OCS2/Crocoddyl
│   │       ├─ 重复任务 → rigid tube
│   │       ├─ 降保守 → homothetic/elastic tube
│   │       └─ 学扰动 → GP-MPC / learning-based tube
│   │
│   ├─ 小概率违反可接受(要性能)
│   │   └─ 【机会约束 (U3)】自己写 Eigen+OSQP/IPOPT
│   │       ├─ 优化型 → CC-MPC (SOCP)
│   │       ├─ 采样型 → CC-RRT*
│   │       └─ 分布不确定 → DR-CC (只需矩信息)
│   │
│   └─ 尾部后果差异巨大(撞一下 vs 撞穿)
│       └─ 【风险敏感/CVaR (U5)】CVaR-LP dual / 分布RL
│           ├─ 静态 → RU-dual LP (Eigen+OSQP)
│           ├─ 动态一致 → nested CVaR (Ruszczyński)
│           └─ RL 端 → IQN (内置 CVaR 采样器)
└─ 复合不确定性(同时多种)?
    └─ 分层叠加:意图(分支) × 扰动(Tube/CC) × 尾部(CVaR)
       典型:EPSILON(分支) + SSC-QP(收紧) + CVaR 加权 = 自驾全栈

9.3 典型场景的填好答案

把决策树应用到六个典型任务上,给出"主选谱 + 备选 + 不该用 + 理由"。这是 R6E 的系统性分类落到具体——读者拿到类似任务可以直接类比:

任务 主不确定性 主选谱 备选 不该用 理由
路口让行决策 他车意图③ 分支 (EPSILON) POMDP 鲁棒(会卡死) 意图离散多模态,鲁棒把所有意图包进一个集会落到危险中间地带
阵风下无人机穿框 阵风① 鲁棒 Tube (acados) 机会约束 POMDP(杀鸡用牛刀) 状态可观、扰动有界,Tube 信息需求最低且实时
遮挡路口盲探 遮挡④ POMDP (DESPOT) 分支 机会约束(不会主动看) 认知不确定,只有 POMDP 会"先探一眼"消除 epistemic
机械臂力控装配 力矩噪声②+容差 机会约束 鲁棒 容差是概率型,机会约束给精确风险预算
高速 lane change 尾部碰撞⑤ CVaR-MPC 机会约束 风险中性(赌尾部) 尾部碰撞后果远大于平均,必须管深度
loco-manip 抓取 抓取成败③+扰动① 分支 × Tube POMDP 单谱(覆盖不全) 复合不确定,需分层:成败分支 + 执行 tube

本质洞察:选型矩阵最反直觉的一条是——最先进的方法往往是错的选择。POMDP 理论最优,但对阵风穿框是杀鸡用牛刀(状态可观时退化成 MDP,白付信念树的代价);鲁棒最安全,但对多模态意图会把车卡死。"选型 = 让方法的假设匹配问题的结构",而不是"选最复杂的"。这是工程师与论文作者的根本区别——论文要新,工程要"恰好够用"。


§10 RL 贯穿:五谱在强化学习版图的位置 ⭐⭐⭐

本节定位:经典规控与 RL 不是两个世界,而是同一组问题的两种语言。本节把五条谱逐一映射到 RL 版图,并指出 2023–2026 的合流前沿。详细 RL 缝合见 80_综述 §RL 贯穿,本节聚焦"五谱 ↔ RL 同义表达"的映射图。

10.1 五谱 ↔ RL 的同义映射

经典谱 RL 对应 桥梁(同一件事的两种说法)
鲁棒/Tube (U2) Robust RL Tube 的 RPI 不变集 ≈ Robust RL 的 uncertainty set;都在求"对最坏环境的最优"
机会约束 (U3) Safe RL / CMDP \(\Pr[\text{违反}]\le\delta\) 就是 CMDP 的约束;Achiam CPO、Chow Lyapunov-safe RL 是其 RL 化
风险敏感/CVaR (U5) Distributional RL C51/QR-DQN/IQN 学回报分布;IQN 的 \(\tau\) 重采样直接实现 CVaR——风险敏感本身就是 RL 的"风险化"
POMDP/Belief (U4) Recurrent / Model-based RL belief=history 充分统计量;R2D2 的 RNN、Dreamer 的 RSSM 隐状态 = 摊销 belief
分支/场景 (U1) MCTS / Model-based imagination MPDM 前向仿真森林 = 带启发的 tree search;Dreamer 的想象 rollout = learned contingency

10.2 三个最关键的桥,展开说

桥 1:MPDM = 简化 MCTS,EPSILON = 简化 POMCP。 这是 Part-U 与 RL 衔接最自然的类比(前置自测第 5 题)。MPDM 的"枚举 ego 策略 → 闭环前向仿真 → 打分"本质就是一次带启发的树搜索:策略 = 动作分支,前向仿真 = rollout,打分 = 价值估计。EUDM 的 guided branching 近似 MCTS 的 progressive widening。可以把策略网络 \(\pi(a|s)\) 当 branching prior、价值网络 \(V(s)\) 当叶节点剪枝——这正是 neural-guided POMDP 在做的。EPSILON 的 belief tree 对应 POMCP,区别只在用语义动作+闭环仿真替代了蒙特卡洛 rollout。

桥 2:belief = RNN/RSSM 隐状态。 POMDP 与 model-free RL 的最大桥是"belief 是 history 的充分统计量"。Recurrent DQN(DRQN)、R2D2 用 RNN 隐状态近似 belief;DreamerV3 的 RSSM 是摊销的 belief,可视作 amortized POMDP planner。这解释了为什么"部分可观"的 RL 任务都用循环网络——它们在隐式地做 belief update。

桥 3:CVaR = IQN 的 \(\tau\) 采样。 分布式 RL 直接把回报 \(Z\) 当随机变量学。IQN 学的是回报的分位数函数 \(Z_\tau\),只要在采样 \(\tau\) 时偏向小分位(如 \(\tau\sim U[0,\alpha]\)),就实现了 CVaR\(_\alpha\) 优化——不需要显式解 LP dual。这是风险敏感谱在 RL 侧的"免费午餐":风险度量从"额外约束"变成"采样分布的选择"。

10.3 2023–2026 合流前沿

经典与 RL 真正成熟的合流,在四条线上(与 §11 呼应):

合流方向 代表 缝的是哪两条
可微 MPC acados + leap-c, Theseus 鲁棒 MPC ↔ RL 梯度(NMPC 成为可训练的一层)
Diffusion Planner Diffuser, Decision Diffuser, Diffusion Policy 轨迹优化 ↔ 生成模型(条件采样整条轨迹)
TD-MPC2 Hansen et al. ICLR'24 ST 优化 ↔ model-based RL(latent 空间 MPPI + policy prior)
neural-guided POMDP BetaZero DESPOT 树搜索 ↔ policy/value 网络(网络作 default policy/bound)

近年还出现把 diffusion policy 与 CVaR 滤波合流的 risk-averse 工作(如 UDAC 的 uncertainty-aware distributional offline RL、LRT-Diffusion 的 calibrated risk-aware guidance),把"⑤尾部型修饰符"直接焊进生成式规划器——这是分支谱(生成场景)与风险敏感谱(CVaR)在 RL 侧的最新合流点。

本质洞察:经典规控与 RL 的关系不是"谁取代谁",而是"同一个不确定性问题的两种解法——一种靠显式模型 + 优化(经典),一种靠数据 + 摊销(RL)"。可微 MPC、neural-guided POMDP 这些合流工作的意义,是让两种解法能在同一个计算图里协作:经典提供结构与保证,RL 提供从数据中学到的先验与摊销。理解这一点,你就不会陷入"经典 vs RL"的伪二分,而能在每个子问题上判断"这里该用结构,那里该让数据说话"。


§11 开放问题与 2024–2026 前沿:这个方向还没解决什么 ⭐⭐⭐⭐

本节定位:综述的"未来视角"。前十节告诉你"已经有什么、怎么选",本节告诉你"还缺什么、值得做什么"。这是博士选题与工程攻坚最该盯住的部分。本节把分散在 §3.5/§4.5/§5.5/§6.6/§7.5 各章末尾的开放问题横切汇总,按"问题的本质"而非"按谱"重新组织成六个跨谱的根本张力——因为最有价值的开放问题往往不属于某一条谱,而是横亘在多条谱之上的结构性难题。

11.1 为什么开放问题要"横切"看

每条谱的章末都列了自己的开放问题(非高斯凸化、混合系统鲁棒性、连续 belief……)。但如果只是把它们罗列出来,你会错过一个关键事实:这些"各谱的开放问题"背后,往往是同一个更深的根本张力在不同谱上的投影

举一个例子说明这种"投影"。"分布漂移"这件事——

  • 在机会约束谱(§5.5)表现为"训练分布 ≠ 部署分布,\(\delta\) 保证失效";
  • 在鲁棒谱(§4.5)表现为"扰动集 \(\mathcal{W}\) 标定过窄,实战中扰动跑出盒子";
  • 在风险敏感谱(§7.5)表现为"用历史样本估的 CVaR 在新分布下不再是真尾部";
  • 在 POMDP 谱(§6.6)表现为"观测模型 \(O\) 的标定误差让 belief 系统性偏移"。

四条谱上长着四个看似不同的"病症",但病根是同一个:所有这些方法都假设了"我对不确定性的刻画是对的",而真实世界会让这个刻画过期。这就是为什么要横切——只有横切,才能看到"分布漂移下的可靠性"是一个贯穿五谱的元问题,而不是机会约束一家的麻烦。

本质洞察:综述读到这里,你应当形成一个判断标准——真正深的开放问题,都不在某一条谱的内部,而在"谱的假设"与"真实世界"的接缝处。每条谱都建立在一组假设上(扰动有界、分布已知、意图集可枚举、模型 \(T,O,R\) 给定),而这些假设无一例外会在部署时被现实违背。下面六个根本张力,本质上就是六道这样的"假设—现实"接缝。

11.2 六个跨谱的根本张力

把五谱章末的开放问题重新归类,收敛成六个根本张力。这张表是本节的枢纽——每一行是一个值得一篇博士论文的方向:

# 根本张力 一句话症结 投影到哪些谱 2024–2026 在攻的方向
T1 分布漂移下的可靠性 标定的不确定性刻画会过期 全部五谱 DR-CVaR over Wasserstein、conformal prediction、online RPI 自适应
T2 保守度 ↔ 性能的根本张力 要保证就保守,要性能就冒险,没有免费午餐 鲁棒/机会约束/CVaR risk-calibrated MPC、自适应 \(\delta\)/\(\alpha\)、learning-based tube 收缩
T3 多模态意图的长尾 手工枚举的意图集盖不住真实长尾行为 分支/POMDP diffusion/生成式场景、自适应分支数、open-set 意图识别
T4 风险度量的时间一致性 静态 CVaR 会"后悔",一致版又更保守 风险敏感/CVaR-POMDP nested risk 的高效求解、distributional RL 的一致风险算子
T5 复合不确定性的可扩展性 五桶叠起来时维度/分支组合爆炸 全部(尤其分支×POMDP×CVaR) 分层分解、neural amortization、factored belief
T6 理论保证 ↔ 学习先验的缝合 经典有保证无先验,学习有先验无保证 全部(合流前沿) 可微 MPC、neural-guided POMDP、certified learning

下面逐一展开六个张力——每个张力给"是什么困境、为什么难、2024–2026 怎么攻、还差什么"四段。

11.3 T1:分布漂移下的可靠性(the distribution-shift problem)

困境。 五条谱无一例外建立在"不确定性的刻画是对的"这个前提上:鲁棒假设扰动集 \(\mathcal{W}\) 标对了,机会约束假设分布 \(p(w)\) 标对了,POMDP 假设观测模型 \(O\) 标对了。但部署环境与标定环境几乎从不重合——天气、磨损、路况、人群分布都在漂移。一旦刻画过期,所有"保证"都只是对一个错误模型的保证

为什么难。 难点在于这是个"二阶不确定性"——不确定性本身是不确定的(uncertainty about the uncertainty model)。你不仅不知道扰动是多少,还不知道你对扰动的刻画准不准。经典框架里没有为这层留位置。

2024–2026 怎么攻。 三条线在并进: - 分布鲁棒优化(DRO)的成熟:不再假设单一分布 \(p\),而是对一个"分布的球"(ambiguity set,如 Wasserstein 球)里的所有分布都给保证。DR-CC(§5.3c)和 Wasserstein-DR-CVaR(§7.5)是其在机会约束/风险敏感谱上的落点——代价是 SDP 规模变大。 - 共形预测(conformal prediction)的引入:用 calibration set 给预测器一个"有限样本、无分布假设"的覆盖保证,再把这个保证转成规划器的安全裕度(conformal MPC、conformal controllability)。这是 2023–2026 把统计学习的分布无关保证嫁接到规控的最热路线。 - 在线自适应:online RPI 集估计、自适应 \(\mathcal{W}\)、residual GP 在线更新(§4.5 的 GP-MPC 是雏形)——让刻画随数据漂移而漂移。

还差什么。 DRO 给的是"对一个分布球鲁棒",但球的半径怎么定仍是手艺活(半径过大回到保守,过小回到漂移失效);conformal 的覆盖保证是边际(marginal)的,条件覆盖(conditional coverage,对每个状态都成立)仍开放。分布漂移下"既不退化成最坏情况、又不在漂移时失效"的自适应保证,是整个方向最硬的开放问题。

11.4 T2:保守度 ↔ 性能的根本张力(the conservatism–performance tradeoff)

困境。 这是 §2.3 三角权衡的"对角线"——也是贯穿全篇的主旋律。鲁棒给 100% 保证但保守到卡死;风险中性不保守但会赌灾难;机会约束/CVaR 用 \(\delta\)/\(\alpha\) 在中间插值,但插值点选在哪没有原理性答案。\(\delta=10^{-6}\) 还是 \(10^{-4}\)\(\alpha=0.95\) 还是 \(0.99\)?这些旋钮的取值直接决定安全与性能的平衡,却往往靠工程直觉拍。

为什么难。 因为"该多保守"本质上取决于后果的代价结构,而代价结构难量化(撞一下值多少钱?摔一次损失多大?)。没有可信的代价标定,\(\delta\)/\(\alpha\) 的"最优值"就无从谈起。更深一层,保守度与性能的张力在数学上是帕累托前沿——你只能在前沿上移动,不能同时改善两者,除非引入更多信息(回到 T1/T6)。

2024–2026 怎么攻。 - risk-calibrated / 自适应风险水平:让 \(\delta\)/\(\alpha\) 随情境在线调整(车流密集时收紧、空旷时放松),而非全程固定。 - learning-based tube 收缩:GP/neural tube(§4.5)用学到的扰动模型把保守的 rigid tube 收窄到"刚好够",在保证侧逼近性能侧。 - 风险水平的元学习:从专家数据或仿真里反推"人类/最优策略隐含的风险偏好",给 \(\alpha\) 一个数据驱动的锚。

还差什么。 自适应 \(\delta\)/\(\alpha\) 在调整的瞬间可能破坏原有的保证(改旋钮 = 改优化问题,递归可行性需重新论证);"刚好够"的收缩一旦学过头就丧失保证。在保留形式保证的前提下做自适应保守度,是 T2 与 T1 的交叉硬骨头。

不是 X 而是 Y:很多人以为"保守度 ↔ 性能"的张力总有一天会被某个更聪明的算法消除。不会。它是信息论意义上的守恒律(§2.3 本质洞察)——在给定信息量下,前沿就在那里。算法能做的不是消除张力,而是 (a) 在前沿上找到更贴合当前情境的点,或 (b) 通过引入新信息(学到的扰动模型、更准的代价标定)把整条前沿往外推。认清这一点,才不会把"调参"误当成"突破"。

11.5 T3:多模态意图的长尾(the intent long-tail)

困境。 分支规划(§3)和交互式 POMDP 都依赖一个意图集——他车"让/抢/直行"、人手"抓/不抓"。但真实世界的意图是长尾的:违章、犹豫、突然变道、误判、试探。手工枚举的有限意图集对长尾束手无策,而长尾恰恰是事故高发区。

为什么难。 意图是 epistemic 不确定性(§1.3),本可通过观测消除——但长尾意图出现频率太低,数据稀疏,学不出可靠的分布;且意图空间是开放集(open-set),永远有没见过的新意图。这是"用有限模型描述开放世界"的根本困难。

2024–2026 怎么攻。 - 生成式场景:用 diffusion/VAE 先验直接采样场景集(§3.5),绕开手工枚举——CoRL'22 Contingencies-from-Observations 是起点,2024–2026 的 diffusion scenario generation 让分支集从"枚举"变"采样"。 - 自适应分支数:MARC(§3.2)的动态分支点是一步;更激进的方向是让分支数随场景熵自适应扩张/收缩。 - open-set 意图识别:把"未见意图"显式建模成一个"其他"类(out-of-distribution 检测 + 兜底策略),而非假装意图集完备。

还差什么。 生成式场景采样出的分布是否覆盖真实长尾、有没有遗漏致命模式,缺乏保证(回到 T1);自适应分支数的"该分几支"仍多靠启发式。对开放集意图给出"覆盖性保证 + 实时性"的分支规划,是自动驾驶安全的核心未解问题。

11.6 T4:风险度量的时间一致性(time-consistency of risk)

困境。 §7.2 已点出:静态 CVaR 是时间不一致的——今天按 CVaR 算出的最优计划,明天站在新信息上看可能后悔,于是不能直接塞进动态规划/MPC 的滚动框架。但时间一致的版本(Ruszczyński nested CVaR,§7.3b)又更保守、更难算。一致性与可算性、一致性与保守度,两两打架。

为什么难。 时间一致性要求"风险度量在每个决策时刻自洽",这在数学上等价于风险算子要满足一种"动态规划兼容性"(Bellman 形式的风险版本)。一致的风险算子(nested/recursive risk)天然嵌套、逐步收紧,计算复杂度随视界累积;不一致的静态风险好算,但塞进滚动 MPC 会产生前后矛盾的行为。

2024–2026 怎么攻。 - distributional RL 的一致风险算子:IQN(§7.2)等分布式 RL 把风险变成"采样分布的选择",天然支持递归——把一致风险算子写进 distributional Bellman 算子是活跃方向。 - nested risk 的高效近似:用值函数逼近 / 神经网络摊销嵌套的条件 CVaR,降低累积复杂度。 - CVaR-POMDP(Ahmadi-Rosolia-Ames,§8.2 第三组):把一致动态风险塞进 belief 空间的尝试。

还差什么。 一致风险算子在连续状态/动作空间的可扩展求解仍是瓶颈;"工程上能否容忍一点不一致换取实时"缺乏量化的指导(什么时候静态 CVaR 的不一致后果可忽略)。实时、一致、不过度保守,三者兼得的动态风险规划仍未成熟。

11.7 T5:复合不确定性的可扩展性(the compositional explosion)

困境。 §1.2 的本质洞察是"五桶正交、复合可分层"——自动驾驶要同时处理意图③×噪声②×扰动①×遮挡④×尾部⑤。但"可分层"是理论上的优雅,工程上分层叠加会组合爆炸\(K\) 个意图分支 × 每支一个 belief 树 × 每个节点一个 CVaR 优化,维度乘起来很快超出实时预算。

为什么难。 每条谱单独都已在和维度灾难搏斗(POMDP 的信念树、分支的 \(|\Pi|^n\)、CVaR 的样本数)。叠加时这些灾难相乘而非相加。朴素的"全联合"(joint POMDP over 意图×状态×扰动)在理论上正确但完全算不动。

2024–2026 怎么攻。 - 分层分解:EPSILON 式的"行为层(分支)+ 运动层(收紧 MPC)"(§3.2)是工程范式——上层管离散意图、下层管连续扰动,不做全联合。MARC 的"分支 + CVaR"也是这个思路。 - neural amortization:用网络摊销重复的子问题(DreamerV3 的 RSSM 摊销 belief、neural-guided POMDP 摊销树搜索,§10.3)。 - factored belief / 结构化分解:利用不确定性之间的条件独立结构(意图与自车动力学独立)做因子分解,避免全联合。

还差什么。 分层分解牺牲了全局最优性(上下层各自优化 ≠ 联合最优),分解带来的次优有多大缺乏刻画;amortization 的网络在分布漂移下失效(回到 T1)。有保证的、可扩展的复合不确定性规划框架——既不退回全联合的不可算,又能界定分解的次优——是工程落地的核心瓶颈。

11.8 T6:理论保证 ↔ 学习先验的缝合(certified learning)

困境。 这是 §10 合流前沿的"另一面"。经典谱有保证(递归可行、鲁棒不变、遗憾界)但缺先验(从零开始优化,没用上历史数据的规律);学习方法有先验(从海量数据学到的世界规律)但缺保证(神经网络的输出没有形式安全证明)。合流要"既要保证又要先验",但二者的数学语言不通——保证是构造性的(不变集、Lyapunov),先验是统计性的(期望泛化)。

为什么难。 形式保证要求对所有情况成立(worst-case),统计学习只保证平均/高概率成立(average-case)。把一个 average-case 的网络嵌进一个 worst-case 的保证框架,接缝处天然漏风——网络在分布外的一次失误就能击穿整个保证。

2024–2026 怎么攻。 这是最热的合流带(与 §10.3 完全呼应): - 可微 MPC(acados+leap-c、Theseus):让 NMPC 成为可训练的一层,外层用 RL 学先验(代价权重、参考),内层 MPC 保留递归可行的保证——保证由结构提供,先验由数据注入。 - neural-guided POMDP(BetaZero):policy/value 网络作 DESPOT 的 default policy 与剪枝 bound——网络只负责"加速搜索",最终决策仍由有遗憾界的树搜索拍板,网络的错误不破坏保证。 - certified learning / 安全滤波器:CBF 安全滤波、CVaR-filter(§7.2)把学到的策略当"建议",再用一个有保证的滤波层投影到安全集——学习提先验,滤波保安全。

还差什么。 可微 MPC 的内层保证依赖内层模型正确(回到 T1);安全滤波器的"安全集"本身要标对(标错则滤波保的是错的安全);neural-guided 的网络若 bound 不可信会破坏遗憾界。让"保证"和"先验"在同一计算图里互不污染地协作——这是经典与 RL 真正融合的圣杯,也是 2024–2026 整个领域的主攻方向。

11.9 六张力不是孤立的:它们彼此咬合

六个张力看似各管一摊,实则互相咬合——解一个常常牵动甚至恶化另一个。这是开放问题最棘手的地方:没有哪个张力能被孤立地"攻克"。把两两咬合关系列出来("→"读作"试图解决前者会牵动后者"):

咬合 关系 为什么咬合
T1 → T2 解漂移常加保守 DRO/conformal 给鲁棒性的代价是更保守(分布球越大越保守),把 T2 的天平往保守端推
T2 → T6 降保守靠学习先验 想在保证下降保守(learning tube),就得引入学习先验,于是落进 T6 的"保证↔先验"接缝
T3 → T5 意图长尾推高复合度 意图集自适应扩张(解 T3)会增加分支数,直接恶化 T5 的复合爆炸
T4 → T2 时间一致更保守 nested CVaR(解 T4 的不一致)比静态 CVaR 更保守,又回到 T2
T5 → T6 分解靠 amortization 用神经摊销解复合爆炸(T5),摊销网络又缺保证(T6)
T6 → T1 学习先验怕漂移 学到的先验(解 T6)在分布漂移下失效(回到 T1),形成闭环

咬合图的形状是一个环:T1→T2→T6→T1 构成一个闭合回路(解漂移→更保守→靠学习降保守→学习怕漂移→回到漂移),T3/T4/T5 各从外侧接入这个环。这意味着不存在"解掉一个就轻松了"的张力——它们是一个耦合系统。

本质洞察:六张力的咬合揭示了这个方向最深的困难——它不是六道独立的难题,而是一个耦合的张力系统,按下一个会鼓起另一个。这解释了为什么 2024–2026 的前沿不是"逐个攻克张力",而是寻找能"同时松动多个张力"的统一框架(如可微 MPC 同时碰 T2/T6、DR-CVaR 同时碰 T1/T4)。给博士选题的启示是:最有价值的工作不是孤立地优化某一个张力的指标,而是找到一个能改变多个张力之间咬合关系的新结构——后者才可能让整个系统的帕累托前沿外移,而非只在前沿上挪一个点(回扣 §11.4 的 T2 守恒律)。

本质洞察:把六个张力叠起来看,它们其实围着同一个核心打转——"假设"与"现实"的鸿沟。T1 是"不确定性刻画的假设"过期,T3 是"意图集完备的假设"破裂,T5 是"可分层的假设"在算力上落空,T6 是"模型正确的假设"被学习先验考验。五条谱给了我们在假设成立时的优雅工具,而这个方向未来十年的全部工作,几乎都是在补"假设不成立时怎么办"。这也回扣了 §11.1 的判断标准:真正深的问题都在假设与现实的接缝处。一个成熟的从业者,看一篇新论文时第一个该问的不是"它用了什么炫技",而是"它松动了哪条假设、为此付出了什么代价"。


§12 C++ 工程生态总评:哪条谱有代码、哪条得自己写 ⭐⭐

本节定位:综述的"落地视角"。前面所有脉络都是"概念地图",本节回答一个极其实际的问题——如果我现在就要在 C++ 里上手一条谱,有没有现成的开源抓手?成熟度如何?哪条谱注定要自己造轮子? 这把 §4.4/§5.5/§6.4/§7.5 各章分散的工程生态信息横切汇总,给出一张"成熟度地形图",并解释地形背后的成因——为什么有的谱代码遍地、有的谱一片空白。

12.1 一张成熟度地形图

把五条谱的 C++ 工程成熟度并排,这是本节的中央表(★越多越成熟,"自己写"指无生产级 C++ 库、需基于 Eigen+求解器手工实现):

C++ 成熟度 旗舰开源抓手 求解器底座 现成度判断
POMDP/Belief (U4) ★★★★★ DESPOT、SARSOP(APPL)、OPPT 自带(树搜索/α-vector) 继承抽象类即可跑,教学最顺
鲁棒/Tube (U2) ★★★★ acados、OCS2、Crocoddyl、TinyMPC HPIPM/BLASFEO、自带 求解器现成,收紧约束需自注入
分支/场景 (U1) ★★★★ EPSILON(EUDM+SSC)、Apollo/Autoware scenario OSQP(SSC-QP) 行为层现成,但耦合自驾场景
机会约束 (U3) ★☆ 仅课程级(cc_rrt 等,stars<50) 自己接 OSQP/IPOPT 基本自己写
风险敏感/CVaR (U5) ★☆ 几乎无 C++(分布RL全在 Py/JAX) 自己接 OSQP(LP dual) 基本自己写

读图的第一眼结论:五条谱在 C++ 生态上严重两极分化——POMDP、鲁棒、分支三条有成熟旗舰库(★★★★+),机会约束和风险敏感两条几乎一片空白(★☆)。这个分化不是偶然,下面 §12.2 解释成因。

12.2 为什么生态如此两极分化:三条成因

成熟度地形不是随机的,背后有三条清晰的成因——理解成因,你就能预判"一个新方向值不值得等开源、还是该自己动手"。

成因一:有没有一个"杀手级落地场景"反哺工程化。 - POMDP 的 DESPOT 有"行人交互式自动驾驶"(Bai-Cai-Ye 2015)这个金牌案例,分支的 EPSILON 直接长在自动驾驶决策里——强落地场景会持续反哺库的工程化(性能优化、ROS 集成、文档)。 - 机会约束和风险敏感缺一个独占的、必须用它不可的工业杀手场景:机会约束的活儿常被鲁棒(更保守但有库)或软约束(更糙但好写)替代,CVaR 的活儿常被"期望 + 大安全裕度"近似掉。没有非用不可的场景,就没有工程化的持续动力

成因二:算法形态适不适合"封装成可复用库"。 - POMDP 的求解器有清晰的抽象边界——用户只需实现 Step/ObsProb/... 这组接口,求解器内核(树搜索/α-vector)完全通用,天然适合封装。鲁棒 MPC 的求解器(acados)也是通用 NLP 内核 + 用户问题描述。 - 机会约束和 CVaR 的"算法"很大程度上是一次问题变换(把概率约束凸化成 SOCP、把 CVaR 写成 LP dual),变换完之后丢给通用求解器(OSQP/IPOPT)即可——变换本身代码量小、与具体问题强耦合,不值得(也难)封装成独立库。这就是为什么它们"基本自己写":不是难,而是"写出来也不通用"。

成因三:研究主战场在 Python 还是 C++。 - 风险敏感谱近十年的主战场是分布式 RL(C51/QR-DQN/IQN,§7.2),而 RL 的研究生态完全在 PyTorch/JAX——研究者没有动力做 C++ 实现。这是 §6.6 反复出现的"研究在 Python、部署在 C++"张力在 CVaR 谱上的极端体现。 - POMDP/鲁棒/分支的研究主战场仍有大量在 C++/机器人实时系统里(实时性是硬指标),生态自然沉淀在 C++。

本质洞察:开源生态的成熟度,本质是"落地拉力 × 可封装性 × 研究语言"三者的乘积。POMDP 三项全高(强落地 × 可封装 × C++研究),所以 ★★★★★;CVaR 三项全低(弱独占落地 × 难封装 × Python研究),所以 ★☆。这个乘积模型能帮你预判任何新方向的生态走向——比如 diffusion planner 落地拉力在涨、但可封装性低、研究语言是 Python,所以可预期它"短期内 C++ 生态不会成熟"。判断要不要等开源,就看这三项的乘积

12.3 把"空白"变成"教学红利":自己写的两条谱怎么学

机会约束和 CVaR 的 C++ 空白,从工程看是缺憾,从教学看却是红利——它们恰好是"算法形态简洁、自己写一遍能把核心机理全过一遍"的理想大作业。这与 §5.5、§7.5 的教学建议呼应,这里给出统一的"自己写"路线:

自己写的核心 推荐栈 写一遍能掌握什么
机会约束 CC-MPC 高斯下 \(\Pr[a^\top x\le b]\ge1-\delta \Rightarrow a^\top\bar x+\Phi^{-1}(1-\delta)\|\Sigma^{1/2}a\|\le b\),组成 SOCP Eigen + OSQP 约束收紧、SOCP 建模、\(\delta\) 旋钮、Boole 拆解、风险分配(IRA)
机会约束 CC-RRT* 把上面的概率可行性检查塞进 RRT* 的 steer/collision-check Eigen + 自写 RRT* 概率碰撞检查、采样规划与概率约束的缝合
CVaR 静态优化 Rockafellar-Uryasev:\(\min_{x,t} t+\frac{1}{1-\alpha}\frac{1}{N}\sum_i (Z_i(x)-t)_+\),引辅助变量线性化 \((\cdot)_+\) 成 LP Eigen + OSQP LP dual 变分公式、\((\cdot)_+\) 的 epigraph 技巧、\(\alpha\) 极限退化

为什么"自己写"在这两条谱上特别值得:因为它们的核心恰恰是一个数学变换(§12.2 成因二),而变换是"看懂容易、写对才真懂"的典型——比如 CVaR 的 LP dual,公式抄一遍五分钟,但要把 \((Z_i(x)-t)_+\) 正确地用辅助变量 \(s_i\ge Z_i(x)-t,\ s_i\ge 0\) 线性化、再喂给 OSQP,才会真正理解"为什么 CVaR 是凸的、为什么样本化后是 LP"。这种"被迫把每个符号落成代码"的过程,是纯读公式给不了的——这正是把生态空白转成教学红利的逻辑。

12.4 工程选型的"抓手优先级"建议

把成熟度地形落到选型上,给一条务实的工程建议(与 §9 选型矩阵互补——§9 按"问题结构"选谱,本节按"有没有抓手"调整):

  1. 若问题允许多条谱,优先选有成熟 C++ 抓手的那条(POMDP→DESPOT、鲁棒→acados、分支→EPSILON)——工程上"有库可用"往往比"理论略优"更重要,尤其在交付压力下。
  2. 若问题结构强制要机会约束/CVaR(如监管要求精确的违反概率预算、尾部代价差异巨大),接受"自己写",并用 §12.3 的栈(Eigen+OSQP)——这两条谱自己写的代码量其实不大(核心变换百行级)。
  3. 复合任务用分层架构复用成熟抓手:EPSILON(分支,有库) + 自写 SSC-QP 收紧 + 自写 CVaR 加权,让"自己写"只落在没库的环节,成熟库覆盖大头。这正是 §9.2 决策树末尾"分层叠加"的工程对应。

本质洞察:工程选型与理论选型(§9)的关键差别,是工程要把"有没有现成抓手"作为一等公民的约束。一个理论上次优但有成熟库的方案,常常胜过理论最优但要从零造轮子的方案——因为造轮子的工程成本、调试成本、维护成本,往往远超那点理论差距带来的性能收益。"恰好够用 + 有库可用"是工程的胜利条件,"理论最优"只是论文的胜利条件——这与 §9.2 末尾"最先进的方法往往是错的选择"是同一条工程智慧的两面。


§13 综述小结:把整片森林折叠成三句话 ⭐⭐⭐

本节定位:综述的收官。前十二节是"展开"——把不确定性规划这片森林的每一棵树、每一条小径都走了一遍。本节是"折叠"——把走过的一切重新压缩成最小的、能装进脑子的核心结构。一篇好综述的标志,是读者合上它之后,能用三句话向同事复述整个领域的骨架。本节就是要给你这三句话,并给出一张"一页纸全景图"作为日后的查阅锚点。

13.1 第一次折叠:五条谱 → 两个旋钮

整篇综述开头(前置知识桥接的本质洞察)就埋了第一次折叠的伏笔——五条谱看似五种哲学,底层只有两个旋钮在变

  • 旋钮 A:你假设不确定性长什么样(§1 类型学的横轴)——集合?分布?多模态?不可观?尾部?
  • 旋钮 B:你对约束违反持什么态度(§2 态度光谱的纵轴)——绝不?小概率?管尾部?多手兜底?不管?

把这两个旋钮张成一个二维平面(§2.2 的网格),五条谱就是这个平面上的五个区域:鲁棒在"集合 × 绝不"角,机会约束在"概率 × 小概率"带,分支在"多模态 × 多手"列,POMDP 横跨"不可观"整行,CVaR 是"尾部 × 管深度"且可附着到任意区域。整篇 1500 行综述的全部脉络细节,都只是这张二维平面图上一个个被标注的坐标点。

这是综述最该带走的第一张图。如果只能记住一件事,记住这个:不确定性规划 = 在"不确定性类型 × 违反态度"的平面上选一个点。所有方法、所有论文、所有前沿,都是这个平面上的居民。

13.2 第二次折叠:五条谱 → 两条主轴 + 一个修饰符

第一次折叠还留了五个区域。§8.2 的本质洞察做了第二次、更狠的折叠——五条谱坍缩成两条主轴 + 一个修饰符

  • 主轴 1(连续扰动的违反态度):鲁棒 ↔ 机会约束 ↔ 风险中性,是一条线。三者处理同一类连续扰动,数学高度同构(收紧量从"集合支撑"到"分位数×σ"连续变化),\(\delta\to0\) 把机会约束推回鲁棒。
  • 主轴 2(离散/认知不确定的处理):分支 ↔ POMDP,是"近似 ↔ 精确"的一对。分支是算得起的 POMDP,POMDP 是最优的分支。
  • 修饰符(管尾部深度):CVaR,附着到任意主轴上(CVaR-MPC / CVaR-POMDP / CVaR 分支),且 \(\alpha\) 旋钮把主轴 1 的两端(鲁棒 \(\alpha\to1\)、风险中性 \(\alpha\to0\))连续地插值起来。

第二次折叠的威力:它把"五个并列的工具箱"变成了"两条有内在结构的轴 + 一个能连续插值的旋钮"。这就是为什么 §8.2 说五条谱"不是五个孤岛,而是一张互相连通的网"——主轴 1 内部是同构链,主轴 2 内部是近似-精确对,CVaR 横向缝合所有轴。

用一个反向展开验证这次折叠:检验折叠对不对,最好的办法是从折叠结果反向展开回原始五谱,看能否无损还原。从"两轴 + 修饰符"出发——主轴 1 取三个点(\(\delta=0\) 端 = 鲁棒、中段 = 机会约束、\(\alpha=0\) 极限 = 风险中性),主轴 2 取两个点(近似端 = 分支、精确端 = POMDP),修饰符附着即得 CVaR——五谱全部还原,且每条谱在结构里的"位置"和"邻居"都对(鲁棒紧邻机会约束、分支紧邻 POMDP)。能无损还原,说明折叠没丢信息,只是换了更紧凑的表示。这正是好的"折叠"区别于"过度简化"的判据:过度简化会丢掉还原能力(比如把五谱简化成"保守/激进两类"就无法还原出 POMDP 的正交性),而真正的折叠保留全部还原路径。

13.3 第三次折叠:整个领域 → 三句话

把前两次折叠再压一层,整个不确定性规划领域可以折叠进三句话——这就是 §13 标题承诺的"三句话",也是你向同事白板复述时该说的:

第一句(怎么分):先按"不确定性的类型"分桶(集合/概率/多模态/认知/尾部),类型决定工具——拿错桶就用错谱(§1)。

第二句(怎么选):再按"对违反的态度"在保守↔激进的光谱上定位,态度决定保守度,而"信息需求—保守度—计算量"三角守恒、没有免费午餐(§2、§9)。

第三句(往哪走):五条谱通过 CVaR 的 \(\alpha\) 旋钮和类型学被组织进一个连续的设计空间;它们各自又是 RL 的同义表达(鲁棒↔Robust RL、CC↔Safe RL、CVaR↔分布RL、POMDP↔循环/世界模型、分支↔MCTS),未来在"保证 × 先验"的接缝处合流(§10、§11)。

这三句话——类型决定工具、态度决定保守度、五谱通向 RL 且在接缝处合流——就是把整片森林装进脑子的最小结构。综述的全部价值,在于让你能从这三句话出发,反向展开出任意一条谱的细节,而不必死记五张表。

13.4 一页纸全景图:日后查阅的锚

把整篇综述压成一张可以贴在工位上的全景图(R3 的总览类视觉),作为日后查阅的单一锚点:

                    不确定性规划 · 一页纸全景
┌─────────────────────────────────────────────────────────────┐
│ 旋钮A:不确定性类型        旋钮B:违反态度                      │
│ ①集合 ②概率 ③多模态        绝不→小概率→管尾部→多手→不管         │
│ ④认知 ⑤尾部               (鲁棒)(CC)(CVaR)(分支)(风险中性)      │
├─────────────────────────────────────────────────────────────┤
│ 谱        类型   态度      数学对象      信息  保守  算力  C++  │
│ 鲁棒/Tube ①集合  绝不∀w    RPI不变集     最低  最高  低    ★★★★ │
│ 机会约束  ②概率  ≤δ        分位数收紧     中    中    中    ★☆   │
│ 分支/场景 ③多模  多手兜底  共享干+分支    中    可变  中高  ★★★★ │
│ POMDP     ④认知  自适应    belief充分统计 最高  最优  最高  ★★★★★│
│ CVaR      ⑤尾部  管深度    RU变分公式     中高  中    中高  ★☆   │
├─────────────────────────────────────────────────────────────┤
│ 三组连通:①鲁棒-CC-CVaR同构链(δ→0退鲁棒,α插值两端)            │
│           ②分支-POMDP近似精确对(分支=算得起的POMDP)            │
│           ③CVaR是修饰符横向附着(CVaR-MPC/POMDP/分支)           │
├─────────────────────────────────────────────────────────────┤
│ RL同义:鲁棒↔RobustRL  CC↔SafeRL/CMDP  CVaR↔分布RL(IQN)        │
│         POMDP↔R2D2/Dreamer  分支↔MCTS/想象rollout             │
├─────────────────────────────────────────────────────────────┤
│ 选型三步:①分桶(类型) ②定态度(安全等级) ③查三角+生态(信息/算力/库)│
│ 六大开放:T1漂移 T2保守↔性能 T3意图长尾 T4时间一致 T5复合爆炸 T6保证↔先验│
└─────────────────────────────────────────────────────────────┘

本质洞察(全篇收束):这篇综述从头到尾在反复做同一件事——把"看起来很多、很乱、很难"的东西,折叠成"其实很少、很有结构、可推导"的核心。五条谱折叠成两个旋钮,两个旋钮折叠成三句话,三句话再展开就是一页纸全景图。这种"展开↔折叠"的能力,才是综述要教给你的真正技能——不是记住五张表,而是掌握"任何一个看似庞杂的领域,都能被折叠进几个正交旋钮"的思维方式。下次面对一个陌生的子领域(比如多机器人协同、或长时规划),你该做的第一件事,就是问:"它的旋钮 A 和旋钮 B 是什么?" 这,就是从"认识每棵树"到"看清整片森林"的那一步跨越。

三次折叠的层级对应"看森林"的三个高度:第一次折叠(五谱→两旋钮)是"站在林缘看清边界"——知道这片森林由哪两个维度张成;第二次折叠(→两轴+修饰符)是"登高看清主脉"——知道树木沿哪两条主轴分布、CVaR 这条藤蔓如何横向缠绕;第三次折叠(→三句话)是"画成地图带走"——把森林压缩成可复述、可迁移的最小结构。教程(U1–U5)让你在林中辨认每一棵树,本篇让你依次登上这三个高度。一个真正"看清了森林"的人,能在这三个高度间自由升降:被问细节时降到树(展开回某条谱的推导),被问全局时升到地图(折叠成三句话)。升降自如,而非困在某一个高度,才是 Part-U 横切与纵深合一的终点。


§14 跨章综合思考题:检验你是否真的"看清了森林" ⭐⭐⭐

综述的练习不是"套公式"(那是 U1–U5 教程的事),而是横向综合——每道题都要求你在多条谱之间横跳、做有依据的比较与选型。这呼应 R4「每章至少 1 道跨章综合题」与 R14「跨章知识桥接」。建议白板作答,答不出的题指回对应节。

题 1(类型学 × 选型,→ §1、§9)。 一个仓储 AMR(自主移动机器人)在窄通道里运行,面对三类不确定性同时存在:地面打滑(轮速标定漂移)、迎面来的人会左让还是右让、转角处视野被货架遮挡。请:(a) 把这三类各归到五桶的哪一桶;(b) 分别说出该用哪条谱;(c) 设计一个分层架构把三条谱叠起来,并说明哪一层"共享干"、哪一层"收紧"、哪一层"主动观测"。

题 2(同构关系,→ §4.3、§5.4、§7.4)。 证明性地论述:为什么说"鲁棒是 \(\delta=0\) 的机会约束"?请从高斯下机会约束的收紧式 \(a^\top\bar x+\Phi^{-1}(1-\delta)\|\Sigma^{1/2}a\|\le b\) 出发,分析 \(\delta\to0\) 时收紧量的极限行为,并解释这个极限为什么对应"对所有扰动"的鲁棒约束。再进一步:CVaR\(_\alpha\)\(\alpha\to1\) 时也退化成鲁棒——这两条"通向鲁棒"的路径有何不同?

题 3(近似-精确对,→ §3.4、§6.1、§8.2)。 "分支规划是算得起的 POMDP,POMDP 是最优的分支规划"——请用 DESPOT 的"\(K\) 个确定化场景"具体说明:分支规划的"共享干 + \(K\) 个场景"在什么意义上是 POMDP belief 树的近似?这个近似在什么情况下会失真(提示:考虑 belief 演化的连续性 vs 离散场景的粗糙度)?

题 4(修饰符的横向性,→ §7、§8.2、§10.2)。 "CVaR 是个形容词不是名词"——请举出三个把 CVaR 分别附着到"鲁棒/POMDP/分支"上的具体方法(可参考正文),并说明在每种附着里,CVaR 改变的是优化问题的哪一部分(约束还是目标?)。再说明:在 RL 侧,IQN 是怎么"不解 LP 就实现 CVaR"的?

题 5(开放问题的横切,→ §11)。 选定"分布漂移"(T1)这一个根本张力,说明它分别在鲁棒、机会约束、风险敏感、POMDP 四条谱上"投影"成什么具体病症。然后论述:为什么 §11 主张"真正深的开放问题都在谱的假设与现实的接缝处"?用你自己的一个例子(不必来自正文)佐证。

题 6(选型的反直觉,→ §9.3、§12.4)。 §9 说"最先进的方法往往是错的选择",§12 说"恰好够用 + 有库可用是工程的胜利条件"。请构造一个具体场景:在这个场景里,理论最优的谱是 POMDP,但工程上正确的选择却是另一条谱。说清你的取舍依据(信息需求?算力?有没有 C++ 抓手?),并论证你的选择"不是偷懒,而是工程理性"。

题 7(RL 缝合,→ §10)。 "经典规控与 RL 是同一问题的两种语言"——请把"机会约束"这一条谱完整地翻译到 RL 侧:它对应 RL 的哪个子领域?\(\Pr[\text{违反}]\le\delta\) 在 RL 里写成什么?有哪个代表性 RL 算法实现了它?最后说明:可微 MPC 是怎么让"经典的保证"与"RL 的先验"在同一计算图协作的?

题 8(失败模式当过滤器,→ §18.1、§19)。 §18.1 提出"选谱时与其问哪条最好,不如问哪条的失败模式我最能承受"。请为下面两个对立场景各选一条谱并用失败模式论证:(a) 一台在仓库里搬货的 AMR,撞货架代价低但卡死停摆代价高;(b) 一台核电站巡检机器人,越界进入禁区是灾难但慢一点完全可接受。说明为什么这两个场景即使不确定性类型相近,选型也应相反——并指出各自"宁可承受哪种失败"。

题 9(旋钮的统一视角,→ §17.2、§11.4)。 §17.2 指出三条谱各有一个"旋钮"符号(\(\delta\)\(K\)\(\alpha\))。请说明:这三个旋钮分别调的是什么权衡?它们为什么都落在 §11.4 的 T2(保守↔性能)张力上?再论述——为什么"调旋钮"只是在帕累托前沿上移动一个点,而"引入学到的扰动模型"才可能把整条前沿外推?

解题提示:这 9 题没有唯一标准答案——综述题考的是"能否在多条谱之间建立有依据的联系",而非"背出某个结论"。一个好的答案应当:(a) 显式点出涉及哪几条谱;(b) 用正文的同构/借力/近似关系做桥梁;(c) 在选型类题上明确写出取舍依据。若某题完全无从下手,回对应节重读"本质洞察"引用块——那里通常藏着解题的关键直觉。


§15 综述级认知陷阱:跨谱比较时最容易栽的坑 ⭐⭐⭐

本节定位:R9 在综述里的形态不是"某个公式推导的坑"(那在 U1–U5),而是横向比较与选型时的认知误区——这些误区往往不是算错了某一步,而是在更高层"把两条谱的关系想反了""把方法的适用边界判错了"。每个陷阱给四要素:错误描述、现象/后果、根本原因、正确做法。这些坑全部来自前文反复强调却最易被忽视的关系。

陷阱 1:把"更保守"当成"更安全"

  • 错误描述:默认鲁棒(最保守)总是"最安全"的选择,遇到安全关键任务就无脑选鲁棒。
  • 现象/后果:在多模态意图场景(路口让行)用鲁棒,ego 把"左转"和"直行"两种他车意图包进一个大扰动集,结果在两条可能轨迹的中间地带行驶——这恰恰是最危险的位置(既不让也不抢),或者直接保守到卡死(gridlock),反而制造了新的安全隐患。
  • 根本原因:混淆了"保守度"与"安全性"两个正交概念。保守度是"对违反的态度有多硬"(纵轴),安全性是"实际有没有酿成事故"。保守只对集合型有界扰动(①)等价于安全;对多模态(③),过度保守会落到危险中间地带(§1.4 第一个反事实)。
  • 正确做法:先用 §1 类型学判断不确定性的桶,再选态度。多模态用分支(为每个意图各备一手),而非用鲁棒把所有意图包进一个集。"安全 = 类型匹配 + 适度态度",不是"态度越硬越安全"。

陷阱 2:把机会约束当成"软约束的花哨写法"

  • 错误描述:以为 \(\Pr[g\le0]\ge1-\delta\) 不过是"把硬约束放松成软约束、允许随便违反一点",于是用一个 penalty 罚项近似它。
  • 现象/后果:违反量完全不可控——penalty 权重调小则频繁越界、调大则退回保守,且无论怎么调都给不出"违反概率 \(\le\delta\)"这种可认证的保证。在监管场景(碰撞概率需 \(\le10^{-6}\))直接出局。
  • 根本原因:没理解机会约束的本质是"给违反一个精确的概率预算并严格遵守"(§5.4 的"不是X而是Y")。软约束控制的是"违反的代价",机会约束控制的是"违反的概率"——两者是不同的量,前者不可认证、后者可认证。
  • 正确做法:要概率预算就老老实实凸化成 SOCP(高斯下 \(a^\top\bar x+\Phi^{-1}(1-\delta)\sigma\le b\))或用 particle/DR 方法,而不是退化成 penalty。监管要的是"概率 \(\le\delta\)",不是"加了个罚项"。

陷阱 3:把"机会约束"和"CVaR"当成一回事

  • 错误描述:觉得机会约束和 CVaR 都是"管尾部风险的",可以互换使用。
  • 现象/后果:在尾部后果差异巨大的任务(高速 lane change,剐蹭 vs 对撞)用机会约束,结果规划器认为"撞一下"和"撞穿"都只是"一次违反",对二者一视同仁地控制概率,却对后果深度视而不见——在 \(\delta\) 预算内它会毫不犹豫地选择"小概率但致命"的方案。
  • 根本原因:没区分"尾部的厚度"与"尾部的深度"(§5.4、§7.4)。机会约束管厚度(违反概率有多大),CVaR 管深度(违反之后有多惨)。两者控制的是分布尾巴的不同侧面。
  • 正确做法:后果差异不大时机会约束够用(且更好算);后果差异巨大时必须上 CVaR(\(\mathrm{CVaR}_\alpha[g]\le0\) 同时管住概率和深度)。记住 §7.4 的极限关系——CVaR 才是连接风险中性与鲁棒的连续旋钮,机会约束不是。

陷阱 4:状态可观时还硬上 POMDP

  • 错误描述:听说 POMDP "理论最优",就把它当万能钥匙,连状态完全可观的任务(阵风下无人机穿框)也套 POMDP。
  • 现象/后果:付出了信念树搜索的最高计算量,却毫无收益——状态可观时 POMDP 退化成 MDP,belief 是退化的 delta 分布,整棵信念树是浪费(§9.3 "杀鸡用牛刀")。实时性直接崩。
  • 根本原因:没认清 POMDP 正交于其余四条谱(§2.2、§6.1)——它处理的是"可观性"这个更底层的问题。只有当状态本身看不清(遮挡、未建图)时,POMDP 的"主动观测"才有价值;状态可观时它的全部机制都是空转。
  • 正确做法:先问"状态可观吗"。可观 → 在鲁棒/CC/CVaR/分支里按类型选;不可观(epistemic 占主导)→ 才上 POMDP。POMDP 的价值在"先看一眼再决定",可观时没有"一眼"可看。

陷阱 5:把静态 CVaR 直接塞进滚动 MPC

  • 错误描述:在 MPC 的每个时刻独立地用静态 CVaR\(_\alpha\) 优化,以为这样就得到了"动态风险敏感控制"。
  • 现象/后果:行为前后矛盾——今天按 CVaR 算出的最优计划,明天站在新信息上重新优化时会"后悔"并推翻,规划器表现出抖动、反复、甚至违反单调性。
  • 根本原因:静态 CVaR 时间不一致(§7.2、§11.6)。它在单次优化里是凸且最优的,但在"逐时刻重优化"的滚动框架里,各时刻的 CVaR 目标互不自洽,不满足动态规划的 Bellman 兼容性。
  • 正确做法:要在动态/滚动框架里用风险敏感,须用时间一致的版本——Ruszczyński 的 nested CVaR(逐步施加一步条件 CVaR),或 distributional RL 的递归风险算子。代价是更保守、更难算,这是 §11.6 的 T4 张力。若工程上能容忍轻微不一致换实时,需显式论证后果可忽略,而非默认没问题。

陷阱 6:把"开源有库"和"理论成熟"画等号

  • 错误描述:看到 POMDP(DESPOT)、鲁棒(acados)有成熟 C++ 库,就以为它们"理论也最成熟、最该优先研究";看到机会约束/CVaR 没库,就以为它们"不重要、不成熟"。
  • 现象/后果:选题或选型时被生态误导——错过机会约束/CVaR 这些"理论很硬、只是恰好没封装成库"的方向,或盲目跟随有库的谱而忽略了任务其实更适合没库的谱。
  • 根本原因:把"工程成熟度"误当"理论成熟度"。§12.2 已点明:生态成熟度 = 落地拉力 × 可封装性 × 研究语言,与理论深度是两回事。CVaR 的理论(Rockafellar-Uryasev、一致性公理)极其成熟,只是因为"算法是一次变换、难封装、研究在 Python"才没有 C++ 库。
  • 正确做法:理论选型(§9,按问题结构)与工程选型(§12.4,按有没有抓手)分两步走。先按结构定该用哪条谱,再看有没有库——没库就接受"自己写"(核心常是百行级变换,§12.3),而不是因为没库就改用不匹配的谱。

本质洞察:这六个陷阱有一个共同的"母错误"——把正交的维度坍缩成了一维。陷阱 1 把"保守度"和"安全性"坍成一维,陷阱 3 把"尾部厚度"和"尾部深度"坍成一维,陷阱 4 把"可观性"和"演化不确定"坍成一维,陷阱 6 把"工程成熟"和"理论成熟"坍成一维。综述全篇反复强调"正交"二字(五桶正交、类型与态度正交、POMDP 正交于纵轴),正是为了防这类坍缩。保持维度的正交,是做对一切横向比较与选型的前提——一旦你在脑子里把两个本应正交的维度混成一个,就必然在某处栽跟头。


§16 选型误诊故障排查表:症状 → 误诊 → 纠正 ⭐⭐⭐

本节定位:R15 在综述里的形态——不是"代码报错怎么排查",而是"选型/部署出现异常行为时,怎么倒推是哪一步选错了谱"。下面六个故障场景,每个给"症状 → 可能的误诊根源 → 排查步骤 → 纠正方向 → 相关节"。这是把 §9 选型矩阵反过来用:从"行为异常"反查"选型错误"。

# 症状(部署时观察到的异常) 最可能的误诊根源 排查步骤 纠正方向 相关节
F1 机器人在两种可能未来的"中间地带"行驶(既不让也不抢、卡在两车道间) 把多模态③误当集合①,用鲁棒把多个意图包进一个大扰动集 ①确认不确定性是"离散几种意图"还是"连续有界扰动"②查当前是否用单一扰动集覆盖了多意图 改用分支/场景(§3):每个意图各备一手 + 共享干 §1.4、§3、§15陷阱1
F2 规划器永远保守减速、从不"去看一眼"被遮挡区域 把认知④误当概率②,用机会约束假设"障碍以某概率存在"而不主动观测 ①确认是"状态不可观"还是"状态可观但演化随机"②检查是否有降低 belief 熵的观测动作纳入决策 改用 POMDP(§6):把"看一眼"作为降熵动作纳入 §1.4、§6.1、§15陷阱4
F3 平均表现很好,但偶发灾难性后果(罕见高速对撞、摔倒) 把尾部⑤误当期望,用风险中性 MPC 只优化平均代价 ①查目标函数是否只含 \(\mathbb{E}[J]\)②确认尾部后果与平均后果的量级差距 改用 CVaR(§7):\(\mathrm{CVaR}_\alpha[g]\le0\) 单独管尾部深度 §1.4、§7、§15陷阱3
F4 违反约束的频率不可控,调罚项权重按下葫芦浮起瓢 用 penalty 软约束冒充机会约束,违反概率无法钉死 ①确认需求是"概率预算"还是"代价权衡"②检查约束是硬凸化还是软罚项 凸化成 SOCP 或 particle/DR(§5),给 \(\delta\) 精确预算 §5.4、§15陷阱2
F5 风险敏感控制器行为抖动、反复推翻自己的计划 把静态 CVaR 直接塞进滚动 MPC,时间不一致 ①确认每个时刻是否独立做静态 CVaR②观察是否出现"后悔-推翻"模式 改用 nested CVaR 或递归风险算子(§7、§11.6) §7.2、§11.6、§15陷阱5
F6 仿真/标定环境表现完美,部署后保证失效、频繁越界 分布漂移(T1)——标定的扰动集/分布/观测模型在部署环境过期 ①对比标定分布与部署分布②检查扰动是否跑出 \(\mathcal{W}\)\(\delta\) 是否仍成立 引入 DRO/conformal/在线自适应(§11.3) §5.5、§11.3

排查表的使用心法:所有六个故障的排查第一步都是同一句话——"回到 §1 类型学,重新确认这个任务的不确定性到底落在哪个桶"。F1–F3 是"桶判错了"(类型误诊),F4–F5 是"桶对了但态度的实现错了"(态度误诊),F6 是"桶和态度都对,但假设过期了"(接缝失效,对应 §11 的 T1)。这三层正好对应 §11.1 的判断框架:类型误诊 → 态度误诊 → 假设-现实接缝。

本质洞察:选型故障与代码故障有一个根本区别——代码故障会报错(编译失败、崩溃、断言),选型故障不会报错,它"安静地"以次优甚至危险的行为表现出来。F1 的中间地带行驶、F3 的偶发灾难、F6 的部署失效,程序都在"正常运行",没有任何异常抛出。这就是为什么选型错误比代码错误更危险、更难发现——你需要主动地、定期地拿这张表去"体检"系统行为,而不能等它报错。会写代码的人很多,会诊断"系统行为异常 → 选型决策错误"的人很少,后者正是综述要培养的、区别于教程的高阶能力。


§17 术语·符号·代表论文速查 ⭐⭐

本节定位:综述的"工具箱抽屉"——把全篇横跨五谱用到的术语、符号、奠基论文整理成可快速回查的索引。综述比教程横跨更广,术语更易混淆,这张速查是为了让你在任意一节卡壳时,不必翻回定义处就能续读(呼应 R7 术语精确性、R14 跨章桥接)。

17.1 核心术语中英对照与一句话定义

跨五谱反复出现、且最易混淆的术语,按"出现的谱"归类:

术语(中/英) 缩写 一句话定义 主出处
鲁棒正不变集 / Robust Positively Invariant set RPI 反馈后扰动累积的稳态包络,决定 tube 半径 §4.1、U2
管道 MPC / Tube MPC 真实轨迹被锁在以名义轨迹为中心、半径=RPI 的管道里 §4
机会约束 / Chance Constraint CC 约束以概率 \(\ge1-\delta\) 满足,\(\delta\) 是违反预算 §5
风险再分配 / Iterative Risk Allocation IRA 把联合机会约束的风险预算按危险度最优分到各子约束 §5.2
分布鲁棒机会约束 / Distributionally Robust CC DR-CC 对一个分布球内所有分布都满足机会约束 §5.3
条件风险价值 / Conditional Value-at-Risk CVaR 最坏 \(\alpha\) 比例情况下的平均代价(管尾部深度) §7
一致性风险度量 / Coherent Risk Measure 满足 Artzner 四公理(单调/平移/凸/正齐次)的风险度量 §7.2
时间一致性 / Time-Consistency 风险计划在每个决策时刻自洽、不会"后悔" §7.2、§11.6
嵌套 CVaR / Nested CVaR 逐步施加一步条件 CVaR,修复静态 CVaR 的时间不一致 §7.3、§11.6
信念 / Belief \(b(s)\) 状态上的分布,是观测-动作历史的充分统计量 §6.1、U4
部分可观 MDP / Partially Observable MDP POMDP 状态不可观、在 belief 空间决策的 MDP §6
确定化稀疏树 / Determinized Sparse Tree DESPOT 用 \(K\) 个确定化场景把随机信念树固化 §6.2
非预期约束 / Non-anticipativity 分支必须共享一段不可分叉的初始轨迹 §3.1、U1
共享干 / Shared Trunk 分支规划里所有场景共用的初始段(=非预期约束的工程说法) §3.1
条件聚焦分支 / Conditional Focused Branching CFB EUDM 只在危险交互处分支,压组合爆炸 §3.2
时空语义走廊 / Spatio-temporal Semantic Corridor SSC EPSILON 的运动规划层,把语义约束变成 QP 走廊 §3.2
偶然不确定性 / Aleatoric Uncertainty 世界本身的随机性,再多数据也消不掉 §1.3
认知不确定性 / Epistemic Uncertainty 来自"知道得不够",观测/数据能消掉 §1.3
分布鲁棒优化 / Distributionally Robust Optimization DRO 对一个分布的 ambiguity set 里所有分布都给保证 §11.3
共形预测 / Conformal Prediction 用 calibration set 给出有限样本、无分布假设的覆盖保证 §11.3
递归可行性 / Recursive Feasibility MPC 每一步的优化问题都保证有解(改旋钮需重新论证) §11.4

术语精确性提醒(R7):全篇最易被当成同义词混用、其实指不同东西的三对术语——(1) 保守度 vs 安全性(§15 陷阱 1,正交);(2) 尾部厚度(机会约束)vs 尾部深度(CVaR)(§7.4,不同侧面);(3) 可观性(POMDP)vs 演化不确定(其余四谱)(§6.1,正交)。读到这三对中任一个时,务必在脑中确认"我说的是哪一个",这是避免 §15 全部六个陷阱的语言基础。

17.2 统一符号表

全篇沿用 U0 符号体系,跨五谱共享一套记号(呼应正文"写作约定"):

符号 含义 出现谱
\(x,\ u,\ w\) 状态、控制、扰动 全部
\(\bar x\) 名义状态(去掉扰动的标称轨迹) 鲁棒/CC
\(\mathcal{W}\) 扰动集(紧致) 鲁棒(①集合型)
\(p(w),\ \Sigma\) 扰动分布、协方差 机会约束(②概率型)
\(\delta\) 约束违反概率预算(机会约束的旋钮) 机会约束
\(\Phi^{-1}(\cdot)\) 标准正态逆 CDF(高斯收紧的分位数) 机会约束
\(\{\omega_k,P_k\}\) 离散场景集与其概率 分支(③多模态型)
\(b(s)\) 信念(状态上的分布) POMDP(④认知型)
\(T,O,R\) 转移、观测、奖励模型 POMDP
\(K\) 分支数 / 确定化场景数(成本旋钮) 分支、DESPOT
\(\alpha\) CVaR 风险水平(尾部比例,管尾部的旋钮) 风险敏感(⑤尾部型)
\(Z\) 随机代价/回报(被风险度量作用的对象) 风险敏感
\(\rho(Z)\) 风险度量(CVaR 是其一种) 风险敏感
\((\cdot)_+\) \(\max(\cdot,0)\),CVaR 变分公式的铰链 风险敏感
\(J,\ \pi\) 代价、策略 全部

符号的"旋钮"视角:注意上表里被标为"旋钮"的三个符号——\(\delta\)(机会约束的违反预算)、\(K\)(分支/场景数)、\(\alpha\)(CVaR 的尾部水平)。它们是各谱里唯一需要工程师拍板的自由参数,也是 §11 的 T2 张力(保守度↔性能)的具体落点。记住"每条谱的旋钮是哪个符号",就抓住了该谱选型的核心抓手。

17.3 五谱奠基与里程碑论文索引

把 §3–§7 各脉络表里的关键论文按谱汇总成一张索引,便于回到 U1–U5 的代表性论文表深读("作者-年-载体"格式):

奠基/里程碑论文 角色
分支/场景 (U1) Hardy & Campbell 2013 (T-RO);MPDM Cunningham 2015 (ICRA);EUDM 2020 (ICRA);EPSILON 2022 (T-RO);MARC 2023 (RA-L) 形式化奠基→闭环仿真→实时化→风险感知
鲁棒/Tube (U2) Scokaert-Mayne 1998;Mayne-Seron-Raković 2005 (Automatica);Raković 2005 (TAC, mRPI);Majumdar-Tedrake 2017 (IJRR, funnel);GP-MPC Hewing-Zeilinger 2020 min-max→名义+管道分离→可计算 RPI→机器人化→学习增强
机会约束 (U3) Charnes & Cooper 1959;Blackmore-Ono-Williams 2010 (TAC, particle);Ono-Williams 2008 (CDC, IRA);How 组 CC-RRT* 概念诞生→粒子近似→风险再分配→采样规划
POMDP (U4) Sondik 1971;Kaelbling-Littman-Cassandra 1998 (AIJ);SARSOP Kurniawati 2008;POMCP Silver-Veness 2010 (NeurIPS);DESPOT Somani et al. 2013 (NeurIPS)→2017 (JAIR) 精确解→点基→在线 MCTS→确定化稀疏树
风险敏感/CVaR (U5) Artzner et al. 1999;Rockafellar-Uryasev 2000 (J. Risk);Ruszczyński 2010 (nested);Chow et al. 2015 (NeurIPS);Majumdar-Pavone 2017 (ISRR);C51 Bellemare 2017 (ICML) 公理化→LP dual→动态一致→RL 化→机器人公理审计→分布式 RL

索引的读法:每条谱的论文链都遵循同一叙事弧——奠基(提出概念)→ 可算化(变成能算的)→ 工程化/机器人化(搬上真实系统)→ 前沿融合(与 RL/学习合流)。这个四段弧是五条谱共享的"成熟轨迹",也是判断一个新方向"走到哪一步"的标尺:还在奠基期(概念新但不可算)、可算化期(有算法但慢)、还是工程化期(有 C++ 库、上了硬件)。把任一新论文往这条弧上一放,就知道它在领域里的位置。

17.4 与 Part-U 深度教程的回指地图

本篇是横切,每条脉络的纵深在 U1–U5。给一张"想深入某条谱时回指哪一章"的地图(呼应 R14 跨章桥接):

本篇节 主题 深度教程 回指时重点看
§1–§2 类型学 + 态度光谱 U0 总论 §2、§3 五范式主线的完整推导、确定性等价的危险
§3 分支/场景 U1 共享干+分支的样条优化、EPSILON 源码走读
§4 鲁棒/Tube U2 RPI 集计算、约束收紧的完整推导、acados 实操
§5 机会约束 U3 SOCP 凸化、Boole 拆解、IRA 算法、CC-RRT* 实现
§6 POMDP U4 belief update、α-vector、DESPOT 的 DSPOMDP 接口
§7 风险敏感/CVaR U5 Rockafellar-Uryasev 推导、LP 化、IQN 的 CVaR 采样
§10 RL 贯穿 80_综述 §RL 贯穿 五谱↔RL 同义映射的完整缝合

本质洞察(速查的元价值):一份好的术语-符号-论文速查,不只是"查得到",更是一张"领域的压缩快照"——§17.1 的术语表按谱归类,本身就重述了五桶分类;§17.2 的符号表标出三个旋钮,本身就点出了选型核心;§17.3 的论文索引揭示了"奠基→可算→工程→融合"的共享弧。换句话说,把这一节通读一遍,等于把整篇综述的骨架又过了一遍。这是综述附录区别于教程附录的地方:教程附录是"补充细节",综述附录是"再压缩一次全局"。


§18 两个补充对比维度:失败模式与计算画像 ⭐⭐⭐

本节定位:§8 的主对比矩阵从"管什么类型、什么态度、什么数学对象、多少信息/算力/库"八个维度横切了五谱。但选型实战还需要两个 §8 没展开的维度——每条谱"会怎么失败"(失败模式对比)和每条谱"吃掉计算预算的哪一块"(计算画像对比)。这两个维度是 §16 故障排查表的"理论底座":知道一条谱会怎么坏,才能反查它坏了;知道它的算力花在哪,才能判断它实时不实时。本节是 §8 对比综合的延伸,不是附录。

18.1 失败模式对比:每条谱"被推到极限时怎么坏"

任何方法都有它的"破绽方向"——把它推到假设的边界外,它会以特定方式失败。理解失败模式,比理解成功条件更重要(成功条件论文都写,失败模式往往要踩坑才知道)。下面横切五谱的"典型失败模式 + 触发条件 + 失败时的可观症状":

典型失败模式 触发条件(假设被推到哪) 失败时的可观症状 对应排查
鲁棒/Tube 过度保守 → 任务不可行/卡死 扰动集 \(\mathcal{W}\) 标得过大,或被迫覆盖多模态 找不到可行解、寸步难行、gridlock §16 F1
机会约束 高斯假设破裂 → \(\delta\) 保证失真 真实扰动重尾/多模态,但用了高斯闭式 \(\Phi^{-1}\) 标称满足 \(\delta\) 但实际越界频率远超 \(\delta\) §16 F4/F6
分支/场景 意图集不完备 → 长尾击穿 真实意图跑出枚举集(违章、犹豫) 对"没预备的那手"完全无应对、急刹/碰撞 §16 F1、§11.5
POMDP 维度/历史灾难 → 算不动或粒子贫化 高维连续状态/观测、长视界 实时性崩、belief 粒子退化成几个点 §6.6
风险敏感/CVaR 时间不一致 → 滚动时行为抖动 静态 CVaR 塞进滚动 MPC 计划反复推翻、抖动、违反单调性 §16 F5

失败模式的"对偶"规律:注意一个反直觉的对称——每条谱的失败模式,恰恰是它最强优点的"过量"。鲁棒最强是"保证",推到极限就"保守到不可行";分支最强是"为多种未来各备一手",推到极限就"备不全长尾那一手";POMDP 最强是"最优地权衡探索利用",推到极限就"算不动"。这不是巧合——一个方法的优势维度和它的脆弱维度是同一根轴的两端。鲁棒的轴是"保守度"(优点是保证、缺点是卡死),分支的轴是"枚举完备性"(优点是多手、缺点是长尾),CVaR 的轴是"尾部刻画精度"(优点是管深度、缺点是时间一致性代价)。

本质洞察:选型时,与其问"哪条谱最好",不如问"哪条谱的失败模式我最能承受"。仓储 AMR 撞货架代价低、卡死代价高 → 不能选鲁棒(怕卡死),宁可选分支(长尾失败可加兜底)。安全认证场景越界代价是灾难 → 宁可选鲁棒(怕越界,能接受保守)。好的工程师不是选"优点最多的谱",而是选"缺点最能扛的谱"——因为优点是平时的收益,缺点是出事时的代价,而工程的底线由代价决定。这是 §9 选型矩阵之外、必须叠加的"失败模式过滤器"。

18.2 计算画像对比:算力到底花在哪

§8 给了"在线计算量"的高/中/低定性判断,但选型实战需要知道算力具体花在哪个环节——因为同样是"中高算力",花在离线还是在线、花在哪一步,对实时部署的影响天差地别。下面拆解五谱的计算画像:

离线计算(部署前一次性) 在线计算(每个控制周期) 主算力瓶颈 实时性关键
鲁棒/Tube RPI 集计算(一次,可能慢) 名义 MPC 一个 QP/NLP 在线只是标准 MPC 离线吃重 → 在线轻,最易实时
机会约束 (几乎无) SOCP 或 particle 评估 凸化后的锥规划 / 粒子数 与 MPC 同量级,可实时
分支/场景 (几乎无) \(K\) 路并行优化 + 闭环仿真 \(K\) 倍 + 仿真 rollout \(K\) 是旋钮,CFB 压 \(K\) 保实时
POMDP 离线 α-vector(SARSOP)或无 信念树搜索(anytime) 树展开 × belief 更新 anytime 截断换实时(牺牲最优性)
风险敏感/CVaR (几乎无) LP/SOCP(样本数 \(N\) 个铰链) 样本数 \(N\) / 分布 RL 推理 \(N\) 决定精度-速度,可实时

计算画像揭示的选型含义: - 鲁棒是"离线换在线"的典范——把无穷维鲁棒问题压成一次离线 RPI 计算(§4.5 本质洞察),在线只剩标准 MPC,所以它在线最轻、最易上嵌入式(acados 上 quadrotor)。 - POMDP 是唯一"在线吃重且可 anytime"的谱——树搜索可以随时截断给出当前最优,用"算多久"换"多优"。这是它在线最贵、但又能靠 anytime 勉强实时的独特画像(DESPOT 的设计精髓)。 - 分支的 \(K\)、CVaR 的 \(N\) 是"精度-速度"旋钮——和 §17.2 的旋钮视角呼应,它们直接在计算画像里现身:调小省算力但损精度,调大反之。

本质洞察:§8 看"算力总量",§18.2 看"算力分布"——后者才决定能不能上实时硬件。一个深刻的规律是:能把计算"挪到离线"的谱,几乎总是更容易部署的谱。鲁棒把鲁棒性挪到离线 RPI,SARSOP 把求解挪到离线 α-vector——凡是能"离线算好、在线查表/轻算"的,都赢在部署。反之 POMDP 在线树搜索、分支在线 \(K\) 倍仿真,部署压力就大。这给选型一条隐藏准则:在满足任务的前提下,优先选"重离线、轻在线"的谱——这是嵌入式实时系统里"恰好够用"的另一层含义。

18.3 演进趋势综合:五谱在 2024–2026 正在"收敛"吗

把 §3.5/§4.5/§5.5/§6.6/§7.5 各章的前沿,和 §10.3、§11 的合流方向叠起来横看,会发现一个宏观趋势——五条曾经泾渭分明的谱,正在沿三条线收敛

收敛线一:向"数据驱动收紧/重塑"收敛。 鲁棒的 GP-MPC/learning tube、机会约束的 DR-CC、分支的 diffusion scenario、POMDP 的 RSSM、CVaR 的分布 RL——五条谱不约而同地在用"学到的模型"替换"手工标定的不确定性刻画"。这是对 §11 的 T1(分布漂移)的共同回应:与其手工标 \(\mathcal{W}\)/\(p(w)\)/意图集,不如从数据里学。

收敛线二:向"可微/可端到端训练"收敛。 可微 MPC(acados+leap-c)让鲁棒谱可训练,neural-guided POMDP 让 POMDP 可被网络引导,diffusion planner 让分支谱变成可训练的生成模型。五谱都在把自己"嵌进计算图",以便与 RL 的梯度协作(§10.3、§11.8 的 T6)。

收敛线三:向"风险感知"收敛。 CVaR 作为修饰符(§8.2 第三组)正横向渗透其余四谱——CVaR-MPC、CVaR-POMDP、MARC 的 CVaR 分支、risk-aware diffusion。尾部意识从"风险敏感谱专属"变成"所有谱的标配选项"。

收敛线 驱动力(回应哪个张力) 五谱各自的落点 收敛后的形态
数据驱动刻画 T1 分布漂移 GP-tube / DR-CC / diffusion场景 / RSSM / 分布RL 不确定性刻画从"标定"变"学习"
可微/端到端 T6 保证↔先验 可微MPC / neural-POMDP / diffusion planner 谱"嵌进计算图"与 RL 协作
风险感知 T2 保守↔性能(尾部侧) CVaR-MPC/POMDP/分支/diffusion 尾部意识成为所有谱的标配

本质洞察(演进的方向):这三条收敛线合起来指向一个判断——五条谱在"算法形态"上正在融合,但在"问题结构"上仍然正交。融合的是手段(都用数据、都可微、都加风险感知),不变的是 §1 的五桶分类(集合/概率/多模态/认知/尾部仍是正交的问题结构)。这意味着:未来你大概率不会再"纯用"某一条谱的经典形态,而是用一个"数据驱动 + 可微 + 风险感知"的统一框架,但在这个框架里,你依然要先判断问题落在哪个桶、该用什么态度——因为那是问题本身的结构,不会因为手段进步而改变。这就是为什么这篇综述的地基(§1 类型学、§2 态度光谱)即使在 2026 年之后仍然成立:手段会收敛、会过时,但"先分类再选态度"的思维框架不会

18.4 三条收敛线的工程实践建议:如何跟上收敛而不被甩下

上面三条收敛线是学术前沿的趋势判断。但对工程师而言,"趋势"只有转化为具体的技术投资方向才有意义。本节把每条收敛线落实到"现在该学什么、投入什么、避开什么"的操作层面。

收敛线一的工程着力点:数据驱动不确定性刻画。 最值得投入的技术是高斯过程回归(GP)在 MPC 中的集成——因为它是五谱中"数据驱动"路线里唯一有成熟 C++ 生态(GPy/libgp + acados)且理论保证最清晰的一条。它的核心吸引力在于:GP 同时提供预测均值(残差补偿,提升精度)和预测不确定性\(\sigma\) 管道,提供安全边界),一个模型同时服务 §4(鲁棒的管道收紧)和收敛线一(数据驱动的管道自适应)——这种"一石二鸟"的特性是纯黑箱神经网络所不具备的(神经网络需要额外的 ensemble 或 MC dropout 才能输出不确定性,且输出的不确定性缺乏 GP 那样的理论保证)。GP-MPC 的核心思路是用 GP 在线学习残差动力学 \(\Delta f(x,u)\),然后把 GP 的预测不确定性(\(\mu \pm 2\sigma\) 管道)直接喂进 Tube MPC 的约束收紧——这让"数据驱动"和"经典保证"在同一个优化问题里缝合。数学上,名义动力学变为 \(\bar f(x,u) = f_{\text{prior}}(x,u) + \mu_{\text{GP}}(x,u)\),管道半径变为 \(\rho(x,u) = 2\sigma_{\text{GP}}(x,u)\),约束收紧量从固定的 \(\rho_{\mathcal{W}}\)(§4 的 RPI 支撑)变成了随位置和数据量变化的 \(\rho(x,u)\)——数据多的区域管道窄(精确),数据少的区域管道宽(保守)。

工程上需注意三点:(1) GP 的推理复杂度是 \(O(n^3)\)\(n\) 为训练点数),需要稀疏近似(如 FITC / inducing points)才能上实时;(2) 核函数的选择直接影响外推行为——RBF 核在训练分布外会迅速回到先验均值,这在安全临界应用中反而是优点(保守而非高信心地胡说);(3) GP 输出的不确定性管道可能在高维输入空间变得过于保守——此时考虑 deep kernel learning 或 ensemble 替代。

收敛线二的工程着力点:可微 MPC 管线。 最值得关注的工具链是 acados + leap-c(Frison 组 2024–2025)——它让 acados 的 NLP 求解器变成一个可微层,可以反向传播梯度到代价函数的参数 \(\theta\)。这意味着你可以用 RL(或模仿学习)的梯度来自动调 MPC 的代价权重,而不是手动调参。工程落地时的关键挑战是:可微求解器在不可行点附近梯度可能爆炸或消失(KKT 矩阵病态),需要正则化或 penalty 平滑。当前建议的入门路径是:先在一个简单系统(如倒立摆或 cart-pole)上把 "acados QP → leap-c 可微化 → PPO 训练代价权重 → 部署" 跑通,建立对"可微优化层"行为的直觉,然后再迁移到复杂系统。

反事实推理(如果可微 MPC 的所有约束都能被梯度穿透会怎样):一个诱人的想法是"让 RL 的梯度穿透 MPC 的所有约束,包括安全约束"——但这会导致 RL 策略学会"利用"安全约束的边界(如让机器人贴着障碍物的约束边界飞行以获得最短路径),一旦约束松弛精度不够或模型有误差,就会碰撞。正确的做法是区分"可训练约束"(代价权重、参考轨迹)和"不可训练约束"(安全边界),只让梯度穿透前者。这与 S5(RL 贯穿)§4 骨架 B 的"安全层不可微"原则完全一致——安全约束应当作为 RL 看不见梯度的硬边界,而非可优化的软目标。

收敛线三的工程着力点:风险感知作为"即插即用模块"。 2024-2026 年,CVaR 从"风险敏感谱的专属工具"演变为"所有谱都可以叠加的修饰符"——这正是 §8.2 第三组同构(CVaR 是"形容词不是名词")在工程层面的兑现。在你的 MPC 中加入 CVaR 尾部管理,不需要重新设计整个控制器,只需要在代价或约束中加入一个 CVaR 项。

CVaR 的实际工程集成有两条路线:(a) 目标函数层面——把原来的期望代价 \(\mathbb{E}[J]\) 替换成 \(\mathrm{CVaR}_\alpha[J]\),通过 Rockafellar-Uryasev 变分引辅助变量 \(t\),把问题变成稍大但仍为凸的 LP/SOCP;(b) 约束层面——在机会约束 \(\Pr[g(x)>0]\le\delta\) 的基础上加一层 \(\mathrm{CVaR}_\alpha[g(x)]\le 0\) 管尾部深度。路线(a)适合代价本身有重尾风险的场景(如金融调度、灾难规避),路线(b)适合"小概率越界后果极端"的场景(如碰撞后的伤害严重度)。工程上,\(\alpha\) 参数(CVaR 水平)不应当由工程师拍脑袋定——应通过历史数据的尾部分析或安全认证的风险等级要求来确定。一个常用的启发规则是:\(\alpha = 1 - \delta_{\text{target}}\),其中 \(\delta_{\text{target}}\) 是系统的目标违反概率;但这只是起点,实际部署后需要用蒙特卡洛验证实际尾部覆盖率是否匹配设计意图。

应避免的三个"追前沿"反模式(这些反模式在新手中极为常见,因为"追最新"的冲动往往比"用最稳"的纪律更强——识别并抵制这些冲动,是从"能看懂前沿"到"能正确使用前沿"的关键跨越):

反模式 具体表现 为什么不该这样做
"把所有收敛线一次性全上" 同时上 GP 残差学习 + 可微 MPC + CVaR 约束 三条线各引入新的调参维度和失败模式,同时上会让调试空间爆炸——不知道哪条线出了问题
"为了可微而放弃经典保证" 把 acados 的约束全换成软惩罚以便求梯度 可微性是手段不是目的——如果你的约束有安全含义,把它们"软化"以求梯度就牺牲了安全保证
"用 GP 替代所有先验知识" 动力学完全用 GP 从零学,不用已知的物理模型 GP 在高维输入空间采样效率差且外推不可靠——正确做法是用物理模型做 nominal + GP 学残差
"把三条收敛线混为一谈" 以为"数据驱动刻画""可微化""风险感知"是同一件事 三条线解决的是三个独立的问题——不确定性从哪来(线一)、怎么和 RL 协作(线二)、尾部怎么管(线三),混淆会导致架构设计混乱

18.5 从收敛线到技术路线图:一个 C++ 工程师的 12 个月投资建议

把 §18.3 的三条收敛线和 §18.4 的工程着力点,整合成一条"时间线上该做什么"的具体路线图——面向一个已掌握 acados MPC 的 C++ 工程师:

第 1–3 个月(夯实基线):在 acados 上实现一个标准 Tube MPC(§4 鲁棒)和一个高斯机会约束 MPC(§5),用同一个测试台(如四旋翼阵风穿框或车辆变道)对比二者的保守度和安全性差异。目标:亲手体验"鲁棒太保守 → CC 放松了多少 → 放松的代价是什么(高斯假设)"——这是 §8.2 同构链的最直接的数值验证。所有代码用 Eigen + OSQP,§12.3 已给出栈建议。

第 4–6 个月(上收敛线一):在已有的 Tube MPC 基线上集成 GP 残差学习(GP-MPC)。用 GPy 训练,用 libgp 或自写的轻量 GP 做在线推理,把 GP 的 \(2\sigma\) 管道替代手动标定的 \(\mathcal{W}\)目标:观察管道如何随数据累积而自适应收缩——从"初始保守"到"数据充足后精确"的过渡过程,就是收敛线一的工程兑现。关键指标:管道面积收缩率 vs 约束违反率的 Pareto 前沿。

第 7–9 个月(上收敛线二):使用 acados + leap-c 把 MPC 变成可微层。设计一个简单的"RL 自动调 MPC 权重"实验——用 PPO 训练一个小网络输出代价权重 \(\theta\),通过可微 MPC 层反传梯度。目标:体验"可微优化层"的行为——梯度在哪些状态稳定、在哪些状态爆炸(通常在约束活跃切换处),以及 warm-start 对梯度质量的影响。这是收敛线二最小可行的端到端体验。

第 10–12 个月(上收敛线三 + 整合):在 CC-MPC 的基础上加 CVaR 约束——给"碰撞后果"引入 CVaR 尾部管理。用 Rockafellar-Uryasev 变分把 CVaR 写成 LP,作为 MPC 的附加约束。然后把三条收敛线在同一个测试台上对比整合:baseline Tube → +GP 残差(线一)→ +可微权重调参(线二)→ +CVaR 尾部(线三)。目标:得到一条"四个节点"的性能-安全 Pareto 前沿,每加一条收敛线的边际收益和边际成本量化清楚。

理论-工程桥接(这条 12 个月路线图的设计逻辑):为什么是"先鲁棒→再 CC→再 GP→再可微→再 CVaR"而不是随意排列?因为每一步都建立在前一步的代码和概念上——鲁棒 Tube 是 GP-MPC 的"壳"(GP 替换的是 \(\mathcal{W}\) 的标定方式,Tube 的约束收紧框架不变),CC 是 CVaR 的"前身"(CVaR 的收紧逻辑和 CC 的收紧逻辑同构,只是换了聚合算子),可微 MPC 需要前面的 MPC 已经跑通才有东西可微。这条路线图本质上是§8.2 的同构链在时间轴上的展开——先走同构链的"鲁棒"端(月 1–3),经"CC"中段(月 4–6),到"CVaR"端(月 10–12),中间穿插收敛线的工程化(月 4–9)。设计路线图时,让知识结构引导实践顺序,而不是追着"什么热门学什么"——这是系统学习和碎片学习的根本区别。

本质洞察(跟上收敛的正确姿势是"一次加一条线"):三条收敛线代表三种独立的技术升级路径。工程上最稳健的做法是一次只叠加一条线,在验证其收益和失败模式后再叠第二条。例如:先把经典 Tube MPC 跑通(baseline),然后加 GP 残差(收敛线一),验证约束收紧效果后再考虑可微化代价调参(收敛线二),最后如果尾部风险确实是瓶颈再加 CVaR(收敛线三)。每一步叠加都应该有明确的"这一步解决了 baseline 的什么问题"的回答——如果回答不出来,说明这一步叠加是没有根据的复杂化,应该回退。这与 §9 选型矩阵的精神完全一致:选型不是"越高级越好",而是"恰好够用且代价最小"。


§19 全栈选型案例:把五谱选型走到底的四个机器人形态 ⭐⭐⭐

本节定位:§8.3 给了"谱 × 形态"的迁移度对照表(定性打星),§9.3 给了六个单任务的选型答案。本节再深一层——挑四个机器人形态,每个走一遍完整的全栈选型推演:从"这个形态主要面对哪些桶"出发,经"每个子问题选哪条谱、为什么、怎么叠",到"整机架构长什么样、会怎么失败"。这是把 §1(类型学)→ §9(选型)→ §18(失败模式)三件工具在一个真实形态上连续地用一遍,是综述"对比综合"的最高形态——不是比较孤立的方法,而是综合出一整套架构决策。

19.1 案例一:城市自动驾驶(五桶全占的"富矿")

为什么先讲它:§8.3 已点出自动驾驶在每条谱上都是 ★★★★+,因为它同时面对全部五类不确定性。它是检验"五谱能否协同"的终极案例。

第一步——分桶(§1)。 把城市驾驶的不确定性逐项归桶: - 他车/行人意图(让/抢/横穿)→ ③多模态 - 传感器噪声、他车轨迹预测误差 → ②概率 - 自车动力学扰动(路面、风、负载)→ ①集合 - 遮挡路口、视野盲区 → ④认知 - 罕见高速对撞 → ⑤尾部

五桶全占——这正是它"富矿"的来源。

第二步——逐桶选态度并叠层(§9 + §2)。 因为五桶并存,单谱必然覆盖不全(§9.3 末行"复合不确定需分层"),架构必然是分层叠加:

处理的桶 选的谱 这一层的动作 抓手
行为决策层 ③多模态 + ④认知 分支(EPSILON)/ 必要时 POMDP 为每个意图各备一手,遮挡处主动减速观测 EPSILON (C++) / DESPOT
运动规划层 ②概率 机会约束(SSC-QP 收紧) 给碰撞概率一个 \(\delta\) 预算,凸化进 QP 自写 Eigen+OSQP
执行/跟踪层 ①集合 鲁棒(收紧 MPC) 把动力学扰动包进 tube,收紧约束 acados
风险修饰 ⑤尾部 CVaR(加权在行为层) 对"小概率致命场景"加权更重 MARC 式 CVaR 分支

这正是正文反复出现的"EPSILON(分支) + SSC-QP(收紧) + CVaR 加权 = 自驾全栈"(§8.1、§9.2 决策树末尾)的完整展开。

第三步——失败模式审计(§18.1)。 这套栈会怎么坏? - 行为层(分支)的破绽是意图长尾(§11.5 的 T3)——枚举的让/抢/直行盖不住违章、突然横穿。兜底:open-set 意图检测 + 急停策略。 - 运动层(机会约束)的破绽是高斯假设破裂(§16 F4)——行人轨迹分布重尾。兜底:particle 或 DR-CC。 - 整栈的破绽是分布漂移(§16 F6 / T1)——新城市、新天气。兜底:conformal 校准 + 在线自适应。

本质洞察:自动驾驶的全栈选型把整篇综述"用了个遍"——五桶分类(§1)、态度光谱(§2)、五条脉络的抓手(§3–§7)、分层叠加(§9.2)、失败模式过滤(§18.1)、开放张力(§11)全部出场。这解释了为什么它是 Part-U 的教学富矿:它不是某一条谱的案例,而是"五谱如何协同成一个系统"的案例。掌握了它的分层逻辑,其余形态都是它的"降维子集"。

19.2 案例二:阵风下的四旋翼无人机(鲁棒主导的"清爽"案例)

为什么讲它:它是自动驾驶的"反面"——不确定性高度集中在一个桶,是检验"不要过度设计"的案例(§9.3 "杀鸡用牛刀")。

第一步——分桶。 阵风穿框任务的不确定性几乎全在 ①集合型(阵风是有界外力)+ 少量 ②概率(IMU 噪声)。没有多模态(没有"别的智能体的意图")、没有认知不确定(状态由 VIO/动捕完全可观)、尾部风险低(撞框代价有限)。

第二步——选态度。 单桶主导 → 单谱够用,不需要分层叠加: - 主选 鲁棒 Tube MPC(acados):状态可观、扰动有界,信息需求最低(只需阵风边界),且差分平坦让四旋翼 tube 友好(§8.3 无人机行 ★★★★)。 - 不选 POMDP:状态可观,POMDP 退化成 MDP,信念树纯浪费(§15 陷阱 4 / §9.3)。 - 不选分支:没有离散意图可分(§19.1 对照——这里恰恰缺了自动驾驶的 ③桶)。

第三步——失败模式审计。 鲁棒的破绽是过度保守(§18.1)——若把阵风集 \(\mathcal{W}\) 标得过大,穿框窗口会缩到无法通过。纠正:用 GP-MPC(§4.5)在线学阵风分布,把保守的 rigid tube 收窄到"刚好够"——这恰好落在 §18.3 收敛线一(数据驱动收紧)。

不是 X 而是 Y(与案例一对照):四旋翼穿框不是"简化版自动驾驶",而是"只占一个桶的清爽问题"。新手最容易在这里犯的错,是把自动驾驶那套五层栈搬过来——结果给一个状态完全可观、只有阵风的问题套上 POMDP 信念树和意图分支,付出巨大算力却毫无收益。形态简单时,选型的智慧是"敢于不分层"——这与案例一"必须分层"形成的对照,正是 §9 选型矩阵最该传递的判断力:分层与否,取决于占了几个桶,而非取决于"看起来高不高级"。

19.3 案例三:遮挡环境的移动操作(loco-manipulation,认知 + 多模态复合)

为什么讲它:它介于案例一(五桶全占)和案例二(单桶)之间,且突出 ④认知桶——是检验"主动观测"价值的案例。

第一步——分桶。 移动机器人去抓取被部分遮挡的物体: - 物体位姿被遮挡、不确定 → ④认知(主导) - 抓取成功/失败 → ③多模态(抓得稳/滑脱两种未来) - 底盘移动 + 机械臂动力学扰动 → ①集合

第二步——选态度并叠层。 - 感知-决策核心选 POMDP(④认知主导)——只有 POMDP 会"先移动到能看清的视角再抓"(主动消除 epistemic,§1.3 / §6.1),这是本案例区别于案例二的关键:这里有"一眼"可看,且看了有用。抓手 OPPT(含 ROS+Gazebo)或 DESPOT。 - 抓取成败用 分支(③多模态)——为"抓稳"和"滑脱"各备一手(滑脱则重抓),共享干是"接近物体"的初始段。 - 执行层用 鲁棒(①集合)——loco-manip 的底盘+臂扰动包进 tube(§8.3 loco-manip 行鲁棒 ★★★★)。

第三步——失败模式审计。 POMDP 的破绽是维度/粒子贫化(§18.1 / §6.6)——物体位姿是连续高维 belief,particle filter 易退化。纠正:用高斯 belief 的特化(LQG-MP/RRBT,§6.3c)或 RSSM 摊销(§18.3 收敛线一)。

本质洞察(三案例的递进):案例二(单桶,敢不分层)→ 案例三(两三桶,部分分层,且认知桶让 POMDP 真正有用)→ 案例一(五桶,全栈分层)——这三个案例构成一条"复合度递增"的谱。把它们并排,你会看到选型的核心判断力不是"会用哪条谱",而是"判断这个形态占了几个桶、其中认知桶(④)是否真的需要主动观测"。认知桶是分水岭:占了它且"看一眼有用",POMDP 才值得;否则(案例二)POMDP 是负担。这个判断,比记住任何一条谱的细节都重要。

19.4 案例四:工业机械臂的安全力控装配(机会约束 + 可认证)

为什么讲它:它突出 ②概率桶 + 可认证需求,是检验"机会约束 vs 鲁棒"精确边界的案例(§5.1 "可调的中间地带")。

第一步——分桶。 力控装配(插轴入孔): - 力矩/位置传感噪声、装配容差 → ②概率(主导,统计已知) - 工件位姿小扰动 → ①集合 - 几乎无多模态、无认知不确定(工位结构化、可观)

第二步——选态度。 ②概率主导且容差是概率型 → 主选 机会约束(§9.3 机械臂行):给"插入失败概率"一个精确预算 \(\delta\),凸化进 QP。 - 为什么不选鲁棒?鲁棒对"从不发生的极端力矩"也死守,会把装配速度压到不必要的慢(§18.1 过度保守);容差是概率型,机会约束给的"精确风险预算"正好匹配可认证需求(监管要"失败率 \(\le\delta\)",§5.4)。 - 抓手:C++ 侧无成熟库(§12.1 机会约束 ★☆)→ 自己写 Eigen+OSQP 的 SOCP(§12.3)。这恰是 §12.3 说的"百行级变换、教学红利"的真实落点。

第三步——失败模式审计。 机会约束的破绽是高斯假设破裂(§18.1 / §16 F4)——力矩噪声若重尾,高斯闭式 \(\Phi^{-1}\)\(\delta\) 保证失真。纠正:particle 近似或 DR-CC(只需矩信息,§5.3c)。

19.5 反例校准:一个"直觉会选错"的形态

为什么补一个反例:前四例都是"按框架选对了"。但框架的价值,要在"直觉会选错、框架把你拉回正轨"时才显出来。考虑室内服务机器人在静态已知地图里导航避开稀疏行人——直觉上"有行人 = 要预测意图 = 上分支/POMDP"。

框架怎么把直觉拉回来。 走 §19 的指令:数桶——地图静态已知(无④认知,状态可观)、行人稀疏且低速(意图③弱,且行人慢到 ego 可被动让行而无需预测分叉)、底盘扰动小(①弱)。真正占的桶其实只有弱②(行人位置噪声)。于是: - 不该上 POMDP(地图已知、状态可观,§15 陷阱 4); - 不该上重型分支(行人慢、稀疏,被动避让足矣,预测意图是过度设计); - 主选退化成带安全裕度的确定性 MPC + 轻量机会约束(给行人位置一个 \(\delta\) 膨胀)即可。

反例的教训:直觉被"出现了行人"这个表象带跑,框架则追问"行人的不确定性强到需要主动预测意图吗"——稀疏低速行人的答案是"不",于是退回轻量方案。这正是 §9.3"最先进的方法往往是错的选择"与 §19.2"敢于不分层"的合体:表象(有行人)会诱导你升级方法,框架(数桶+定强度)让你敢于降级

案例 主桶 主选谱 是否分层 关键判断 主要失败模式
①城市自驾 ③④①②⑤全占 分支+CC+鲁棒+CVaR 全栈分层 五桶协同 意图长尾(T3)
②阵风穿框 ①集合 鲁棒 Tube 不分层 敢于不分层 过度保守
③遮挡抓取 ④认知+③ POMDP+分支+鲁棒 部分分层 认知桶是否需主动观测 粒子贫化
④力控装配 ②概率 机会约束 基本单谱 CC vs 鲁棒边界 高斯破裂
⑤室内导航(反例) 弱②概率 确定MPC+轻CC 不分层 敢于降级 (直觉误升级)

本质洞察(五案例合观):把五个案例的"主桶 → 主选谱 → 是否分层"并排(上表),整篇综述的选型逻辑被压成一句操作指令——数你占了几个桶,再看认知桶(④)和尾部桶(⑤)在不在场:桶少则单谱(案例②④),认知桶在场则 POMDP 入列(案例③),桶多则全栈分层(案例①),尾部桶在场则叠 CVaR 修饰符。这条指令不依赖记住任何论文,只依赖 §1 的五桶分类和 §2 的态度光谱——这再次印证 §13.3 的三句话和 §18.3 的判断:手段会变,但"数桶 + 定态度 + 按需分层"的框架是稳的。前四个案例演示"按框架选对",第五个反例演示"框架把被表象带偏的直觉拉回正轨"——五次实弹演习合起来证明:框架既能指导升级(案例①的全栈分层),也能授权降级(案例⑤的敢于不分层),而升降的依据始终是"桶的数量与强度",绝非方法的"先进度"。


§20 结语:从"认识每棵树"到"看清整片森林" ⭐⭐

本节定位:全篇收束。不再引入新内容,而是回到开篇承诺——本篇要让你"看清整片森林"。这里把"读完这篇综述你应当具备什么能力"落成一张可自查的清单,并交代它与 Part-U 深度教程、与更广规控版图的关系。

20.1 这篇综述到底想让你获得什么

回看开篇"本篇目标"列的六条能力,现在可以更诚实地说——它们其实只是一种元能力的六个切面:把一个看似庞杂的领域折叠进几个正交旋钮,再从旋钮反向展开出任意细节的能力

  • 你不再把"不确定性"当一个笼统的词,而会条件反射地分桶(§1);
  • 你不再问"哪条谱最先进",而会问"这个问题占几个桶、要什么态度"(§2、§9);
  • 你不再把五条谱当五个孤立工具箱,而看到它们是两条主轴 + 一个修饰符(§8、§13);
  • 你不再被"经典 vs RL"的伪二分困住,而看到它们是同一问题的两种语言(§10);
  • 你不再只看方法的优点,而会用失败模式当过滤器(§18);
  • 你不再被"有没有开源库"误导理论判断,而会把工程选型与理论选型分两步走(§12)。

这六条合起来,就是从"认识每棵树"(U1–U5 教你深入每条谱)到"看清整片森林"(本篇教你横切缝合)的跨越。

20.2 读者自查清单:你"看清森林"了吗

合上这篇综述前,用下面这张清单自查。能脱稿答出 \(\ge 8\) 条,说明你真的看清了森林;答不出的条目,回对应节重读"本质洞察":

# 自查问题 回指节
1 不确定性的五个正交桶是哪五个?各用什么数学对象? §1.2
2 aleatoric 和 epistemic 的本质区别?哪个有"主动消除"的出路? §1.3
3 态度光谱从最保守到最激进的五档顺序? §2.1
4 "信息需求—保守度—计算量"三角的守恒律是什么? §2.3
5 为什么说"鲁棒是 \(\delta=0\) 的机会约束、CVaR 连接鲁棒与风险中性"? §8.2、§7.4
6 为什么说"分支是算得起的 POMDP、POMDP 是最优的分支"? §8.2、§3.4
7 CVaR 为什么是"形容词不是名词"? §8.2
8 五谱各自的 RL 同义表达是什么? §10.1
9 六大开放张力(T1–T6)分别是什么?为什么都在"假设与现实的接缝处"? §11
10 选型三步流程是什么?决策树的第一个分叉问什么? §9.1、§9.2
11 为什么"最先进的方法往往是错的选择"? §9.3、§12.4
12 每条谱"被推到极限时怎么坏"?为什么优点和缺点是同一根轴? §18.1

本质洞察(元能力的迁移):这张自查清单的 12 条,没有一条是"背某个公式"或"记某篇论文"——它们全是关系性的(A 和 B 什么关系、为什么、什么时候用哪个)。这恰恰是综述要训练的能力与教程的根本区别:教程让你掌握"是什么、怎么推",综述让你掌握"彼此什么关系、何时用哪个"。前者是知识,后者是判断力。而判断力是可迁移的——你在这篇综述里练就的"分桶 → 定态度 → 看关系 → 审失败模式"的思维,换到任何一个陌生的技术领域(多机协同、长时规划、人机交互)都能套用:先问它的正交旋钮是什么,再问各方法是什么关系,最后问它们各自会怎么坏。

20.3 进一步阅读:从这片森林走向更大的版图

本篇是 Part-U 不确定性规划的"横切顶帽"。读完它,三个方向值得继续:

向内(深化每条谱):回 U1–U5 深度教程(§17.4 回指地图),把本篇横切时一笔带过的推导补全——尤其 §17.3 索引里加粗的奠基论文(Mayne-Seron-Raković 2005、Rockafellar-Uryasev 2000、DESPOT 2013),它们是各谱的技术心脏。

向外(接入更大版图): - 向 RL 版图:本篇 §10 只给了五谱↔RL 的映射骨架,完整缝合见 80_综述 §RL 贯穿——那里展开可微 MPC、neural-guided POMDP、diffusion planner 的工程细节。 - 向规划-控制全局:不确定性规划是"规控"的一个切面。它与确定性轨迹优化、与状态估计(SLAM/滤波,提供 belief 的输入)、与控制理论(提供 tube 的反馈律)都接壤——本篇默认你已有这些基础(前置自测第 3、6 题)。

向前(追前沿):§11 的六大张力(T1–T6)和 §18.3 的三条收敛线,是 2024–2026 的活跃前沿坐标。盯住"分布漂移下的可靠性(T1)"和"保证↔先验的缝合(T6)"——这两条是整个方向未来十年最可能出突破的地方。

向横向(接入姊妹综述):本篇在五谱的 RL 映射(§10)上只给了骨架——鲁棒↔Robust RL、CC↔Safe RL/CMDP、CVaR↔分布 RL(如 IQN 的 CVaR 采样)、POMDP↔RNN-RL(如 R2D2、Dreamer 的隐状态 \(\approx\) belief)、分支↔MCTS(如 MuZero 的学习型搜索)——完整的缝合展开见 80_综述/50_RL与经典规控贯穿关系与结论.md(S5)的 §2 六组对偶。此外,本篇 §3 分支/场景规划在"多模态意图"上的处理,与 40_交互意图预测.md(S4)的学习式预测形成对偶——经典方法用分支树枚举意图,学习方法用 CVAE/扩散生成意图分布,二者在 S4 §4.4 的"联合预测-规划"中会师。

把这两篇横向打通后,你会看到不确定性规划不是一座孤岛,而是整个移动规控网络中连接最密的枢纽——因为"不确定性"是所有方向(博弈、预测、多机、TAMP)都绕不开的底层维度。博弈规划需要对手意图的不确定性模型(桶③),交互预测需要量化预测误差的不确定性(桶②),多机协同需要通信延迟和他机行为的不确定性(桶①+③),TAMP 需要操作成败的不确定性(桶③+④)。本篇的五桶分类(§1)和态度光谱(§2)是所有这些方向共享的"底层操作系统"——这就是为什么把本篇读透后,再去读其他方向的综述会感觉"处处呼应"。

20.4 最后一句

如果这篇 1500 行的综述最终只在你脑中留下一句话,希望是这句——

面对任何不确定性问题,先别急着选方法;先问两件事:它的不确定性长什么样(哪个桶),我对违反持什么态度(哪一档)。把这两件事想清楚,方法会自己浮现出来;想不清楚,再先进的方法也会用错。

这就是从"认识每棵树"到"看清整片森林"的全部秘密——森林的地图,只有两根坐标轴。

多视角理解(这句话在三个层面成立):(1) 在方法选型层面:先问"不确定性什么类型"(桶),再问"对违反什么态度"(谱),方法就浮现了——这是 §9 选型决策树的极简复述。(2) 在知识组织层面:这篇综述的全部 20 节,都是围绕"类型"和"态度"两根轴展开的——§1–§2 建轴,§3–§7 五条谱沿轴铺开,§8 在轴上对比,§9 沿轴选型,§11 在轴端找开放问题。理解了两根轴,整篇综述的结构就是透明的。(3) 在迁移能力层面:面对任何一个新的技术领域(不仅仅是不确定性规划),你都可以用同样的思维——先找"正交旋钮"(等价于"两根坐标轴"),然后所有方法都是坐标平面上的点。这个"找旋钮"的元技能,是整篇综述想传递的最深层的教学成果。


故障诊断手册(章末速查)

综合 §15 认知陷阱与 §16 选型误诊,给一张"读这篇综述/做选型时卡住"的快速排查表(R15 章末故障诊断),症状 → 可能原因 → 排查步骤 → 相关节。

症状 可能原因 排查步骤 相关节
读到"为什么鲁棒是 \(\delta=0\) 的机会约束"完全跟不上 没掌握约束收紧的同构关系 回 §5.4 看高斯收紧式,再看 \(\delta\to0\) 的极限;必要时回 U2 约束收紧 §5.4、§4.3、§8.2
分不清机会约束和 CVaR 该用哪个 混淆"尾部厚度"与"尾部深度" 问"我在乎违反的概率还是违反的后果深度";后果差异大→CVaR §7.4、§15陷阱3
不理解为什么 POMDP 横跨态度光谱整行 没区分"可观性"与"演化不确定" 回 §2.2 网格 + §6.1:POMDP 处理的是更底层的可观性问题 §2.2、§6.1、§15陷阱4
选型时纠结"该不该分层" 没数清占了几个桶 用 §19 的指令:数桶→看④⑤在不在场→定分层 §9.2、§19.4
觉得"没开源库的谱不值得用" 把工程成熟度误当理论成熟度 回 §12.2 三成因;理论选型与工程选型分两步(§12.4) §12.2、§15陷阱6
读 §11 开放问题觉得彼此无关、记不住 没抓住"假设与现实接缝"这条主线 回 §11.1:六张力都是某条假设被现实推翻;按"松动哪条假设"归类 §11.1、§11.8

使用心法:这张表与 §16 选型误诊表互补——§16 排查的是"部署时系统行为异常",本表排查的是"读综述/做选型时认知卡壳"。两表共享同一个第一步:回到 §1 类型学和 §2 态度光谱,重新确认问题的桶与态度。这是整篇综述所有排查、所有选型、所有比较的共同原点。

故障排查的"三步归因法"

当系统行为异常时(如 MPC 解不可行、约束频繁违反、性能突然退化),不要直接去改参数——先用以下三步把故障归因到五谱中的哪一条,再查该谱的失败模式表(§18.1):

第一步:确认是"建模问题"还是"求解问题"。 - 建模问题:不确定性的类型判断错了(§16 F1"拿错桶"),或分布/范围假设与现实不符(§16 F4/F6"假设破裂")。表征:即使在仿真里也复现。 - 求解问题:模型对了但求解器出了状况(数值不稳定、初值不可行、时间超限)。表征:仿真里好好的,硬件上才出问题

第二步:如果是建模问题,用"扰动注入测试"定位哪个桶的假设出了错。 - 逐一关闭每个桶的不确定性来源(把阵风设为零、把对方意图固定为已知、把传感器噪声设为零),观察哪个桶关闭后问题消失——消失的那个桶对应的假设就是出问题的假设。 - 这种"控制变量"的排查方法与 §1 的五桶分类直接对应——你需要把系统的不确定性逐桶拆开才能定位故障源。

第三步:如果是求解问题,检查"旋钮"设置。 - 鲁棒谱的旋钮是 \(\mathcal{W}\)(扰动集大小)——\(\mathcal{W}\) 太大导致不可行、太小导致安全保证失效。 - 机会约束的旋钮是 \(\delta\)(违反概率预算)——\(\delta\) 太小过保守、太大不安全。 - 分支的旋钮是 \(K\)(分支数)——\(K\) 太小漏掉关键场景、太大算不完。 - POMDP 的旋钮是搜索深度/粒子数——太浅决策次优、太深算不完。 - CVaR 的旋钮是 \(\alpha\)(尾部水平)——\(\alpha\) 太大过保守(退化为鲁棒)、太小无效(退化为期望)。

每条谱的旋钮都只有一个(或两个),把旋钮设置和 §17.2 的符号表对照,就能快速定位"是哪个参数不合适"。

本质洞察(排查的元方法是"拆桶 + 调旋钮"):上面三步本质上只做了两件事:第一件是"把问题按五桶拆开、定位出错的桶"(第一步+第二步),第二件是"在出错的谱上调旋钮"(第三步)。这恰恰是 §9 选型三步流程的"反向版"——选型是"分桶→定态度→查三角"(正向:从问题到方法),排查是"查旋钮→定哪个桶出错→检查假设"(反向:从症状到原因)。选型与排查是同一个思维框架的正反两面——掌握了选型框架,排查能力就自动获得了。


2024–2026 前沿深化:五条谱的最新合流与工程突破 ⭐⭐⭐⭐

本节定位:§3–§7 的脉络截至约 2023 年。本节系统补录 2024–2026 年的关键进展,聚焦"谱与谱之间的合流"和"理论到工程的落地"——这两条线是当下这个方向最活跃的前沿。

分布鲁棒优化(DRO)的崛起:连接鲁棒、机会约束与 CVaR 的统一框架

2024–2025 年不确定性规划领域最显著的理论趋势是分布鲁棒优化(Distributionally Robust Optimization, DRO)从优化理论社区大规模涌入机器人规划。DRO 的核心思想是——不假设知道确切的概率分布 \(P\),而是假设真实分布在一个"模糊集"(ambiguity set)\(\mathcal{P}\) 内,对 \(\mathcal{P}\) 里最坏的分布做优化

\[ \min_u \; \sup_{P \in \mathcal{P}} \; \mathbb{E}_P\big[J(x,u,w)\big] \]

这个框架的威力在于,它统一了 §4(鲁棒)、§5(机会约束)、§7(CVaR)三条看似不同的谱——通过选择不同的模糊集 \(\mathcal{P}\)

模糊集 \(\mathcal{P}\) 的形态 退化成什么 说明
\(\mathcal{P}=\{P:\mathrm{supp}(P)\subseteq\mathcal{W}\}\)(支撑集有界) 鲁棒(§4) 只约束扰动范围,不假设分布
\(\mathcal{P}=\{P:\mathbb{E}[w]=\mu,\mathrm{Cov}(w)=\Sigma\}\)(矩约束) 矩鲁棒机会约束(§5 子路线 c) 只需均值+协方差,对分布形状鲁棒
\(\mathcal{P}=\{P:W_p(P,\hat P)\le\epsilon\}\)(Wasserstein 球) Wasserstein-DRO(前沿) 以经验分布为中心、\(\epsilon\) 半径的 Wasserstein 球
\(\mathcal{P}=\{\hat P\}\)(单点,即知道确切分布) 随机优化 / 机会约束(§5) DRO 退化为标准随机规划

本质洞察(DRO 让三条谱的"连续旋钮"从一维升级为二维):§7.4 指出 CVaR 的 \(\alpha\) 是一条连接"风险中性"与"鲁棒"的一维旋钮。DRO 加了第二个旋钮——模糊集的"大小" \(\epsilon\)(Wasserstein 半径):\(\epsilon=0\) 退化为标准随机优化,\(\epsilon\to\infty\) 退化为最坏情况鲁棒。两个旋钮 \((\alpha, \epsilon)\) 张成了一个二维的"保守度设计空间"——\(\alpha\) 控制"对尾部有多敏感",\(\epsilon\) 控制"对分布有多不信任"。这是 §2 态度光谱从"一条线"升级为"一张面"的理论基础,也是 2024–2026 年"DR-CVaR"(分布鲁棒 CVaR,Wasserstein 球上的 CVaR 优化)成为热点的根本原因——它是这张二维面上"最丰富"的那个角。

保形预测(Conformal Prediction)进入安全规划

保形预测(Conformal Prediction, CP)是统计学中一个提供分布自由(distribution-free)概率保证的框架,2024–2025 年它被引入机器人不确定性规划,填补了一个长期空白——如何给黑箱神经网络预测器套上有理论保证的不确定性量化

核心思想极简:给定一个预测器 \(\hat f\) 和一组校准数据 \(\{(x_i, y_i)\}\),保形预测输出一个预测区间/集合 \(\mathcal{C}(x)\),使得 \(P(y\in\mathcal{C}(x))\ge 1-\alpha\)——这个保证对 \(\hat f\) 的内部结构没有任何假设(黑箱),只要求校准数据与测试数据可交换(exchangeable)

在规划中的用法是把保形预测区间当作动态安全约束——他车预测器输出一条轨迹 \(\hat\tau\),保形预测给这条轨迹加一个"不确定性气泡" \(\mathcal{C}_t\) 在每个时刻 \(t\),规划器只需保证 ego 轨迹不进入 \(\bigcup_t \mathcal{C}_t\) 即可。这本质上是把机会约束(§5)的"概率违反预算 \(\delta\)"与神经网络的"黑箱预测"缝在一起——保形预测提供 \(\delta\) 的保证,而不需要知道预测器的内部分布。

对比性思维(保形预测 vs 高斯假设的机会约束):传统机会约束(§5)假设扰动服从高斯分布,因此有干净的 \(\Phi^{-1}(1-\delta)\sigma\) 闭式收紧。但真实的神经网络预测误差几乎从不是高斯(重尾、多模态、异方差)。保形预测绕开了分布假设,用"校准残差的经验分位数"替代"高斯分位数"——代价是保证只在"校准分布=测试分布"时成立(若分布漂移,保证失效)。所以保形预测不是高斯 CC 的"升级",而是"另一条路":一条放弃了分布假设、换来了对黑箱预测器的兼容性的路。二者像在于都给概率保证;不像在于高斯 CC 需要显式的分布参数(受限于参数估计准确度),保形预测需要代表性的校准数据(受限于分布漂移)。

安全滤波器 + 学习策略:RL 与经典安全层的工程合流

2024–2026 年在四足、无人机、自动驾驶等多形态上,"RL 策略 + 经典安全滤波器"的分层架构从学术概念变成了工程主流。其基本结构是:

RL 策略 π_RL(o_t)  ──→  动作 a_t  ──→  安全滤波器 f_safe(a_t, x_t)  ──→  安全动作 a_safe_t
                                        若 a_t 违反安全约束,
                                        投影到最近的安全动作

安全滤波器的实现有几种成熟方案:

方案 数学工具 来自 Part-U 的哪条谱 工程成熟度
CBF-QP 控制屏障函数 + 二次规划 鲁棒(§4)延伸 高(机械臂/无人机已有开源)
预测安全滤波器 短时域 MPC + 紧约束 鲁棒 Tube(§4) 高(acados 直接支持)
可达集滤波器 HJI 离线可达集查表 鲁棒(§4)/ HJI 中(低维可用,高维爆炸)
保形安全层 保形预测 + 概率约束 机会约束(§5)延伸 低(前沿,2024–2025)

本质洞察(安全滤波器是"鲁棒谱"在 RL 时代的新栖息地):鲁棒 Tube MPC(§4)在"纯经典"年代是主角——它独挑安全保证。在 RL 时代,它退居"安全滤波器"这个新角色——不再负责全部决策,只负责"当 RL 要出格时拉回来"。这个角色转变极其重要:它意味着鲁棒谱不会因 RL 的崛起而消亡,反而在 RL 系统里获得了一个不可替代的生态位——"最后一道防线"。四足机器人的 sim-to-real 部署(ANYmal、Unitree)几乎都采用这个架构:RL 学出的策略负责敏捷性和适应性(高层性能),CBF-QP 或 convex MPC 负责不摔倒、不撞墙(底层安全)。理解了"RL 管性能,经典管安全"这个分工,你就理解了 Part-U 五条谱在 RL 时代的生存策略——不是被替代,而是被嵌入更大系统的安全层。

数据驱动的不确定性集学习

传统鲁棒 MPC(§4)的一个核心假设是"扰动集 \(\mathcal{W}\) 已知"——工程师手动给定阵风范围、摩擦系数区间等。但在实际部署中,\(\mathcal{W}\) 本身也不确定——你不知道真实扰动的边界到底在哪。2024–2026 年的一个活跃方向是从数据中学习 \(\mathcal{W}\)

  • 高斯过程管道收紧(GP-MPC):用 GP 从在线数据学动力学残差的分布,把 GP 的预测区间当作 Tube 的管道半径——管道半径不再是固定的,而是随数据累积而自适应收缩。这在 ETH 的四旋翼 MPC 上已有成熟实现。
  • 神经网络 Lipschitz 管道:用具有已知 Lipschitz 常数的神经网络估计扰动边界,确保估计不会"漏掉"真实扰动(Lipschitz 常数提供确定性上界)。
  • 在线集合更新:用滑动窗口内的扰动观测值的凸包/椭球包络作为 \(\mathcal{W}\),实时更新。

反事实推理:如果学到的 \(\mathcal{W}\) 低估了真实扰动范围(比如训练数据里没有极端阵风,学出的 \(\mathcal{W}\) 太小),那么基于它收紧的约束就是不够保守的——安全保证在学到的 \(\mathcal{W}\) 内成立,但现实可能超出。这是"数据驱动安全"的根本张力:用数据减少保守度(好事),代价是安全保证变成了"条件安全"(条件是数据覆盖了真实扰动)。这个张力在 §11 开放问题里以"分布漂移下安全保证失效"的形式反复出现。

多模态意图的自适应分支数

分支规划(§3)的一个老问题是"分几支"——固定 \(K\) 个分支在简单场景浪费算力、复杂场景不够用。2025 年出现的自适应方法用场景复杂度指标(如他车轨迹预测的方差、意图分布的熵)来动态调整分支数:

\[ K_{\mathrm{adaptive}} = \min\Big(K_{\max},\; \lceil K_{\min} + \beta \cdot H(\text{intent distribution}) \rceil\Big) \]

其中 \(H\) 是他车意图分布的熵(意图越不确定,熵越大,需要更多分支),\(\beta\) 是灵敏度系数。直行高速(意图确定,\(H\approx 0\))只需 \(K_{\min}=1\) 支(不分支),复杂路口(多种意图等概率,\(H\) 大)上到 \(K_{\max}\)

本质洞察(自适应分支数是"信息量驱动的资源分配"):这个自适应公式的深层含义是——把有限的在线计算资源(体现为分支数 \(K\))分配给"信息量大"的场景(熵高=信息缺乏严重=需要更多分支覆盖)。这与通信理论的信道容量分配(把带宽给噪声大的信道)、强化学习的探索-利用权衡(对不确定区域多采样)是同一个"信息驱动资源分配"的数学直觉。看到这一层,你就能把自适应分支数从"工程 heuristic"升级到"信息论原理的工程兑现"——这也是为什么这个方向和 POMDP 的信息增益(§6)能自然合流。

⚠️ 前沿陷阱

🧠 思维陷阱:认为"前沿=该用"
   新手想法:"DRO + 保形预测 + 自适应分支 + 神经安全层,全上!"
   实际上:每增加一个"前沿组件",系统复杂度不是线性增长而是乘法增长——
          调试难度、故障模式数、维护成本都会指数膨胀
   根本原因:每个前沿方法都带着未充分验证的假设(DRO 的模糊集选择、
          保形预测的可交换性、学习安全层的泛化),多个未验证假设叠加时,
          任一假设崩塌都可能导致系统失效,且故障原因极难定位
   正确做法:遵循 §9 的选型纪律——先用最简单的谱(鲁棒/CC)满足需求,
          只在该谱明确不够时才升级到前沿方法。"用最便宜的能解决问题的"
          不仅是选型原则,更是工程存活法则
💡 概念误区:以为"分布鲁棒 = 最鲁棒"
   新手想法:"DRO 对分布不确定也鲁棒,所以它比 Tube MPC 更鲁棒"
   实际上:DRO 的鲁棒性是对"分布形状"的,而 Tube 的鲁棒性是对"扰动值"的
          ——二者管的维度不同。DRO 仍需要扰动的支撑集或矩信息作为模糊集的基础;
          如果连支撑集都完全未知,DRO 也没有办法
   正确做法:把"鲁棒对什么"说清楚——Tube 鲁棒于扰动值(给定范围内的所有值),
          DRO 鲁棒于分布形状(给定矩/距离内的所有分布),二者正交且可叠加

附录 A:五大机器人形态迁移度深析——§8.3 星表背后的理由 ⭐⭐⭐

本附录定位:§8.3 给了"谱 × 形态"的迁移度星表,§19 走了四个形态的全栈案例。但星表只给了"几颗星"的结论,没给"为什么是这么多星"的理由。本附录把星表的每一行(每个形态)展开成"该形态的不确定性特征 → 各谱为何契合/不契合"的推理,覆盖五大形态(自动驾驶、无人机、机械臂、四足、人形/loco-manip)。这是 §8.3 对比综合的"理由层"——读完它,你不仅知道"四足偏弱于优化型谱",更知道"为什么"。

A.0 读附录前的一个元观察

在展开五个形态之前,值得先点出星表的一个元结构——它揭示了"形态"和"谱"之间的深层关系。

观察:星表不是随机分布的,而是有清晰的"对角线"结构。 如果把五个形态按"动力学光滑度"从高到低排(无人机 > 自动驾驶 > 机械臂 > 人形 > 四足),把五条谱按"对光滑动力学的依赖"从高到低排(鲁棒/机会约束 > CVaR > 分支 > POMDP),会发现高星集中在"光滑形态 × 光滑依赖谱"的区域,低星集中在"混合形态 × 光滑依赖谱"的区域

这不是巧合——优化型谱(鲁棒、机会约束、CVaR 的凸化版本)的数学工具(不变集、凸收紧、LP dual)都建立在"动力学光滑可微"的假设上。四足/人形的接触切换破坏了这个假设,所以优化型谱在这些形态上集体打折。

本质洞察(星表的"对角线结构"揭示了一个更深的匹配原理):五条谱和五大形态之间的匹配度,不取决于形态的"高级程度"或谱的"先进程度",而取决于"形态的动力学结构是否契合谱的数学假设"。无人机的差分平坦 + 光滑动力学让鲁棒/CC 如鱼得水,四足的接触切换让同样的工具失灵——这是数学结构的匹配,不是工程努力的问题。理解了这个匹配原理,你就能对任何新形态(软体、外骨骼、水下)预判它和五条谱的匹配度——只需评估它的动力学是"光滑连续"还是"混合切换"。

一个跨形态的类比:鲁棒 Tube MPC 在无人机上表现好、在四足上表现差,就像高速公路(路面光滑连续)上开得好的跑车到越野路段(路面断续颠簸)就失灵了——不是车(谱)的问题,是路况(形态动力学)不匹配。反过来,MPPI/RL+域随机化在四足上好用但在无人机上非必需,就像越野车到高速公路上虽然能开但油耗高——能力过剩、精度不足

A.1 自动驾驶:五谱全面 ★★★★+ 的唯一形态

不确定性特征:唯一五桶全占的形态(§19.1 已详述)——他车意图③、传感噪声②、动力学扰动①、遮挡④、尾部碰撞⑤俱全,且每一桶都强。

各谱契合理由: - 分支/POMDP 双 ★★★★★——因为③④两桶都强且都有金牌案例(EPSILON 行为决策、DESPOT 行人交互),是这两条谱工程化最成熟的落地场。 - 机会约束 ★★★★——横纵向控制的概率容差是 CC 的天然战场。 - 鲁棒 ★★★——执行层 tube 有用,但自驾的主要矛盾在③④而非①,故略低。 - CVaR ★★★★——lane change 的尾部碰撞后果差异巨大,必须管深度。

一句话:自动驾驶是"五谱协同"的标准教学场,因为它在每条谱上都有真实且强的需求——这就是它在星表里几乎全行高星的根本原因。

A.2 无人机/四旋翼:鲁棒 + 机会约束双 ★★★★ 的"清爽"形态

不确定性特征:高度集中在①集合(阵风、外力)+ ②概率(IMU 噪声),且差分平坦让轨迹优化友好(§19.2 已详述)。多模态③、认知④通常弱(状态由 VIO/动捕可观)。

各谱契合理由: - 鲁棒 Tube ★★★★——差分平坦 + 扰动有界 + 状态可观,是 tube 的理想场;acados 上 quadrotor 是事实标准。 - 机会约束 ★★★★——CC 在航空航天本就是原生工具(Blackmore-Ono 的源头就是航天器),阵风的概率刻画天然契合。 - 分支 ★★★——只在"动态障碍/多机避让"时才有离散分叉,否则用不上。 - POMDP ★★★——仅"视觉 active perception/NBV"任务(主动找目标)才值得,否则杀鸡用牛刀。 - CVaR ★★★——gust 极端阵风、battery 耗尽的尾部值得管,但非主要矛盾。

一句话:无人机是"敢于不分层"的代表形态(§19.2 的"不是X而是Y")——单桶主导时,鲁棒/CC 单谱够用,套五层栈是过度设计。

无人机的 acados 实践路径。无人机上的鲁棒/CC 规划有一条清晰的工程落地链:(1) 用 acados 搭建标准的四旋翼 NMPC(微分平坦参数化);(2) 在约束里加入阵风的 Tube 收紧量(或 CC 分位数收紧量);(3) 在仿真中(如 PX4 SITL + Gazebo)对比"有收紧"和"无收紧"的表现;(4) 实飞验证。这条链的教学价值在于:它是最短的"理论→代码→实飞"闭环——四旋翼的微分平坦让 NMPC 模型最干净、收紧量的公式最直观(高斯下就是 \(\Phi^{-1}\sigma\))、acados 的 C 代码可以直接刷进飞控。

对比性思维(无人机 vs 自动驾驶的"不确定性规划教学价值"):自动驾驶的不确定性规划教学价值在于"五桶全占、场景复杂、分层需求强"——它是"展示五条谱如何协同"的最佳教学场。无人机的教学价值在于"单桶清晰、数学干净、闭环最短"——它是"把一条谱从公式到实飞跑通"的最佳教学场。两者互补:先在无人机上把一条谱(鲁棒或 CC)彻底跑通(建立"我能用"的信心),再在自动驾驶场景上理解五谱协同(建立"我知道何时用哪个"的判断力)。 这也是 Part-U 累积项目推荐"先飞后驾"的顺序的认知依据。

A.3 机械臂:POMDP + 机会约束领先的"结构化"形态

不确定性特征:工位结构化、状态多可观,主要不确定在②概率(力矩/位置噪声、装配容差)+ 抓取场景的③多模态(抓稳/滑脱)+ 部分遮挡时的④认知(物体位姿)。

各谱契合理由: - POMDP ★★★★——抓取/装配的"先探一下力再决定"是 epistemic 主动消除的经典场,OPPT(含 ROS+Gazebo)是机械臂 POMDP 的专用抓手。 - 机会约束 ★★★——力控装配的容差是概率型,CC 给精确风险预算(§19.4 已详述),可认证需求契合。 - 鲁棒 ★★★——重复性任务(固定工位)的扰动有界,tube 适用。 - 分支 ★★★——人手意图协作、抓取成败分支时有用。 - CVaR ★★★——force/torque 超限的尾部值得管。

一句话:机械臂是"认知桶是否需主动观测"的分水岭形态(§19.3)——遮挡抓取要 POMDP,固定工位力控则机会约束/鲁棒足矣。

A.4 四足:优化型谱普遍偏弱(★★)的"混合动力学"形态

不确定性特征:核心难点是接触切换的混合动力学(腿离地/触地是离散事件,动力学在切换处不连续)。地形扰动是①集合,但混合性让经典优化型谱难用。

各谱契合理由(注意这里多是 ★★,是星表里的"洼地"): - 鲁棒 Tube ★★★——convex MPC(MIT Cheetah)能用,但接触切换让 RPI 不变集理论难直接套(§4.5 开放问题),多退而用经验收紧。 - 机会约束 ★★——混合动力学让 CC 的凸化困难,工程上少见。 - 分支 ★★——MPPI/DIAL-MPC 采样型方法在四足更主流,scenario-tree 优化用得少。 - POMDP ★★——四足的不确定多是 aleatoric 地形扰动(非 epistemic),且偏 RL+域随机路线,POMDP 信念树用得少。 - CVaR ★★★——fall recovery 的尾部值得管,分布 RL 在四足有应用。

一句话:四足是星表的"洼地行"——接触切换的混合动力学让所有依赖光滑动力学/不变集的优化型谱(鲁棒、机会约束、分支优化)都打折扣,工程主流转向采样型(MPPI/DIAL-MPC)和 RL+域随机。这解释了 §8.3 读表要点里"四足偏弱于优化型谱"的根本成因。

A.5 人形/loco-manip:鲁棒领先、复合度最高的"前沿"形态

不确定性特征:兼具四足的接触切换(①集合 + 混合)+ 操作的抓取多模态③ + 人机协作意图③ + 高维状态。复合度仅次于自动驾驶,但工程成熟度更低(前沿形态)。

各谱契合理由: - 鲁棒 ★★★★(人形)/★★★★(loco-manip)——whole-body NMPC(OCS2/Crocoddyl)是主抓手,tube 化在执行层有用。 - 分支 ★★★(人形)/★★★★(loco-manip)——loco-manip 的"抓取成败分支"需求强(§19.3 案例三)。 - 机会约束 ★★(人形)/★★★(loco-manip)——混合动力学限制,但操作层容差可用 CC。 - POMDP ★★(人形)/★★★(loco-manip)——loco-manip 抓遮挡物时认知桶变强。 - CVaR ★★★——摔倒/抓取失败的尾部值得管。

一句话:人形/loco-manip 是"复合度仅次于自驾、但工程更不成熟"的前沿形态——它继承了四足的混合动力学难点,又叠加了操作的多模态,是 §11 各开放张力(尤其 T5 复合爆炸)最集中的试验场。

A.5bis 形态迁移的一个实操建议:跨形态移植时查什么

当你要把某条谱从"已验证的形态"迁移到"新形态"时,按以下清单检查兼容性:

跨形态移植检查清单

1. 动力学光滑度匹配吗?
   □ 新形态的动力学是连续可微的(如无人机)→ 鲁棒/CC 友好
   □ 新形态有接触切换/混合动力学(如四足)→ 优化型谱需降级或换采样型

2. 状态可观性匹配吗?
   □ 新形态的状态可以从传感器直接读出 → POMDP 不必要
   □ 新形态有遮挡/部分可观(如遮挡抓取)→ 需 POMDP 或 RNN-RL

3. 不确定性的主桶变了吗?
   □ 原形态主桶是①集合(如无人机的阵风),新形态主桶也是①集合 → 直接迁移
   □ 原形态主桶是①集合,新形态主桶变成③多模态(如自动驾驶的意图)→ 需换谱

4. 计算资源匹配吗?
   □ 原形态有高算力(如车载 GPU)→ POMDP 信念树可实时
   □ 新形态算力受限(如嵌入式飞控)→ 只能用轻量谱(Tube MPC)

5. 开源抓手有吗?
   □ 新形态在该谱上有 C++ 实现 → 可直接复用
   □ 新形态在该谱上无 C++ → 评估自实现成本 vs 换谱成本

一个迁移实例走查:把 Tube MPC 从无人机迁移到四足。

检查项 无人机(已验证) 四足(目标) 兼容性
动力学光滑度 差分平坦,光滑 接触切换,混合
状态可观性 VIO/动捕全可观 关节编码器全可观
主桶 ①集合(阵风) ①集合(地形扰动)
计算资源 机载计算中等 板载计算中等
开源抓手 acados quadrotor acados legged(实验性)

结论:5 项检查中 1 项不兼容(动力学光滑度)、1 项部分兼容(抓手)。不兼容项(混合动力学破坏 RPI 不变集理论)是硬伤——需要从"精确 RPI 管道"降级为"经验收紧 + convex MPC 近似"。这解释了 §A.4 四足那一行为什么鲁棒谱只有 ★★★ 而非无人机的 ★★★★。

本质洞察(跨形态移植的"一票否决"项是动力学光滑度):上面的清单有五项,但其中"动力学光滑度"是唯一的硬约束——其他四项不匹配时可以通过工程手段补救(加传感器提可观性、换更强的计算平台等),但动力学光滑度不匹配时数学工具本身失效(RPI 集在切换系统上没有干净的理论)。所以跨形态移植的第一步永远是问"新形态的动力学是光滑的还是混合的"——答案决定了你能用优化型谱(鲁棒/CC/CVaR 的凸化版本)还是必须退回采样型(MPPI/RL+域随机化)。

本质洞察(形态维度的统一):把五大形态的星表理由合观,会发现"几颗星"背后只由两个形态属性决定——(1) 占了几个桶、各桶多强(决定哪些谱有用),(2) 动力学是否光滑可观(决定优化型谱能否用)。自动驾驶五桶全强且动力学光滑 → 全行高星;四足桶不算多但混合动力学不光滑 → 优化型谱集体打折成洼地;无人机单桶强且差分平坦最光滑 → 鲁棒/CC 双高。这两个属性,就是把"谱 × 形态"星表从"背结论"变成"能推导"的钥匙——给你一个没在表里的新形态(比如软体机器人、外骨骼),你也能用这两把尺子推出它的星表。这正是 §8.3 表格背后、本附录要传递的"对比综合"的终点:不是记住星表,而是掌握生成星表的两个维度


附录 B:全篇章节关系图与阅读路径 ⭐⭐

本附录定位:这篇综述有 20 节 + 2 附录,横切五谱、纵贯类型学到前沿。本附录给一张"章节如何互相支撑"的关系图和三条针对不同读者的阅读路径,让你不必线性啃完,而能按需取用(呼应开篇"知识导航"的节奏提示)。

附录 C 补充:五谱的"一句话灵魂"速记表

一句话灵魂 三字诀
鲁棒/Tube "无论扰动怎么闹,我的约束绝对不破" 守底线
机会约束 "允许小概率破,但概率预算严格控制" 留余量
CVaR "不只管破不破,还管破了有多惨" 管尾巴
分支 "为每种未来各备一手,等信息来了再选" 多手牌
POMDP "连现在在哪都不确定,边看边决定" 先探路

本质洞察(五条谱的灵魂都可以用三个字概括):鲁棒="守底线"(对最坏保证),机会约束="留余量"(概率预算),CVaR="管尾巴"(尾部深度),分支="多手牌"(保持选择权),POMDP="先探路"(主动消除不确定)。这五个三字诀是你在白板上画"不确定性规划全景"时最快的记忆锚——五个词 15 个字就是整个 Part-U 的浓缩。记住三字诀,展开成一段话,就是本综述每一节的主题句。

附录 C 补充:五谱的"信息需求阶梯"详解

把 §2.3 三角权衡中的"信息需求"维度单独拎出来,给出精确的阶梯:

需要什么信息 如果这些信息不准怎么办 降级方案
鲁棒 扰动的范围 \(\mathcal{W}\)(紧致集) \(\mathcal{W}\) 太小 → 安全保证失效;太大 → 过保守 用在线学习(GP-MPC)自适应 \(\mathcal{W}\)
机会约束 扰动的分布(至少 \(\mu, \Sigma\) 分布假设错(如非高斯)→ \(\delta\) 保证失效 用分布鲁棒 CC(DRO-CC),只需矩信息
CVaR 扰动的分布尾部形状 尾部估计不准 → CVaR 估计偏 用 Wasserstein-DR-CVaR,对分布也鲁棒
分支 场景枚举 \(\{\omega_k, P_k\}\) 漏掉关键场景 → 没有 backup;概率错 → 权重偏 用学习驱动的场景枚举(Contingencies-from-Obs)
POMDP 完整的 \(T,O,R\) 模型 模型错 → belief 偏 → 决策偏 用 Bayes-Adaptive POMDP(对模型不确定也处理)

读表方法:第三列"如果不准怎么办"是每条谱的阿喀琉斯之踵——它揭示了每条谱的安全保证依赖的关键假设。§11 的六个开放张力,几乎都是"某条谱的关键假设在真实世界里被打破"的具体化。

多视角理解("信息阶梯"与"假设强度阶梯"是同一个阶梯的两面):信息需求越高的谱(POMDP 需完整模型),它的假设也越强(假设你真的有准确的 \(T,O,R\))——给的越多,假设越多,假设被打破时受伤越重。这就是为什么"最优"的 POMDP 在实践中反而不如"最粗糙"的鲁棒 Tube 可靠——鲁棒只假设了"扰动在一个盒子里"这一个简单假设,而 POMDP 假设了完整的世界模型。一个假设被打破的代价是该假设之上所有结论失效——假设越少(鲁棒),失效面越小;假设越多(POMDP),失效面越大。选型时不只看"哪条谱理论上最优",还要看"哪条谱的假设我最有信心满足"。

B.1 章节依赖关系图

把全篇章节按"谁是谁的地基"画成依赖图(箭头 = "建立在……之上"):

                    §1 类型学(五桶) ──┐
                                      ├──→ §8 对比矩阵 ──→ §13 小结(三次折叠)
                    §2 态度光谱 ──────┘         ↑              │
                         │                      │              ↓
                         ↓                      │         §20 结语+自查
        ┌────────┬───────┼───────┬──────────┐  │
       §3分支  §4鲁棒  §5机会  §6 POMDP  §7 CVaR ─┘  (五条脉络喂给对比矩阵)
        │        │       │        │          │
        └────────┴───────┴────────┴──────────┘
          ┌──────────────┼──────────────┬─────────────┐
          ↓              ↓              ↓             ↓
     §9 选型矩阵    §10 RL贯穿     §11 开放问题    §12 C++生态
          │              │              │             │
          ↓              │              ↓             ↓
     §19 全栈案例 ←───────┘         §18 失败模式   附录A 形态深析
          │                            │
          └──────────→ §15陷阱 §16误诊 §故障手册 ←┘  (诊断三件套)
                       §14 综合题 / §17 速查 / 附录B (检验与查阅)

读图:§1、§2 是全篇唯二的"根"(所有节都依赖它们);§3–§7 五条脉络是"主干",向上汇入 §8 对比矩阵;§8 再分叉出选型(§9/§19)、RL(§10)、前沿(§11)、工程(§12)四个应用方向;§13 是把 §8 再压缩的"顶";诊断三件套(§15/§16/故障手册)横切所有节做"反向检验"。整张图的形状是一个"沙漏"——五桶/态度收窄到对比矩阵(沙漏腰),再展开成应用与诊断(沙漏下半)。

B.2 三条阅读路径

不同读者按不同路径取用,无需线性全读:

读者类型 目标 推荐路径 跳过
赶时间的工程师 拿到任务会选谱 §1 → §2 → §8 → §9 → §19 → 故障手册 §3–§7 脉络细节、§10–§11
要选研究方向的博士生 找开放问题 §1 → §2 → §8.2 → §10 → §11 → §18.3 → 附录A §12 工程生态、§17 速查
系统学习者 看清整片森林 线性读 §1–§20 + 两附录 无(全读,§14 综合题作答)

本质洞察(综述的"非线性"读法):教程通常要线性读(前置是后续的地基),但好的综述应当支持非线性取用——因为它的价值在"关系网"而非"知识链"。§B.1 的依赖图揭示:只要先吃透两个根(§1、§2)和沙漏腰(§8),其余各节都可按需跳读。这也是为什么本篇在每节开头都放"本节定位"、在关键处反复回指节号——它在主动支持你"哪里需要看哪里"的非线性阅读。一篇综述读得好不好,不在于你是否从头读到尾,而在于半年后遇到一个真实问题时,你能不能精准翻回那一节、那张表、那条本质洞察。这篇综述的全部结构设计(沙漏式依赖、三条路径、密集回指、速查附录),都是为了让那次"翻回来"尽可能快。


⚠️ 综合陷阱专栏(全篇汇总补充)

陷阱:混淆"五条谱"与"五种不确定性类型"

💡 概念误区:以为"五条谱"和"五个桶"是一一对应的
   新手想法:"鲁棒=集合型,机会约束=概率型,分支=多模态型——所以五条谱
          各管一种不确定性,不重叠"
   实际上:§8.2 的三组同构关系已表明——鲁棒、机会约束、CVaR 可以处理同一类
          连续扰动(区别只在"态度"不同),分支和 POMDP 处理的是正交的维度
          (离散意图 vs 可观性),CVaR 是修饰符可附着在任一谱上
   根本原因:"五桶"是按**建模对象**分的(§1),"五谱"是按**违反态度**分的(§2)——
          二者是两张正交的地图,不是同一张地图的两种标签
   正确做法:先用五桶判断"我的不确定性是什么类型",
          再用态度光谱判断"我对违反持什么态度",
          两步的交叉点才是该选的谱(§9.1 的三步流程)

陷阱:以为"POMDP 总是最优解"

🧠 思维陷阱:认为 POMDP 既然理论最优就该一律采用
   新手想法:"POMDP 的 belief 规划保证了信息收集与决策的最优权衡,
          其他谱都是它的退化特例,所以该直接用 POMDP"
   实际上:POMDP 的理论最优是以"完整的 $T,O,R$ 模型"为代价的——
          你需要精确的转移模型、观测模型、奖励函数,且在线计算信念树的代价
          远超其他谱。如果你的状态是可观的(sensor 足够好),POMDP 退化成 MDP,
          白付了 belief 维护的代价
   根本原因:§2.3 的三角权衡——POMDP 信息需求最高、计算最贵,换来"自适应最优"。
          但如果你的信息需求没那么高(状态可观、扰动有界),用信息需求低的谱
          (鲁棒/CC)是更划算的选择
   正确做法:用 §9.2 决策树的第一问"状态看不清吗?"做判断——
          只有答案是 YES(真正的部分可观测)才值得上 POMDP

陷阱:用鲁棒方法处理多模态意图

💡 概念误区:把他车"可能左转也可能直行"用一个大扰动集包起来
   新手想法:"他车的轨迹在左转和直行两条线之间,我用一个覆盖两条的椭球当
          扰动集 $\mathcal{W}$,Tube MPC 对这个集合鲁棒就行了"
   实际上:左转和直行的轨迹之间有一大片"既不左转也不直行"的空间——
          这个椭球覆盖了大量**不可能发生的未来**,ego 为了对这些不可能的
          未来也鲁棒,会异常保守(可能停在路口不动)。
          更糟的是,椭球的"中心"恰好落在左转和直行的中间——
          一条**两者都不是**的虚假轨迹
   根本原因:§1.4 的"误判类型的代价"已分析过——多模态意图(桶③)不是
          连续扰动(桶①),用连续集合包络离散意图是类型错配。
          正确工具是分支/场景规划(§3),为每个意图各备一手
   正确做法:识别不确定性的桶——"意图是离散的几种可能"→ 桶③ → 分支规划;
          "执行噪声是连续扰动"→ 桶① → 鲁棒 Tube。
          对复合情况,分层叠加:分支管意图、Tube 管执行噪声

陷阱:把"约束满足概率"和"系统安全概率"等同

💡 概念误区:以为"CC-MPC 保证碰撞约束以 99.9% 满足"就等于"系统 99.9% 安全"
   新手想法:"我的机会约束 MPC 的 $\delta=10^{-3}$,所以碰撞概率只有千分之一"
   实际上:CC-MPC 保证的是"在单个控制周期内、在当前的分布假设下、
          针对被建模的约束"以 $1-\delta$ 概率满足。但系统的实际碰撞概率
          还受到很多 CC-MPC 不管的因素影响——传感器故障、
          软件 bug、未建模的障碍物、通信延迟、执行器饱和等。
          CC-MPC 的 $\delta$ 只覆盖了"数学模型内的不确定性",
          而系统安全需要覆盖"数学模型外的不确定性"(所谓 model gap)
   根本原因:$\Pr[\text{约束满足}] \ge 1-\delta$ 是一个**条件概率**——
          条件是"模型正确、传感器工作、执行器正常、没有未知障碍"。
          真实的系统安全概率 = $\Pr[\text{约束满足} | \text{模型正确}] \times
          \Pr[\text{模型正确}]$——后面那个因子 CC-MPC 完全不管。
          而在安全认证中,后面那个因子往往比前面那个更关键
   正确做法:(1) 不把 $\delta$ 当成"系统安全概率"向安全评审人员报告;
          (2) 理解 $\delta$ 只覆盖了"已建模的不确定性层",
             全系统安全需要叠加冗余设计(安全滤波、watchdog、冗余传感器);
          (3) 在安全论证中明确标注"$\delta$ 保证的前提假设清单"

陷阱:忽视分布漂移对概率保证的影响

🧠 思维陷阱:认为"概率保证一劳永逸"
   新手想法:"我的 CC-MPC 保证碰撞概率 $\le 10^{-6}$,所以部署后永远安全"
   实际上:概率保证 $\Pr[\text{碰撞}]\le\delta$ 是**条件保证**——
          条件是"扰动分布和你假设的一样"。如果部署环境的扰动分布和训练/设计
          时不一样(分布漂移),这个 $\delta$ 保证就无效了
   根本原因:概率保证建立在"分布已知且不变"的假设上。而真实世界的分布
          会因天气、路况、驾驶习惯的变化而漂移——这不是极端情况而是常态
   正确做法:(1) 在线监控分布漂移信号(如 CUQDS 的漂移检测器);
          (2) 使用分布鲁棒(DRO)方法给概率保证加一层"对分布也鲁棒"的保护;
          (3) 定期用新数据重校准模型参数

累积项目衔接

本章是方向级综述(横切),与 U0–U5 深度教程(纵深)配套。本节说明两者如何协同支撑 Part-U 的累积项目。

Part-U 累积项目的认知地基

Part-U 的累积项目设计为"在同一个测试台(如 acados 上的四旋翼 MPC 或 DESPOT 的 driving 场景)上,逐层叠加五条谱的组件"。本综述为这个项目提供了两层"地基":

第一层:选型地基。 累积项目的每个阶段都需要做"加哪个组件"的决策——是加 Tube 收紧、加 CC 概率约束、还是加 CVaR 尾部管理?§9 的选型决策树给出了决策的程序化方法:先分桶(§1)→ 定态度(§2)→ 查三角(§2.3)→ 落地(§9.2)。跟着这个程序走,你的组件添加顺序不是随意的,而是按问题结构递进的。

第二层:对比地基。 累积项目最有价值的环节是"在同一个场景上对比不同谱的行为"——比如同一个阵风穿框任务,分别用鲁棒 Tube、CC、CVaR 三种方式处理,观察保守度和性能的差异。§8 的主对比矩阵是设计这类对比实验的模板——你可以直接用矩阵的八个维度作为实验的比较维度。

衔接示意

综述(本篇)                              深度教程(U0–U5)
═══ 横切地基 ═══                          ═══ 纵深实现 ═══

§1 五桶分类                               U0 总论(五桶详解)
     ↓ 提供分类框架                              ↓
§2 态度光谱                               U1–U5 各谱教程
     ↓ 提供比较框架                              ↓
§8 对比矩阵                               累积项目:同一测试台
     ↓ 提供比较维度                        上扫 δ/α/K 参数
§9 选型决策树                              看五谱行为差异
     ↓ 提供选型纪律
§11 开放问题     ──────→  课程大作业的选题池

理论-工程桥接:综述提供"判断力"(该选哪个谱、比较什么维度),教程提供"动手力"(怎么实现、怎么调参、怎么验证)。先有判断力再动手,能避免"照着 U2 把 Tube MPC 实现了,却不知道什么时候该用它、什么时候该换 CC"的困境。这正是把方向级综述独立成章、置于深度教程之前的设计意图。


版本与维护

  • 本篇定位:Part-U 不确定性规划专题的方向级综述(横切顶帽),与 U0–U5 深度教程(纵深)配套。
  • 符号体系:全篇沿用 U0 总论符号(见 §17.2 统一符号表)。
  • 回指约定:正文 §N.M 指本篇章节,UX 指 30_不确定性规划/ 下的深度教程章(回指地图见 §17.4)。
  • 前沿时效:§11 开放问题与 §18.3 收敛线截至 2024–2026;新论文出现时,按 §17.3 的"奠基→可算→工程→融合"四段弧判断其在领域中的位置后增补。
  • 活文档:依 R12,后续教学讨论中产生的新陷阱(并入 §15)、新选型案例(并入 §19)、新故障场景(并入 §16/故障手册)应回写本篇。

附录 C:五条谱的数学形式化统一速查 ⭐⭐⭐

本附录用统一的数学符号把五条谱的优化问题形式并排写出,帮助读者一眼看清"五条谱在数学上到底在做什么不同的事"。

统一符号约定

  • \(x\):状态,\(u\):控制,\(w\):扰动/噪声
  • \(f(x,u,w)\):动力学,\(g(x)\le 0\):安全约束
  • \(J(x,u)\):累积代价,\(V(x)\):值函数
  • \(\mathcal{W}\):扰动集,\(p(w)\):扰动分布
  • \(b(x)\):belief(状态后验),\(\delta\):违反概率预算,\(\alpha\):CVaR 水平

五谱的优化问题并排

谱 1:鲁棒/Tube MPC(§4)

\[ \min_u \; J(\bar x, u) \quad \text{s.t.} \quad g(\bar x) + \rho_{\mathcal{W}} \le 0, \quad \bar x_{k+1} = f(\bar x_k, u_k, 0) \]

其中 \(\rho_{\mathcal{W}}\) 是 RPI 集在约束方向的支撑函数值(约束收紧量)。本质:在名义问题上优化,但把约束按扰动范围预先收紧。

谱 2:机会约束 MPC(§5)

\[ \min_u \; \mathbb{E}_w[J(x, u)] \quad \text{s.t.} \quad \Pr\big[g(x) > 0\big] \le \delta \]

高斯假设下等价于:\(g(\bar x) + \Phi^{-1}(1-\delta)\sqrt{a^\top \Sigma a} \le 0\)(约束收紧量从 \(\rho_{\mathcal{W}}\) 变成 \(\Phi^{-1}(1-\delta)\sigma\))。本质:优化期望代价,约束以 \(1-\delta\) 概率满足。

谱 3:风险敏感/CVaR(§7)

\[ \min_u \; \mathrm{CVaR}_\alpha[J(x,u)] = \min_u \min_t \Big\{ t + \frac{1}{1-\alpha}\mathbb{E}\big[(J-t)^+\big] \Big\} \]

本质:不优化期望代价,而优化"最坏 \(\alpha\) 比例情况下的平均代价"。

谱 4:分支/场景规划(§3)

\[ \min_{u_0,\{u_k^{(\omega)}\}} \; \sum_\omega P_\omega J^{(\omega)}(x, u_0, u^{(\omega)}) \quad \text{s.t.} \quad u_0^{(\omega_1)} = u_0^{(\omega_2)} \; \forall \omega_1,\omega_2 \]

本质:为每个场景 \(\omega\) 优化一条轨迹,但要求初始段共享(非预期约束)。

谱 5:POMDP/belief 规划(§6)

\[ \max_\pi \; \mathbb{E}\bigg[\sum_{t=0}^{T} \gamma^t r(s_t, a_t) \;\bigg|\; a_t = \pi(b_t),\; b_{t+1} = \tau(b_t, a_t, o_{t+1})\bigg] \]

本质:在 belief 空间上优化策略,自然涌现信息收集行为。

五谱的数学结构对照

维度 鲁棒 机会约束 CVaR 分支 POMDP
优化变量 \(u\) \(u\) \(u, t\) \(u_0, \{u^{(\omega)}\}\) \(\pi\)
目标函数 名义代价 \(J(\bar x)\) \(\mathbb{E}[J]\) \(\mathrm{CVaR}_\alpha[J]\) \(\sum P_\omega J^{(\omega)}\) \(\mathbb{E}[R \mid \pi, b]\)
约束特殊之处 收紧 \(\rho_{\mathcal{W}}\) 概率约束 \(\le\delta\) 无额外约束(风险在目标里) 共享干约束 belief 更新是约束
计算核心 名义 MPC + 离线 RPI SOCP / 采样 LP dual \(K\) 倍优化 信念树搜索

本质洞察(五谱在数学上只是"换了目标函数的聚合算子"或"换了约束的形式"):比较五行的"目标函数"列——鲁棒用名义、CC 用期望、CVaR 用尾部期望、分支用加权和、POMDP 用 belief 期望。它们的差异全在"怎么聚合不确定性"——一个"求和/积分"的算子不同而已。 这就是 §8.2 本质洞察"五条谱折叠成两条主轴 + 一个修饰符"的数学底座。

本篇与深度教程的分工,一句话收束:U0–U5 让你认识每一棵树,本篇让你看清整片森林——而森林的地图,只有"不确定性类型"和"违反态度"两根坐标轴。