Research KB 登录

CPT-027 Concept

slack variable

id
updated
type concept
name slack variable
aliases 松弛变量, slack variables
defined-by PPR-004

Definition

松弛变量(slack variable)是为实现函数一致性(CPT-025)或精确表示非光滑函数而引入的额外决策变量;其核心作用是把不连续从目标函数推到约束——求解器能正确处理约束中的不连续(PPR-004 §5.5、§8.5)。

以最小绝对功目标的 \(|u(t)v(t)|\) 为例(PPR-004 式 8.9–8.11):引入两个松弛变量 \(s_1(t),s_2(t)\),把目标改写为

\[\min \int_0^1 \bigl(s_1(\tau)+s_2(\tau)\bigr)\,d\tau\]

并加约束 \(0 \le s_1(t)\)\(0 \le s_2(t)\)\(s_1(t)-s_2(t)=u(t)v(t)\)。于是 \(s_1\) 表示绝对值参数的正部、\(s_2\) 表示负部的幅值,重写与原问题数学等价

代价(PPR-004 §8.5):解本身仍不连续,配点法无法精确表示(只能逼近);每个 \(|\cdot|\) 在每个配点增加两个额外控制与三个额外约束,显著增大 NLP 规模;且松弛变量以路径约束形式实现,使 NLP 收敛更慢。

Disambiguation

  • 与光滑化(smoothing)的实质区分:松弛变量重写是数学等价的,解仍不连续;光滑化(如 \(\tanh\)\(\sqrt{x^2+\beta^2}\) 近似 \(|x|\)改变问题本身,解变光滑、精度下降,须做收敛测试(PPR-004 §8.6)。二者是同一不连续性问题的两条对策,权衡见 PPR-004 图 17。
  • 与一般 NLP 松弛(不等式约束转等式)区分:本卡按 PPR-004 的用法定义——松弛变量在此是为一致性/精确表示而引入的辅助决策变量,不是把 \(g(z)\le 0\) 转成 \(g(z)+s=0\) 的经典松弛化技巧(PPR-004 未涉及后者,本卡不外推)。

关联(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-024 bang-bang control
  • CPT-025 consistent function
  • EX-001 直接配点法算例(最小功双积分器):梯形配点 + 松弛变量把问题变成线性规划,N=10→160 网格下目标值 0.7958→0.76405 逼近解析 bang-off-bang 解的 0.763932,状态误差约按 O(h²) 下降,切换时刻收敛到 τ≈0.381966。
  • 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-025 co-definer consistent function
  • CPT-026 co-definer open-loop vs closed-loop solution
  • CPT-028 co-definer Runge-Kutta method