二次规划(Quadratic Programming, QP)(1)
1. 什么是二次规划(QP)
1.1 标准形式
二次规划是指:
目标函数是二次函数,约束是线性的优化问题。
标准 QP 形式:
minx12xTHx+fTxs.t.Ax=b Cx≤d \begin{aligned} \min_{\mathbf{x}} \quad & \frac{1}{2}\mathbf{x}^T \mathbf{H}\mathbf{x} + \mathbf{f}^T\mathbf{x} \\ \text{s.t.} \quad & \mathbf{A}\mathbf{x} = \mathbf{b} \ & \mathbf{C}\mathbf{x} \le \mathbf{d} \end{aligned} xmins.t.21xTHx+fTxAx=b Cx≤d
其中:
| 符号 | 含义 |
|---|---|
| x∈Rn\mathbf{x}\in\mathbb{R}^nx∈Rn | 优化变量 |
| H∈Rn×n\mathbf{H}\in\mathbb{R}^{n\times n}H∈Rn×n | Hessian(对称) |
| f∈Rn\mathbf{f}\in\mathbb{R}^nf∈Rn | 线性项 |
| A,b\mathbf{A},\mathbf{b}A,b | 等式约束 |
| C,d\mathbf{C},\mathbf{d}C,d | 不等式约束 |
1.2 QP 的分类
无约束 QP
minx12xTHx+fTx \min_{\mathbf{x}} \frac{1}{2}\mathbf{x}^T\mathbf{H}\mathbf{x}+\mathbf{f}^T\mathbf{x} xmin21xTHx+fTx
直接解:
x⋆=−H−1f
\mathbf{x}^\star = -\mathbf{H}^{-1}\mathbf{f}
x⋆=−H−1f
仅等式约束 QP
用 KKT 条件 → 线性方程组解。
含不等式约束 QP
需要 主动集 / 内点法 / ADMM 等算法。
二、 二次规划的数学性质
记号与问题标准形式:
minx∈Rn 12x⊤Hx+f⊤x s.t. Ax=b, Cx≤d, \begin{aligned} \min_{x\in\mathbb{R}^n}\ &\tfrac12 x^\top H x + f^\top x \ \text{s.t.}\ & A x = b,\ & C x \le d, \end{aligned} x∈Rnmin 21x⊤Hx+f⊤x s.t. Ax=b, Cx≤d,
其中 H∈Rn×nH\in\mathbb{R}^{n\times n}H∈Rn×n 对称,f∈Rnf\in\mathbb{R}^nf∈Rn,A,CA,CA,C 为约束矩阵。
2.1 凸 QP vs 非凸 QP(代数与结论)
2.1.1 正定 / 半正定的含义与结论
-
H⪰0H\succeq 0H⪰0(半正定) 意味着:∀v,v⊤Hv≥0\forall v, v^\top H v \ge 0∀v,v⊤Hv≥0。
- 若同时对可行域上的二次项“严格凸”,则问题全局凸,任何局部最小即为全局最小。
- 当存在约束时(线性等式/不等式),满足 Slater 条件(存在严格可行点)时,强对偶成立:原问题的最优值等于对偶问题最优值。
-
H≻0H\succ 0H≻0(严格正定) 意味着:∀v≠0,v⊤Hv>0\forall v\ne0, v^\top H v > 0∀v=0,v⊤Hv>0。
- 目标函数在全域严格凸,若无约束(或约束可行且合适),解唯一:
x⋆=−H−1f x^\star = -H^{-1} f x⋆=−H−1f
(无约束情形); - 含等式约束时,若 AAA 的行线性无关且 KKT 矩阵可逆,则有唯一解(见下节 KKT 显式线性系统)。
- 目标函数在全域严格凸,若无约束(或约束可行且合适),解唯一:
-
HHH 仅半正定(奇异)时:
- 在无约束但 H⪰0H\succeq0H⪰0、且 HHH 在可行方向上零模(存在 vvv s.t. Hv=0Hv=0Hv=0 且 f⊤v≠0f^\top v\ne0f⊤v=0)会导致无界或平坦方向(沿零特征向量方向目标为线性函数),解可能不唯一。
- 等式约束可“去掉”零空间方向:若约束把零空间固定住可以恢复唯一性。
工程结论性:要得到数值稳定与唯一解,优先保证 H≻0H\succ0H≻0 或对 HHH 施加适量的正则化(Tikhonov)H+λIH+\lambda IH+λI。
2.1.2 非凸 QP(HHH 存在负特征值)
- 当 HHH 含负特征值时,目标在某些方向上是“向下开口”的(即凹的方向),问题可能有 多个局部极小,甚至全局无界(若约束不能阻止沿负方向逃逸)。
- 一般非凸 QP 是 NP-hard(在最一般情形下),因此只能靠特殊结构、松弛(SDP)、分支定界(branch-and-bound)或启发式求解。
工程手段:
- 若问题来自线性化(例如某次线性化产生负特征值),常用做法是:修正 Hessian(取其正定近似)或加正则化 λI\lambda IλI(LM / Tikhonov);或采用信赖域方法来保证步长不会进入凹区。
2.1.3 等式约束 QP 的闭式解(KKT 线性系统)
若只有等式约束 Ax=bAx=bAx=b,且 HHH 对可行子空间为正定,可由 KKT 条件得到线性系统解。定义拉格朗日乘子 λ\lambdaλ,KKT 条件:
{Hx+f+A⊤λ=0 Ax=b \begin{cases} H x + f + A^\top \lambda = 0\ A x = b \end{cases} {Hx+f+A⊤λ=0 Ax=b
合并为线性系统(KKT 矩阵):
[HA⊤A0][xλ]=[−fb]. \begin{bmatrix} H & A^\top \\ A & 0 \end{bmatrix} \begin{bmatrix} x \\ \lambda \end{bmatrix}= \begin{bmatrix} -f \\ b \end{bmatrix}. [HAA⊤0][xλ]=[−fb].
若该 KKT 矩阵可逆(例如 H≻0H\succ0H≻0 且 AAA 行无关),则可直接解出 (x,λ)(x,\lambda)(x,λ)。这也是工程中很多稠密小尺度 QP 的常见解法。
2.2 数值稳定性与灵敏度(Conditioning)
2.2.1 条件数与求解稳定性
-
关键数量:κ(H)=∣H∣∣H−1∣\kappa(H) = |H| |H^{-1}|κ(H)=∣H∣∣H−1∣(例如 2-范数条件数 = ∣λmax/λmin∣|\lambda_{\max}/\lambda_{\min}|∣λmax/λmin∣)。
- 当 κ(H)\kappa(H)κ(H) 很大时,求解对数据(HHH、fff、约束)的小扰动非常敏感 —— 可能导致解的大幅变化。
-
建议:若 λmin(H)\lambda_{\min}(H)λmin(H) 很小(接近 0),常用做法是加正则化 λI\lambda IλI(使 λmin\lambda_{\min}λmin 提高),或者用降秩近似(TSVD)。
2.2.2 灵敏度界
无约束情形 x⋆=−H−1fx^\star = -H^{-1} fx⋆=−H−1f,若 HHH 与 fff 同时被小扰动 ΔH,Δf\Delta H, \Delta fΔH,Δf,一阶近似敏感度可表示为:
Δx≈−H−1Δf+H−1(ΔH)H−1f. \Delta x \approx -H^{-1} \Delta f + H^{-1} (\Delta H) H^{-1} f. Δx≈−H−1Δf+H−1(ΔH)H−1f.
由此可以估计扰动放大因子与 ∣H−1∣|H^{-1}|∣H−1∣(即约等于 κ(H)/∣H∣\kappa(H)/|H|κ(H)/∣H∣)有关。
2.3 退化(Degeneracy)与零特征值的几何/代数含义
-
若 HHH 有零特征值(或很小的特征值),则目标函数在对应特征向量方向上平坦或近平坦。
-
如果这些方向同时没有被约束(AAA / CCC 不束缚这些方向),那么在这些方向上可以自由移动:
- 无约束时:沿零空间若 fff 的分量为 0,则无穷多解(解不是唯一);若 fff 在零空间上不为 0,则可能无界(目标可以沿负 fff 方向下降)。
- 有等式/不等式约束时:约束可移除自由度,从而恢复唯一性或界定解集。
工程处理:
- 正则化(H+λIH+\lambda IH+λI)是最常见而简单的办法;
- 或者在问题建模时加入小先验约束来消除零空间。
2.4 二次项的谱分解与解的结构
对称矩阵 HHH 的谱(特征)分解:
H=VΛV⊤,Λ=diag(λ1,…,λn). H = V \Lambda V^\top,\quad \Lambda=\operatorname{diag}(\lambda_1,\dots,\lambda_n). H=VΛV⊤,Λ=diag(λ1,…,λn).
在无约束情形,目标变换到特征坐标系为:
miny12y⊤Λy+f~⊤y,y=V⊤x, f~=V⊤f. \min_y \tfrac12 y^\top \Lambda y + \tilde f^\top y,\quad y=V^\top x,\ \tilde f=V^\top f. ymin21y⊤Λy+f~⊤y,y=V⊤x, f~=V⊤f.
于是各坐标的最优值是独立的(当 λi>0\lambda_i>0λi>0):
yi⋆=−f~i/λi. y_i^\star = -\tilde f_i/\lambda_i. yi⋆=−f~i/λi.
直观结论:小特征值 λi\lambda_iλi 会把对应分量放大(yi⋆y_i^\staryi⋆ 与 1/λi1/\lambda_i1/λi 成正比),这反映了条件数对解放大的作用。
2.5 对偶问题与强对偶性(凸情形)
原问题(标准):
minx12x⊤Hx+f⊤xs.t. Ax=b, Cx≤d. \min_x \tfrac12 x^\top H x + f^\top x \quad \text{s.t. } A x = b,\ Cx\le d. xmin21x⊤Hx+f⊤xs.t. Ax=b, Cx≤d.
构造拉格朗日函数(对等式与不等式引入乘子 λ,μ (μ≥0)\lambda,\mu\ ( \mu\ge0)λ,μ (μ≥0))并对 xxx 求极小,可得到对偶问题(凸 QP 时)是另一个 QP(或最小化凸函数):
- 在 凸 QP 且满足 Slater 条件(严格可行),强对偶成立:原问题的最优值 = 对偶问题最优值,KKT 条件成为必要且充分最优性条件。
工程意义:
- 对偶变量(拉格朗日乘子)有物理意义(例如约束的影子价格 / 灵敏度)。
- 对偶可用于构造停机判据、误差界、以及某些求解器(内点法)的残差监控。
2.6 KKT 条件与几何(互补松弛的直观解释)
KKT 条件一览(再次写出):
- 梯度消失(站位):
Hx+f+A⊤λ+C⊤μ=0 H x + f + A^\top\lambda + C^\top\mu = 0 Hx+f+A⊤λ+C⊤μ=0 - 可行性:Ax=b, Cx≤dAx=b,\ Cx\le dAx=b, Cx≤d。
- 对偶可行:μ≥0\mu\ge0μ≥0。
- 互补松弛:μi(Cix−di)=0\mu_i (C_i x - d_i)=0μi(Cix−di)=0。(若第 i 个不等式为非活跃(严格小于),则 μi=0\mu_i=0μi=0)
几何直观:
- 二次等高线(椭球)“推进”直到接触可行域边界。
- 若接触在不等式的内部点(无活跃约束),则拉格朗日乘子不出现;若接触在边界上,对应约束成为 active,乘子视为“边界的法向力”抵消目标梯度的法分量。
2.7 特殊且常见的子情况
(a) 只有等式约束(已给 KKT 解法)
KKT 系统直接解线性方程组(稠密小规模):复杂度主要在矩阵分解 O(n3)O(n^3)O(n3)。
(b) 只有边界约束(盒约束) l≤x≤ul\le x\le ul≤x≤u
这类 QP 常用投影梯度、坐标下降或专门的活性集法(qpOASES 也能高效处理)。若 HHH 对角(或对角占优),可非常快速。
© 带稀疏 Hessian 的大规模 QP
SLAM / 大规模 MPC 的常见情形:利用稀疏线性代数(因子化、稀疏 LDLᵗ)是关键。内点法与活性集法都需要维持稀疏性。
2.8 二次规划的几何理解
-
目标的等高线是中心对称的椭球/椭圆,方向由 HHH 的特征向量给定,轴长与特征值成反比。
-
约束是半空间交集(多面体)。
-
最优点几何上是 椭球收缩直到触及可行集的第一个位置。
- 若最早接触点是在多面体的顶点(corner),通常多重约束同时活跃;若在边/面上,则对应较少约束活跃。
-
接触处的法向量与拉格朗日乘子方向一致(乘子大小衡量目标在被约束方向上的“下降能力”被约束反作用抵消的程度)。
2.9 非凸 QP 的常用处理
当 HHH 非凸(含负特征值)但问题来源于线性化或近似时,常见策略:
-
谱修正 / 取正定近似:令 Hpos=Vmax(Λ, ϵI)V⊤H_{\text{pos}} = V \max(\Lambda,\ \epsilon I) V^\topHpos=Vmax(Λ, ϵI)V⊤(把负/小特征值截断或提升)。
-
Tikhonov 正则化:H+λIH + \lambda IH+λI,数值简单且能提升条件数。
-
信赖域方法:限制步长,避免进入凹区造成误步(尤其在非线性最小二乘中常用)。
-
全局化方法(若必须求全局):
- 半正定松弛(SDP relaxation)将 QCQP 松弛为 SDP(常用于某些组合性/二次二次问题)。
- 分支定界(branch-and-bound / branch-and-cut):穷举+界(计算量大)。
2.10 简单二维例子
令 n=2n=2n=2,H=[a00b]H=\begin{bmatrix} a & 0\\ 0 & b\end{bmatrix}H=[a00b],f=0f=0f=0,目标为 12(ax12+bx22)\tfrac12 (a x_1^2 + b x_2^2)21(ax12+bx22)。
- 等高线是轴对齐椭圆,主轴长度 ∝1/a\propto 1/\sqrt{a}∝1/a 和 1/b1/\sqrt{b}1/b。
- 若有不等式约束 x1≥cx_1\ge cx1≥c,最优点要么在 (c,0)(c,0)(c,0)(若 ccc 大 enough),要么在 (0,0)(0,0)(0,0)(若可行且更优)。
- 若 a→0a\to 0a→0,椭圆沿 x1x_1x1 方向伸长 → 解对 fff 中 x1x_1x1 的分量极度敏感(需要正则化)。
2.11 额外重要结论
-
唯一性:若 H≻0H\succ 0H≻0 且约束一致(不矛盾)则解唯一。
-
存在性:在凸 QP 中(H⪰0H\succeq0H⪰0),若可行集非空且目标下界存在,则最优解存在(若可行集紧闭则一定存在)。
-
强对偶:若凸 QP 且满足 Slater,则强对偶成立。
-
数值建议:
- 若条件数 κ(H)\kappa(H)κ(H) 太大,优先加正则化或做特征截断(TSVD)。
- 若 HHH 奇异,请分析 HHH 的零空间与约束 AAA 的关系,或添加小先验约束。
- 对大规模稀疏问题,使用稀疏 LDLᵗ / 因子化或专用求解器(OSQP、qpOASES、qpoases 等)。
2.12 与最小二乘(LS)与线性代数的关系
- 最小二乘问题是特殊的 QP:H=A⊤AH=A^\top AH=A⊤A(自然 PSD)。
- 如果 AAA 列线性相关则 HHH 奇异(说明 LS 有多解),一般用正则化或最小范数解(Moore–Penrose 伪逆)解决。
2.13 小结
- 凸 QP(H⪰0H\succeq 0H⪰0):可全局求解,KKT 给出必要充分条件,强对偶通常成立。
- 严格凸(H≻0H\succ 0H≻0):解唯一,数值稳定(前提条件数不过大)。
- 奇异/退化(λmin≈0\lambda_{\min}\approx0λmin≈0):导致多解/不稳定,需正则化或约束补偿。
- 非凸 QP(含负特征值):存在局部极小,工程上常通过谱修正 / 正则化 / 信赖域 来保证稳定与可行性;若要求全局最优需更复杂的全局算法(SDP、分支定界等)。
- 几何视角(椭球 + 半空间)是理解活性约束、乘子物理意义与解的直观利器。
更多推荐
所有评论(0)