什么是二次规划问题,如何使用拉格朗日乘子法,以及 KKT 条件是什么。


1. 什么是二次规划问题?

二次规划(Quadratic Programming, QP)是一种特殊的优化问题,其目标函数是变量的二次函数,而约束条件通常是线性的。具体形式可以写为:

最小化f(x)=12xTQx+cTx受约束Ax≤b,x≥0, \begin{aligned} &\text{最小化} \quad f(x) = \frac{1}{2} x^T Q x + c^T x \\ &\text{受约束} \quad A x \leq b, \\ &\quad\quad\quad\quad\quad x \geq 0, \end{aligned} 最小化f(x)=21xTQx+cTx受约束Axb,x0,

  • xxx 是变量向量(x∈Rnx \in \mathbb{R}^nxRn)。
  • QQQ 是一个对称矩阵(通常假设是正定或半正定矩阵,以保证问题有解或凸优化)。
  • ccc 是一个线性项的系数向量。
  • Ax≤bA x \leq bAxb 表示线性不等式约束,AAA 是约束矩阵,bbb 是常数向量。
  • x≥0x \geq 0x0 是非负约束(某些问题可能没有这个约束)。

二次规划广泛应用于机器学习(如支持向量机 SVM)、金融组合优化等领域。


2. 如何用拉格朗日乘子法改写二次规划?

拉格朗日乘子法通常用于处理带约束的优化问题。对于二次规划,我们可以通过引入拉格朗日乘子,将约束问题转化为无约束问题。

标准形式

假设我们有以下二次规划问题:

最小化f(x)=12xTQx+cTx受约束Ax≤b,x≥0。 \begin{aligned} &\text{最小化} \quad f(x) = \frac{1}{2} x^T Q x + c^T x \\ &\text{受约束} \quad A x \leq b, \\ &\quad\quad\quad\quad\quad x \geq 0。 \end{aligned} 最小化f(x)=21xTQx+cTx受约束Axb,x0

构造拉格朗日函数

引入拉格朗日乘子 λ≥0\lambda \geq 0λ0(对应不等式约束 Ax≤bA x \leq bAxb)和 μ≥0\mu \geq 0μ0(对应非负约束 x≥0x \geq 0x0),拉格朗日函数为:

L(x,λ,μ)=12xTQx+cTx+λT(Ax−b)−μTx \mathcal{L}(x, \lambda, \mu) = \frac{1}{2} x^T Q x + c^T x + \lambda^T (A x - b) - \mu^T x L(x,λ,μ)=21xTQx+cTx+λT(Axb)μTx

  • λ∈Rm\lambda \in \mathbb{R}^mλRm 是与 Ax≤bA x \leq bAxb 对应的乘子向量(mmm 是约束数量)。
  • μ∈Rn\mu \in \mathbb{R}^nμRn 是与 x≥0x \geq 0x0 对应的乘子向量。
  • λT(Ax−b)\lambda^T (A x - b)λT(Axb) 表示不等式约束的惩罚项。
  • −μTx-\mu^T xμTx 表示非负约束的惩罚项。
求解

目标是找到 xxxλ\lambdaλμ\muμ,使得 L(x,λ,μ)\mathcal{L}(x, \lambda, \mu)L(x,λ,μ) 在满足约束的情况下达到最优。这需要用到 KKT 条件(见下文)。


3. KKT 条件是什么?

KKT 条件(Karush-Kuhn-Tucker 条件)是处理带不等式约束的非线性优化问题的最优性条件。对于上述二次规划问题,KKT 条件包括以下几点:

(1) 驻点条件(Stationarity)

对拉格朗日函数 L(x,λ,μ)\mathcal{L}(x, \lambda, \mu)L(x,λ,μ) 关于 xxx 求偏导并置零:

∇xL=Qx+c+ATλ−μ=0 \nabla_x \mathcal{L} = Q x + c + A^T \lambda - \mu = 0 xL=Qx+c+ATλμ=0

(2) 原问题约束(Primal Feasibility)

原始问题的约束必须满足:

Ax≤b,x≥0 A x \leq b, \quad x \geq 0 Axb,x0

(3) 双重可行性(Dual Feasibility)

拉格朗日乘子是非负的:

λ≥0,μ≥0 \lambda \geq 0, \quad \mu \geq 0 λ0,μ0

(4) 互补松弛条件(Complementary Slackness)

对于不等式约束,乘子和约束的“松弛量”乘积为零:

λi(Aix−bi)=0,i=1,…,m \lambda_i (A_i x - b_i) = 0, \quad i = 1, \dots, m λi(Aixbi)=0,i=1,,m

μjxj=0,j=1,…,n \mu_j x_j = 0, \quad j = 1, \dots, n μjxj=0,j=1,,n

  • 如果约束 Aix<biA_i x < b_iAix<bi 不活跃,则 λi=0\lambda_i = 0λi=0
  • 如果 xj>0x_j > 0xj>0,则 μj=0\mu_j = 0μj=0
KKT 条件的作用

如果 QQQ 是正定矩阵,二次规划问题是凸优化问题,满足 KKT 条件的解就是全局最优解。通过解这个方程组,可以找到最优的 xxxλ\lambdaλμ\muμ


总结

  1. 二次规划问题:目标是二次函数,约束是线性的优化问题。
  2. 拉格朗日乘子法:通过引入乘子 λ\lambdaλμ\muμ,构造拉格朗日函数,将约束问题转为无约束问题。
  3. KKT 条件:包括驻点条件、原问题约束、双重可行性和互补松弛条件,用于求解最优解。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐