CPT-025
Concept
consistent function
| id | |
|---|---|
| updated | |
| type | concept |
| name | consistent function |
| aliases | 一致函数, 函数一致性, consistency (NLP functions) |
| defined-by | PPR-004 |
Definition
一致函数(consistent function)是非线性规划(CPT-022)求解器对用户提供的目标与约束函数的要求 :函数在每次调用时执行完全相同的算术运算序列——等价于“没有逻辑分支、确定性、且输出随输入光滑变化”(PPR-004 §5.5,引 Betts)。SNOPT、IPOPT、FMINCON 等求解器依赖该性质计算梯度与海森矩阵。
常见的不一致来源(PPR-004 §5.5):\(|\cdot|\)(原点处导数不连续)、\(\min()\)、\(\max()\)(峰值切换导致梯度跳变)、随机数生成器、变步长(自适应)积分、迭代求根、表插值(切换表项时导数不连续)。用时间步进仿真器(Bullet、Box2d)计算动力学同样引入不一致——其接触求解器不一致,导致 NLP 收敛差。
对策(PPR-004 §5.5、§8.5–§8.6):
- 松弛变量(CPT-027):把不连续从目标推到约束(求解器可处理约束中的不连续),可对 \(|\cdot|\)、\(\min\)、\(\max\) 做数学等价的重写;
- 光滑化:用可微近似替换(如 \(\tanh\)、\(\sqrt{x^2+\beta^2}\) 近似 \(|x|\)),简单快速但改变问题本身、损失精度,必须做收敛测试;
- 固定迭代/固定步长:求根用固定次数迭代,变步长积分改为定步长;
- 连续导数插值:表插值改用一阶/二阶导数连续的格式(求解器用梯度需 C1,用海森需 C2)。
Disambiguation
- 与“函数是光滑的”区分:一致性是更强的逐次调用可复现性要求(同一运算序列),而不仅是数学上的可微性;例如带分支但处处可微的函数仍可能不一致。
- 与松弛变量(CPT-027)区分:一致性是要求,松弛变量是实现该要求的手段之一(另有光滑化、定步长等)。
- 与数值精度区分:一致性关乎梯度信息是否稳定可用,不是解的精度高低;光滑化在改善一致性的同时降低解对原问题的忠实度。
关联(14)
- PPR-004 An Introduction to Trajectory Optimization: How to Do Your Own Direct Collocation
- FRM-004 Kelly(2017)直接配点轨迹优化教程的五层重建:以“连续问题→多项式样条近似→非线性规划”为主线,规范术语与约束分类(D),列出作者接受的前提(AX),重建从配点构造、插值、误差估计到网格细化与不连续性处理的论证链(AR),并分节记录作者评论与本库评论;Theorems/Evidence 层待 P3 投影回填。
- CPT-022 non-linear program
- CPT-024 bang-bang control
- CPT-027 slack variable
- CPT-019 co-definer shooting 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-026 co-definer open-loop vs closed-loop solution
- CPT-027 co-definer slack variable
- CPT-028 co-definer Runge-Kutta method