文章目录
参考资料
由于在面试中有被问及QP的原理,所以重点来总结一波QP的原理。
1. 二次规划形式
二次规划问题(Quadratic Programming,QP)是一种非线性规划问题,它的目标函数为二次函数,约束条件和线性规划问题的约束条件一样,都是线性等式或线性不等式,即
min 1 2 x ⊤ G x + h ⊤ x s . t . a i ⊤ x ⩽ b i , i ∈ I = { 1 ⋯ m } . a i ⊤ x = b i , i ∈ ϵ = { m + 1 , … m + l } . (1) \tag{1} \begin{aligned} &\min \frac{1}{2} x^{\top} G x+h^{\top} x\\ s.t.\quad &a_{i}^{\top} x \leqslant b_{i}, \quad i\in \mathcal{I}=\{1 \cdots m\}.\\ &a_{i}^{\top} x=b_{i}, \quad i\in\mathcal{\epsilon}=\{m+1, \ldots m + l \}\text {. } \end{aligned} s.t.min21x⊤Gx+h⊤xai⊤x⩽bi,i∈I={1⋯m}.ai⊤x=bi,i∈ϵ={m+1,…m+l}. (1)
一般二次规划问题可以分成以下几类:
- 凸二次规划问题:G半正定,问题有全局解
- 严格凸二次规划问题:G正定,问题有唯一全局解
- 一般二次规划问题:G不定,问题有稳定点或局部解
二次规划应用广泛,常见的例如有:求最小二乘法,点到多面体的距离,模型预测控制的求解等。
下面我们分别介绍等式约束和不等式约束下的二次规划的求解。
2. 等式约束二次规划问题
等式约束的二次规划问题一般形式如下:
min 1 2 x ⊤ G x + h ⊤ x s . t . A ⊤ x = b (2) \tag{2} \begin{aligned} \min &\frac{1}{2} x^{\top} G x+h^{\top} x\\ s.t.\quad &A^{\top}x=b \end{aligned} mins.t.21x⊤Gx+h⊤xA⊤x=b(2)
其中
b
∈
R
m
,
A
∈
R
n
×
m
,
rank
(
A
)
=
m
,
n
>
m
b \in R^{m}, A \in R^{n \times m}, \operatorname{rank}(A)=m, n>m
b∈Rm,A∈Rn×m,rank(A)=m,n>m
2.1 变量消去法
1. 示例
变量消去法思路很简单,就是初中时候学过的消元法(当然,抽象之后还是挺高级的)。例如举个小栗子,假设要求解下面这个二次规划问题:
min
x
1
2
+
x
2
2
+
x
1
+
x
2
s.t.
x
1
+
x
2
=
1
\begin{array}{ll} \min & \mathrm{x}_{1}^{2}+\mathrm{x}_{2}^{2}+\mathrm{x}_{1}+ \mathrm{x}_{2} \\ \text { s.t. } & \mathrm{x}_{1}+\mathrm{x}_{2}=1 \end{array}
min s.t. x12+x22+x1+x2x1+x2=1
消除一个变量
x
2
x_2
x2,这样就可以很简单的求解出来:
min
x
1
2
+
(
1
−
x
1
)
2
+
1
−
x
1
+
x
1
\min \mathrm{x}_{1}^{2}+\left(1-\mathrm{x}_{1}\right)^{2}+1-\mathrm{x}_{1}+ \mathrm{x}_{1}
minx12+(1−x1)2+1−x1+x1
当然我们还可以用拉格朗日法,推导出KKT条件(后面会讲):
min
x
1
2
+
x
2
2
+
x
1
+
x
2
+
λ
(
x
1
+
x
2
−
1
)
\min \mathrm{x}_{1}^{2}+\mathrm{x}_{2}^{2}+\mathrm{x}_{1}+\mathrm{x}_{2}+\lambda\left(\mathrm{x}_{1}+\mathrm{x}_{2}-1\right)
minx12+x22+x1+x2+λ(x1+x2−1)
2. 具体过程
应用变量消去法求解包括以下3个步骤:
- 将 x x x分成基本变量 x B x_{B} xB 与非基本变量 x N x_{N} xN 两部分,利用等式约束将基本变量用非基本变量表示出来;
- 再将基本变量带入目标函数,从而消去基本变量,把问题化为一个关于非基本变量的无约束最优化问题;
- 最后求解无约束最优化问题的方法解之
具体来说:
将
A
A
A 分块,使其包含一个
m
×
m
m \times m
m×m 非奇异矩阵
A
B
,
x
,
h
A_{B} , x , h
AB,x,h 做对应的分块
x
=
(
x
B
x
N
)
,
A
=
(
A
B
A
N
)
,
G
=
(
G
B
B
G
B
N
G
N
B
G
N
N
)
,
h
=
(
h
B
h
N
)
(3)
\tag{3} x=\left(\begin{array}{c} x_{B} \\ x_{N} \end{array}\right), A=\left(\begin{array}{c} A_{B} \\ A_{N} \end{array}\right), G=\left(\begin{array}{ll} G_{B B} & G_{B N} \\ G_{N B} & G_{N N} \end{array}\right), h=\left(\begin{array}{c} h_{B} \\ h_{N} \end{array}\right)
x=(xBxN),A=(ABAN),G=(GBBGNBGBNGNN),h=(hBhN)(3)
所以等式约束
A
⊤
x
=
b
A^{\top}x=b
A⊤x=b就转化为:
(
A
B
A
N
)
⊤
(
x
B
x
N
)
=
b
(4)
\tag{4} \left(\begin{array}{c} A_{B} \\ A_{N} \end{array}\right)^{\top} \left(\begin{array}{c} x_{B} \\ x_{N} \end{array}\right) =b
(ABAN)⊤(xBxN)=b(4)
将等式(4)写开得
A
B
x
B
+
A
N
x
N
=
b
(5)
\tag{5} \begin{gathered} A_{B}x_{B} +A_{N}x_{N}=\mathrm{b} \\ \end{gathered}
ABxB+ANxN=b(5)
将基本变量用非基本变量表示出来
x
B
=
A
B
−
1
b
−
A
B
−
1
A
N
x
N
(6)
\tag{6} x_{B}=A_{B}^{-1}b-A_{B}^{-1}A_{N}x_{N}
xB=AB−1b−AB−1ANxN(6)
这样原变量就可以写成:
x
=
(
x
B
x
N
)
=
(
A
B
−
1
b
−
A
B
−
1
A
N
x
N
x
N
)
=
(
A
B
−
1
b
0
)
+
(
−
A
B
−
1
A
N
I
)
x
N
=
x
0
+
Z
x
N
(7)
\tag{7} \begin{aligned} x=\left(\begin{array}{c} x_{B} \\ x_{N} \end{array}\right)= \left(\begin{array}{c} A_{B}^{-1}b-A_{B}^{-1}A_{N}x_{N} \\ x_{N} \end{array}\right) =\left(\begin{array}{c} A_{B}^{-1}b \\ 0 \end{array}\right)+ \left(\begin{array}{c} -A_{B}^{-1}A_{N} \\ I \end{array}\right)x_{N}=x_0+Zx_{N} \end{aligned}
x=(xBxN)=(AB−1b−AB−1ANxNxN)=(AB−1b0)+(−AB−1ANI)xN=x0+ZxN(7)
即写成了一个类似于
x
=
x
0
+
Z
x
N
x=x_0+Zx_{N}
x=x0+ZxN 的形式,这样我们将其代入目标函数,消去基本变量,把问题化为一个关于非基本变量的无约束最优化问题,最后求解无约束最优化问题的方法就能解出答案。
我们将
x
=
x
0
+
Z
x
N
x=x_0+Zx_{N}
x=x0+ZxN 带入到目标函数中得:
min
f
(
x
)
=
1
2
x
T
G
x
+
h
T
x
=
1
2
(
x
0
+
Z
x
N
)
T
G
(
x
0
+
Z
x
N
)
+
h
T
(
x
0
+
Z
x
N
)
(8)
\tag{8} \begin{aligned} \min f(x)&=\frac{1}{2} x^{T} G x+h^{T} x\\ &=\frac{1}{2}\left(x_0+Zx_{N}\right)^TG\left(x_0+Zx_{N}\right)+h^T\left(x_0+Zx_{N}\right) \end{aligned}
minf(x)=21xTGx+hTx=21(x0+ZxN)TG(x0+ZxN)+hT(x0+ZxN)(8)
除了
x
N
x_N
xN,其他都是已知的常数项 ,由于常数项不影响优化结果,所以优化过程中省略常数项。另外,找出所有
x
N
T
P
x
N
x_N^TPx_N
xNTPxN和
Q
x
N
Qx_N
QxN的形式的项,可得如下形式:
min
f
(
x
)
=
1
2
x
N
T
P
x
N
+
Q
x
N
P
=
Z
T
G
Z
Q
=
x
0
T
G
Z
+
h
T
Z
(9)
\tag{9} \begin{aligned} \min f(x)&=\frac{1}{2}x_N^TPx_N+Qx_N\\ P&=Z^TGZ\\ Q&=x_0^TGZ+h^TZ \end{aligned}
minf(x)PQ=21xNTPxN+QxN=ZTGZ=x0TGZ+hTZ(9)
注意:从式(8)到式(9)的化简形式不太严谨,这里大体是想表示通过化简是可以将式(8)化成 x N T P x N + Q x N x_N^TPx_N+Qx_N xNTPxN+QxN形式的项(这里为了偷懒,式(8)的 G G G和 h h h都没有写成分块矩阵的形式)
对式(9)求导等于零:
(
Z
T
G
Z
)
x
N
+
Q
=
0
(10)
\tag{10} \left(Z^TGZ\right)x_N+Q=0
(ZTGZ)xN+Q=0(10)
如果想要其有唯一最优解,也就必须要满足
Z
T
G
Z
Z^TGZ
ZTGZ 为正定。
2.2 Lagrange法
等式约束二次规划的Lagrange函数为
L
(
x
,
λ
)
=
1
2
x
T
G
x
+
h
T
x
+
λ
(
A
T
x
−
b
)
(11)
\tag{11} L(x, \lambda)=\frac{1}{2} x^{T} G x+h^{T} x+\lambda\left(A^{T} x-b\right)
L(x,λ)=21xTGx+hTx+λ(ATx−b)(11)
其中
λ
\lambda
λ称为Lagrange乘数,正负皆有可能。Lagrange乘数法将原本的约束优化问题转换成等价的无约束优化问题
min
x
,
λ
L
(
x
,
λ
)
(12)
\tag{12} \min _{x, \lambda} L(x, \lambda)
x,λminL(x,λ)(12)
计算
L
L
L 对
x
x
x 与
λ
\lambda
λ 的偏导数并设为零,可得最优解的必要条件:
{
∂
L
∂
x
=
G
x
+
h
+
λ
A
=
0
——定常方程式
∂
L
∂
λ
=
A
T
x
−
b
=
0
——约束条件
(13)
\tag{13} \left\{\begin{array}{l} \frac{\partial L}{\partial x}=G x+h+\lambda A=0 \quad\text{——定常方程式}\\ \\ \frac{\partial L}{\partial \lambda}=A^{T} x-b=0 \quad\text{——约束条件} \end{array}\right.
⎩
⎨
⎧∂x∂L=Gx+h+λA=0——定常方程式∂λ∂L=ATx−b=0——约束条件(13)
表示为方程组:
[
G
A
A
T
0
]
[
x
λ
]
=
[
−
h
b
]
(14)
\tag{14} \left[\begin{array}{cc} G & A \\ A^{T} & 0 \end{array}\right]\left[\begin{array}{l} x \\ \lambda \end{array}\right]=\left[\begin{array}{r} -h \\ b \end{array}\right]
[GATA0][xλ]=[−hb](14)
这样将这个方程组求解之后就可以求得最优解。
2.3 变量消去 vs Lagrange法
根据等式(10)和(14)的维度关系,变量消去法其实是转化成了一个 n − m n-m n−m维的问题,也就是说求解 n − m n-m n−m个方程组就能解决这个问题。而 Lagrange法是将其转化成一个 n + m n+m n+m维的问题,即 n n n个变量, m m m个乘子。
如果建模建出来的问题就只需要求解一次等式二次规划问题,那么哪一个其实都可以求解,如果维数太大,建议用变量消去法。
变量消去法很直观,使用非基变量表示基变量,但是由于需要计算 A B A_B AB的逆,当 A B A_B AB接近奇异时会导致误差很大.
3. 不等式约束二次规划问题
本节主要来自参考资料4.
3.1 Lagrange乘数法与KKT条件
1. 只有不等式约束的一般形式
先考虑只有不等式约束的一般形式:
min
f
(
x
)
s.t.
g
(
x
)
≤
0.
\begin{array}{ll} \min & f(\mathbf{x}) \\ \text { s.t. } & g(\mathbf{x}) \leq 0 . \end{array}
min s.t. f(x)g(x)≤0.
约束不等式
g
(
x
)
≤
0
g(\mathbf{x}) \leq 0
g(x)≤0 称为原始可行性(primal feasibility),据此我们定义可行域(feasible region)
K = { x ∈ R n ∣ g ( x ) ≤ 0 } K=\{\mathbf{x} \in \mathbb{R}^{n} \mid g(\mathbf{x}) \leq 0\} K={x∈Rn∣g(x)≤0}
假设 x ⋆ \mathbf{x}^{\star} x⋆ 为满足约束条件的最佳解,分开两种情况讨论:
- g ( x ⋆ ) < 0 g\left(\mathbf{x}^{\star}\right)<0 g(x⋆)<0 ,最佳解位于 K K K 的内部,称为内部解(interior solution),这时约束条件是无效的 (inactive);
- g ( x ⋆ ) = 0 g\left(\mathbf{x}^{\star}\right)=0 g(x⋆)=0 ,最佳解落在 K K K 的边界,称为边界解(boundary solution),此时约束条件是有 效的(active)。
这两种情况的最佳解具有不同的必要条件。
- 内部解: 在约束条件无效的情形下, g ( x ) g(\mathbf{x}) g(x) 不起作用,约束优化问题退化为无约束优化问题, 因此驻点 x ⋆ \mathbf{x}^{\star} x⋆ 满足 ∇ f = 0 \nabla f=\mathbf{0} ∇f=0 且 λ = 0 \lambda=0 λ=0 。
- 边界解:在约束条件有效的情形下,约束不等式变成等式 g ( x ) = 0 g(\mathbf{x})=0 g(x)=0 ,这与前述Lagrange乘数法的情况相同。 我们可以证明驻点 x ⋆ \mathbf{x}^{\star} x⋆ 发生于 ∇ f ∈ span ∇ g \nabla f \in \operatorname{span}\nabla g ∇f∈span∇g (span是生成子空间),换句话说,存在 λ \lambda λ 使得 ∇ f = − λ ∇ g \nabla f=-\lambda \nabla g ∇f=−λ∇g ,但这里 λ \lambda λ 的正负号是有其意义的。因为我们希望最小化 f f f ,梯度 ∇ f \nabla f ∇f (函数 f f f 在点 x \mathbf{x} x 的最陡上升方向)应该指向可行域 K K K 的内部(因为你的最优解最小值是在边界取得的),但 ∇ g \nabla g ∇g 指向 K K K 的外部(即 g ( x ) > 0 g(\mathbf{x})>0 g(x)>0 的区域,因为你的约束是小于等于 0 ),因此 λ ≥ 0 \lambda \geq 0 λ≥0,称为对偶可行性(dual feasibility)。
因此,不论是内部解或边界解,
λ
g
(
x
)
=
0
\lambda g(\mathbf{x})=0
λg(x)=0 恒成立,称为互补松弛性(complementary slackness)。整合上述两种情况,最佳解的必要条件包括Lagrangian函数
L
(
x
,
λ
)
L(\mathbf{x}, \lambda)
L(x,λ) 的定常方程式、原始可行性、对偶可行性,以及互补松弛性:
{
∇
x
L
=
∇
f
+
λ
∇
g
=
0
g
(
x
)
≤
0
λ
≥
0
λ
g
(
x
)
=
0.
\left\{\begin{array}{l} \begin{aligned} \nabla_{\mathbf{x}} L &=\nabla f+\lambda \nabla g=\mathbf{0} \\ g(\mathbf{x}) & \leq 0 \\ \lambda & \geq 0 \\ \lambda g(\mathbf{x}) &=0 . \end{aligned} \end{array}\right.
⎩
⎨
⎧∇xLg(x)λλg(x)=∇f+λ∇g=0≤0≥0=0.
这些条件合称为Karush-Kuhn-Tucker (KKT)条件。如果我们要最大化
f
(
x
)
f(\mathbf{x})
f(x) 且受限于
g
(
x
)
≤
0
g(\mathbf{x}) \leq 0
g(x)≤0 ,那么对偶可行性要改成
λ
≤
0
\lambda \leq 0
λ≤0 。
2. 标准约束优化
考虑标准约束优化问题(或称非线性规划):
min
f
(
x
)
s.t.
g
j
(
x
)
=
0
,
j
=
1
,
…
,
m
,
h
k
(
x
)
≤
0
,
k
=
1
,
…
,
p
.
\begin{array}{ll} \min & f(\mathbf{x}) \\ \text { s.t. } & g_{j}(\mathbf{x})=0, \quad j=1, \ldots, m, \\ & h_{k}(\mathbf{x}) \leq 0, \quad k=1, \ldots, p . \end{array}
min s.t. f(x)gj(x)=0,j=1,…,m,hk(x)≤0,k=1,…,p.
定义Lagrangian 函数
L
(
x
,
{
λ
j
}
,
{
μ
k
}
)
=
f
(
x
)
+
∑
j
=
1
m
λ
j
g
j
(
x
)
+
∑
k
=
1
p
μ
k
h
k
(
x
)
L\left(\mathbf{x},\left\{\lambda_{j}\right\},\left\{\mu_{k}\right\}\right)=f(\mathbf{x})+\sum_{j=1}^{m} \lambda_{j} g_{j}(\mathbf{x})+\sum_{k=1}^{p} \mu_{k} h_{k}(\mathbf{x})
L(x,{λj},{μk})=f(x)+j=1∑mλjgj(x)+k=1∑pμkhk(x)
其中
λ
j
\lambda_{j}
λj 是对应
g
j
(
x
)
=
0
g_{j}(\mathbf{x})=0
gj(x)=0 的Lagrange乘数,
μ
k
\mu_{k}
μk 是对应
h
k
(
x
)
≤
0
h_{k}(\mathbf{x}) \leq 0
hk(x)≤0 的Lagrange乘数(或称 KKT乘数)。KKT条件包括定常方程式、原始可行性、对偶可行性,以及互补松弛性,如下所示:
{
∇
x
L
=
0
g
j
(
x
)
=
0
,
j
=
1
,
…
,
m
,
h
k
(
x
)
≤
0
,
μ
k
≥
0
,
μ
k
h
k
(
x
)
=
0
,
k
=
1
,
…
,
p
.
\left\{\begin{array}{l} \begin{aligned} \nabla_{\mathbf{x}} L &=\mathbf{0} \\ g_{j}(\mathbf{x}) &=0, \quad j=1, \ldots, m, \\ h_{k}(\mathbf{x}) & \leq 0, \\ \mu_{k} & \geq 0, \\ \mu_{k} h_{k}(\mathbf{x}) &=0, \quad k=1, \ldots, p . \end{aligned} \end{array}\right.
⎩
⎨
⎧∇xLgj(x)hk(x)μkμkhk(x)=0=0,j=1,…,m,≤0,≥0,=0,k=1,…,p.
3. 示例
-
考虑这个问题
{ min x 1 2 + x 2 2 s.t. x 1 + x 2 = 1 x 2 ≤ α \left\{\begin{array}{ll} \min & x_{1}^{2}+x_{2}^{2} \\ \text { s.t. } & x_{1}+x_{2}=1 \\ & x_{2} \leq \alpha \end{array}\right. ⎩ ⎨ ⎧min s.t. x12+x22x1+x2=1x2≤α
其中 ( x 1 , x 2 ) ∈ R 2 , α \left(x_{1}, x_{2}\right) \in \mathbb{R}^{2}, \alpha (x1,x2)∈R2,α 为实数。写出Lagrangigan函数
L ( x 1 , x 2 , λ , μ ) = x 1 2 + x 2 2 + λ ( 1 − x 1 − x 2 ) + μ ( x 2 − α ) L\left(x_{1}, x_{2}, \lambda, \mu\right)=x_{1}^{2}+x_{2}^{2}+\lambda\left(1-x_{1}-x_{2}\right)+\mu\left(x_{2}-\alpha\right) L(x1,x2,λ,μ)=x12+x22+λ(1−x1−x2)+μ(x2−α)
KKT 方程组如下:
{ ∂ L ∂ x i = 0 , i = 1 , 2 x 1 + x 2 = 1 x 2 − α ≤ 0 μ ≥ 0 μ ( x 2 − α ) = 0 \left\{\begin{array}{l} \begin{aligned} \frac{\partial L}{\partial x_{i}} &=0, \quad i=1,2 \\ x_{1}+x_{2} &=1 \\ x_{2}-\alpha & \leq 0 \\ \mu & \geq 0 \\ \mu\left(x_{2}-\alpha\right) &=0 \end{aligned} \end{array}\right. ⎩ ⎨ ⎧∂xi∂Lx1+x2x2−αμμ(x2−α)=0,i=1,2=1≤0≥0=0
求偏导可得
{ ∂ L ∂ x 1 = 2 x 1 − λ = 0 ∂ L ∂ x 2 = 2 x 2 − λ + μ = 0 \left\{\begin{array}{l} \begin{aligned} \frac{\partial L}{\partial x_{1}}&=2 x_{1}-\lambda=0\\ \frac{\partial L}{\partial x_{2}}&=2 x_{2}-\lambda+\mu=0 \end{aligned} \end{array}\right. ⎩ ⎨ ⎧∂x1∂L∂x2∂L=2x1−λ=0=2x2−λ+μ=0分别解出
{ x 1 = λ 2 x 2 = λ 2 − μ 2 \left\{\begin{array}{l} \begin{aligned} x_{1}&=\frac{\lambda}{2}\\ x_{2}&=\frac{\lambda}{2}-\frac{\mu}{2} \end{aligned} \end{array}\right. ⎩ ⎨ ⎧x1x2=2λ=2λ−2μ
代入约束等式
x 1 + x 2 = λ − μ 2 = 1 x_{1}+x_{2}=\lambda-\frac{\mu}{2}=1 x1+x2=λ−2μ=1合并上面结果,
{ x 1 = μ 4 + 1 2 x 2 = − μ 4 + 1 2 \left\{\begin{array}{l} \begin{aligned} x_{1}&=\frac{\mu}{4}+\frac{1}{2}\\ x_{2}&=-\frac{\mu}{4}+\frac{1}{2} \end{aligned} \end{array}\right. ⎩ ⎨ ⎧x1x2=4μ+21=−4μ+21最后再加入约束不等式
− μ 4 + 1 2 ≤ α -\frac{\mu}{4}+\frac{1}{2} \leq \alpha −4μ+21≤α
即 μ ≥ 2 − 4 α \mu \geq 2-4 \alpha μ≥2−4α底下分开三种情况讨论。
- α > 1 2 \alpha>\frac{1}{2} α>21 : 不难验证 μ = 0 > 2 − 4 α \mu=0>2-4 \alpha μ=0>2−4α 满足所有的KKT条件,约束不等式是无效的, x 1 ⋆ = x 2 ⋆ = 1 2 x_{1}^{\star}=x_{2}^{\star}=\frac{1}{2} x1⋆=x2⋆=21 是内部解,目标函数的极小值是 1 2 \frac{1}{2} 21 。
- α = 1 2 \alpha=\frac{1}{2} α=21 : 如同 1 , μ = 0 = 2 − 4 α \mu=0=2-4 \alpha μ=0=2−4α 满足所有的KKT条件, x 1 ⋆ = x 2 ⋆ = 1 2 x_{1}^{\star}=x_{2}^{\star}=\frac{1}{2} x1⋆=x2⋆=21 是边界解,因为 x 2 ⋆ = α x_{2}^{\star}=\alpha x2⋆=α 。
- α < 1 2 \alpha<\frac{1}{2} α<21 : 这时约束不等式是有效的, μ = 2 − 4 α > 0 \mu=2-4 \alpha>0 μ=2−4α>0 ,则 x 1 ⋆ = 1 − α x_{1}^{\star}=1-\alpha x1⋆=1−α 且 x 2 ⋆ = α x_{2}^{\star}=\alpha x2⋆=α ,目 标函数的极小值是 ( 1 − α ) 2 + α 2 (1-\alpha)^{2}+\alpha^{2} (1−α)2+α2 。
-
考虑优化问题
min f ( x ) = − 2 x 1 2 − x 1 2 s.t. x 1 2 + x 2 2 − 2 = 0 − x 1 + x 2 ≥ 0 x 1 ≥ 0 , x 2 ≥ 0 (1) \tag{1} \begin{aligned} &\operatorname{min }f(\mathrm{x})=-2 \mathrm{x}_1^2-\mathrm{x}_1^2 \\ &\text { s.t. } \quad \mathrm{x}_1^2+\mathrm{x}_2^2-2=0 \\ &\quad-\mathrm{x}_1+\mathrm{x}_2 \geq 0 \\ &\quad \mathrm{x}_1 \geq 0, \mathrm{x}_2 \geq 0 \end{aligned} minf(x)=−2x12−x12 s.t. x12+x22−2=0−x1+x2≥0x1≥0,x2≥0(1)
试验证 x ∗ = ( 1 , 1 ) T x^*=(1,1)^{\mathrm{T}} x∗=(1,1)T 为 K K T \mathrm{KKT} KKT 点,并求出问题的 K K T \mathrm{KKT} KKT 对。
【解】记
f ( x ) = − 2 x 1 2 − x 1 2 g ( x ) = x 1 2 + x 2 2 − 2 h 1 ( x ) = x 1 − x 2 h 2 ( x ) = − x 1 h 3 ( x ) = − x 2 (2) \tag{2} \begin{aligned} \mathrm{f}(\mathrm{x}) &=-2 \mathrm{x}_1^2-\mathrm{x}_1^2 \\ \mathrm{~g}(\mathrm{x}) &=\mathrm{x}_1^2+\mathrm{x}_2^2-2 \\ \mathrm{~h}_1(\mathrm{x}) &=\mathrm{x}_1-\mathrm{x}_2 \\ \mathrm{~h}_2(\mathrm{x}) &=-\mathrm{x}_1 \\ \mathrm{~h}_3(\mathrm{x}) &=-\mathrm{x}_2 \end{aligned} f(x) g(x) h1(x) h2(x) h3(x)=−2x12−x12=x12+x22−2=x1−x2=−x1=−x2(2)求梯度(都使用向量的形式写法,更紧凑),得到
∇ f ( x ) = [ − 4 x 1 − 2 x 2 ] , ∇ g ( x ) = [ 2 x 1 2 x 2 ] ∇ h 1 ( x ) = [ 1 − 1 ] , ∇ h 2 ( x ) = [ − 1 0 ] , ∇ h 3 ( x ) = [ 0 − 1 ] (3) \tag{3} \begin{aligned} \nabla \mathrm{f}(\mathrm{x})=\left[\begin{array}{c} -4 \mathrm{x}_1 \\ -2 \mathrm{x}_2 \end{array}\right], \quad \nabla \mathrm{g}(\mathrm{x})=\left[\begin{array}{l} 2 \mathrm{x}_1 \\ 2 \mathrm{x}_2 \end{array}\right] \\ \nabla \mathrm{h}_1(\mathrm{x})=\left[\begin{array}{c} 1 \\ -1 \end{array}\right], \quad \nabla \mathrm{h}_2(\mathrm{x})=\left[\begin{array}{l} -1 \\ 0 \end{array}\right], \quad \nabla \mathrm{h}_3(\mathrm{x})=\left[\begin{array}{l} 0 \\ -1 \end{array}\right] \end{aligned} ∇f(x)=[−4x1−2x2],∇g(x)=[2x12x2]∇h1(x)=[1−1],∇h2(x)=[−10],∇h3(x)=[0−1](3)
把 x ∗ = ( 1 , 1 ) T x^*=(1,1)^{\mathrm{T}} x∗=(1,1)T 代入上面5个式子,由 K K T \mathrm{KKT} KKT 条件有,{ − 4 + 2 λ + μ 1 − μ 2 = 0 − 2 + 2 λ − μ 1 + μ 3 = 0 (4) \tag{4} \left\{\begin{array}{l} -4+2 \lambda+\mu_1-\mu_2=0 \\ -2+2 \lambda-\mu_1+\mu_3=0 \end{array}\right. {−4+2λ+μ1−μ2=0−2+2λ−μ1+μ3=0(4)
因为
{ μ 2 h 2 ( x ) = 0 μ 3 h 3 ( x ) = 0 ⇒ { μ 2 ∗ = 0 μ 3 ∗ = 0 (5) \tag{5} \left\{\begin{array} { l } { \mu _ { 2 } \mathrm { h } _ { 2 } ( { \mathrm { x } } ) = 0 } \\ { \mu _ { 3 } \mathrm { h } _ { 3 } ( { \mathrm { x } } ) = 0 } \end{array} \Rightarrow \left\{\begin{array}{l} \mu_2^*=0 \\ \mu_3^*=0 \end{array}\right.\right. {μ2h2(x)=0μ3h3(x)=0⇒{μ2∗=0μ3∗=0(5)
所以(4)变为
{ − 4 + 2 λ + μ 1 = 0 − 2 + 2 λ − μ 1 = 0 (6) \tag{6} \left\{\begin{array}{l} -4+2 \lambda+\mu_1=0 \\ -2+2 \lambda-\mu_1=0 \end{array}\right. {−4+2λ+μ1=0−2+2λ−μ1=0(6)
求解 ( 6 ) (6) (6) 式,得到
{ λ ∗ = 1.5 μ 1 ∗ = 1 (7) \tag{7} \left\{\begin{array}{l} \lambda^*=1.5 \\ \mu_1^*=1 \end{array}\right. {λ∗=1.5μ1∗=1(7)
这表明 x ∗ \mathrm{x}^* x∗ 是 K K T \mathrm{KKT} KKT 点, ( x ∗ , ( λ ∗ , μ ∗ ) ) \left(\mathrm{x}^*,\left(\lambda^*, \mu^*\right)\right) (x∗,(λ∗,μ∗)) 是 K K T \mathrm{KKT} KKT 对,其中, λ ∗ = 1.5 , μ ∗ = ( 1 , 0 , 0 ) T \lambda^*=1.5 , \mu^*=(1,0,0)^{\mathrm{T}} λ∗=1.5,μ∗=(1,0,0)T 。
分割线,下面待更新
3.2 内点法
内点法引入障碍函数将约束条件转化为目标函数,生成等价于原模型的优化问题。