CPT-019
Concept
shooting method
| id | |
|---|---|
| updated | |
| type | concept |
| name | shooting method |
| aliases | direct shooting, single shooting, multiple shooting, 打靶法 |
| defined-by | PPR-004 |
Definition
打靶法(shooting method,在轨迹优化语境下也称 direct shooting)是求解轨迹优化问题的一类直接法:把问题转录(transcription)为非线性规划(non-linear program, NLP)。其关键特征是用仿真近似轨迹——决策变量是控制沿轨迹的开环参数化加上初始状态,中间状态由前向积分动力学得到、不是 NLP 的决策变量(PPR-004 §9.5)。
两种常见变体(PPR-004 §9.5–§9.6):
- 单打靶(single shooting):用一条仿真贯穿整条轨迹;适合控制简单、路径约束少的场景(如航天)。
- 多重打靶(multiple shooting,又称 parallel shooting):把轨迹分成若干段,每段各自仿真,段间加状态连续性约束;比单打靶稳健,用于更难的轨迹优化问题。
与配点法相比,打靶法产生的 NLP 小且稠密,决策变量少但耦合强;主要困难有二:中间状态不是决策变量,故路径约束难以施加;决策变量与约束的关系常高度非线性,可能导致收敛差(PPR-004 §9.5–§9.6)。
Disambiguation
- 与配点法(CPT-020)的实质区分:打靶用仿真产生轨迹、状态不是决策变量;配点把状态也作为决策变量、把动力学写成节点间的代数缺陷约束(等价隐式 Runge–Kutta,CPT-028)。二者都属直接转录(discretize 成 NLP),区别在轨迹如何被确定、谁作优化变量。
- 与随机打靶/交叉熵方法区分:random shooting 与 cross-entropy method(CEM)是无梯度的打靶——仍用仿真产生轨迹、属打靶家族,但优化器不使用导数;而 DDP/iLQG(PPR-005)是基于梯度的打靶(前向 rollout + 反向值函数传播)。“用不用梯度”与“是不是打靶”是两根正交的轴。
- 实例:Tassa 等 2012(PPR-005)的 iLQG 属打靶路线;与 Posa 等 2014(PPR-003)的直接转录/MPCC 路线相对。
关联(17)
- PPR-003 A direct method for trajectory optimization of rigid bodies through contact
- PPR-004 An Introduction to Trajectory Optimization: How to Do Your Own Direct Collocation
- PPR-005 Synthesis and Stabilization of Complex Behaviors through Online Trajectory Optimization
- PPR-2205.09991 Planning with Diffusion for Flexible Behavior Synthesis
- FRM-004 Kelly(2017)直接配点轨迹优化教程的五层重建:以“连续问题→多项式样条近似→非线性规划”为主线,规范术语与约束分类(D),列出作者接受的前提(AX),重建从配点构造、插值、误差估计到网格细化与不连续性处理的论证链(AR),并分节记录作者评论与本库评论;Theorems/Evidence 层待 P3 投影回填。
- CPT-020 collocation method
- CPT-021 trajectory optimization
- CPT-028 Runge-Kutta method
- CPT-020 co-definer collocation method
- CPT-021 co-definer trajectory optimization
- CPT-022 co-definer non-linear program
- CPT-023 co-definer mesh refinement
- CPT-024 co-definer bang-bang control
- CPT-025 co-definer consistent function
- CPT-026 co-definer open-loop vs closed-loop solution
- CPT-027 co-definer slack variable
- CPT-028 co-definer Runge-Kutta method