无约束优化
首先给出一些基本概念定义:
- 凸集: 欧式空间中,集合中任意两点的连线都在集合中,我们就说这个集合是凸集;
- 凸函数: 对于任意属于[0,1]的a和任意属于凸集的两点x, y,有 f ( a x + ( 1 − a ) y ) ≤ a ∗ f ( x ) + ( 1 − a ) ∗ f ( y ) f( ax + (1-a)y ) \le a * f(x) + (1-a) * f(y) f(ax+(1−a)y)≤a∗f(x)+(1−a)∗f(y),几何上的直观理解就是两点连线上某点的函数值,大于等于两点之间某点的函数值。凸函数的任一局部极小点也是全局极小点;
- 半正定矩阵: 特征值大于0的实对称矩阵;
- 半正定矩阵的充要条件: 行列式(n阶顺序主子式)等于0,行列式的i阶顺序主子式大于等于0, 1 ≤ i ≤ n − 1 1\le i \le n-1 1≤i≤n−1;
- 凸函数的充要条件: 如果 f ( x ) f(x) f(x)在开凸集 S S S上有二阶连续偏导数,且 f ( x ) f(x) f(x)的海塞矩阵(二阶偏导矩阵)在 S S S上处处半正定,则 f ( x ) f(x) f(x)为 S S S上的凸函数。
为了避免函数陷入局部最优,在平时的建模中,尽量使用凸函数最为优化问题的目标函数。针对无约束优化问题的凸函数,可直接通过 f ( x ) f(x) f(x)梯度等于0来求全局极值点。
带约束优化
现考虑如下形式的优化问题:
{
min
f
(
x
)
s.t.
g
i
(
x
)
<
0
,
i
=
1
,
2
,
…
,
q
h
j
(
x
)
=
0
,
j
=
q
+
1
,
…
,
m
x
∈
D
\left\{\begin{array}{l}\min f(x) \\ \text { s.t. } g_{i}(x)<0, i=1,2, \ldots, q \\ h_{j}(x)=0, j=q+1, \ldots, m \\ x \in D\end{array}\right.
⎩⎪⎪⎨⎪⎪⎧minf(x) s.t. gi(x)<0,i=1,2,…,qhj(x)=0,j=q+1,…,mx∈D
其中
f
(
x
)
f(x)
f(x) 是目标函数,
g
(
x
)
g(x)
g(x)为不等式约束,
h
(
x
)
h(x)
h(x)为等式约束。
若
f
(
x
)
,
g
(
x
)
,
h
(
x
)
f(x),g(x),h(x)
f(x),g(x),h(x)均为线性函数,则该优化问题为线性优化问题;
若任意一个函数为非线性函数,则成为非线性规划;
若目标函数为二次函数,约束全为线性函数,则称为二次规划;
若
f
(
x
)
f(x)
f(x)为凸函数,
g
(
x
)
g(x)
g(x)为凸函数,
h
(
x
)
h(x)
h(x)为线性函数,则该问题为凸优化。注意这里的不等式约束
g
(
x
)
≤
0
g(x)\le 0
g(x)≤0则要求
g
(
x
)
g(x)
g(x)为凸函数,若
g
(
x
)
≥
0
g(x)\ge 0
g(x)≥0则要求
g
(
x
)
g(x)
g(x)为凹函数。
凸优化的任意局部极值点也是全局极值点,局部最优也是全局最优。
等式约束
先举例说明带等式约束的问题求解方法。
目标函数
f
(
x
)
=
x
1
+
x
2
f(x)=x_1+x_2
f(x)=x1+x2,等式约束
h
(
x
)
=
x
1
2
+
x
2
2
−
2
h(x)=x_1^2+x_2^2-2
h(x)=x12+x22−2,求解极值点。
f
(
x
)
f(x)
f(x)在二维平面上的等高线就是一条条斜率相同的直线,
h
(
x
)
=
0
h(x)=0
h(x)=0在二维平面上的等高线就是一个圆,如图所示:
可以明显的看出,在圆圈
h
(
x
)
h(x)
h(x)的限制下,直线
f
(
x
)
f(x)
f(x)的最小值为-2,在左下角直线
x
1
+
x
2
=
2
x_1+x_2=2
x1+x2=2和圆的交点上。
不考虑圆
h
(
x
)
h(x)
h(x)的限制时,
f
(
x
)
f(x)
f(x)要得到极小值,需要往
f
(
x
)
f(x)
f(x)的负梯度(下降最快的方向)方向走,如下左图蓝色箭头。
如果考虑圆
h
(
x
)
h(x)
h(x)的限制,要得到极小值,需要沿着圆的切线方向走,如下右图红色粗箭头。注意这里的方向不是
h
(
x
)
h(x)
h(x)的梯度,而是正交于
h
(
x
)
h(x)
h(x)的梯度,
h
(
x
)
h(x)
h(x)梯度如下右图的红色细箭头。
在极小值点,
f
(
x
)
f(x)
f(x)和
h
(
x
)
h(x)
h(x)的等高线是相切的。
容易发现,在关键的极小值点处,
f
(
x
)
f(x)
f(x)的负梯度和h(x)的梯度在同一直线上,如下图左下方critical point的蓝色和红色箭头所示。
注意图中所示是同向的,但是这里并不一定是同向,有可能反向(因为等式约束
h
(
x
)
=
0
h(x)=0
h(x)=0,把
h
(
x
)
h(x)
h(x)变成
−
h
(
x
)
-h(x)
−h(x)求解是一样的,这个时候
h
(
x
)
h(x)
h(x)的梯度就相反了)
显然,要取得极小值点,
f
(
x
)
f(x)
f(x)和
h
(
x
)
h(x)
h(x)的梯度要在同一条线上,即
∇
x
f
(
x
∗
)
=
μ
∇
x
h
(
x
∗
)
\nabla_{\mathbf{x}} f\left(\mathbf{x}^{*}\right)=\mu \nabla_{\mathbf{x}} h\left(\mathbf{x}^{*}\right)
∇xf(x∗)=μ∇xh(x∗)。
综上,只要满足上面式子,并且
h
(
x
)
=
0
h(x)=0
h(x)=0,得到的
x
x
x就是要求的极小值点(或极大值点,本文只讨论极小值点)。这也就引出了经典的求解带约束问题的优化方法:拉格朗日乘子法
原问题:
min
x
∈
R
2
f
(
x
)
\min _{\mathbf{x} \in \mathbb{R}^{2}} f(\mathbf{x})
minx∈R2f(x) subject to
h
(
x
)
=
0
h(\mathbf{x})=0
h(x)=0
拉格朗日乘子:
L
(
x
,
μ
)
=
f
(
x
)
+
μ
h
(
x
)
\mathcal{L}(\mathbf{x}, \mu)=f(\mathbf{x})+\mu h(\mathbf{x})
L(x,μ)=f(x)+μh(x)
(1)
∇
x
L
(
x
∗
,
μ
∗
)
=
0
\nabla_{\mathbf{x}} \mathcal{L}\left(\mathbf{x}^{*}, \mu^{*}\right)=\mathbf{0}
∇xL(x∗,μ∗)=0
(2)
∇
μ
L
(
x
∗
,
μ
∗
)
=
0
\nabla_{\mu} \mathcal{L}\left(\mathbf{x}^{*}, \mu^{*}\right)=0
∇μL(x∗,μ∗)=0
注意:优化问题是凸优化时,则通过上面两个条件得到的就是极小值点,而且是全局最小;否则,这连个条件只是极值点的必要条件,需要附加一个正定的条件才能变成充要条件,如下:
L
(
x
,
μ
)
=
f
(
x
)
+
μ
h
(
x
)
\mathcal{L}(\mathbf{x}, \mu)=f(\mathbf{x})+\mu h(\mathbf{x})
L(x,μ)=f(x)+μh(x)
(1)
∇
x
L
(
x
∗
,
μ
∗
)
=
0
\nabla_{\mathbf{x}} \mathcal{L}\left(\mathbf{x}^{*}, \mu^{*}\right)=\mathbf{0}
∇xL(x∗,μ∗)=0
(2)
∇
μ
L
(
x
∗
,
μ
∗
)
=
0
\nabla_{\mu} \mathcal{L}\left(\mathbf{x}^{*}, \mu^{*}\right)=0
∇μL(x∗,μ∗)=0
(3)
y
t
(
∇
x
x
2
L
(
x
∗
,
μ
∗
)
)
y
≥
0
∀
y
\mathbf{y}^{t}\left(\nabla_{\mathbf{x x}}^{2} \mathcal{L}\left(\mathbf{x}^{*}, \mu^{*}\right)\right) \mathbf{y} \geq 0 \quad \forall \mathbf{y}
yt(∇xx2L(x∗,μ∗))y≥0∀y s.t.
∇
x
h
(
x
∗
)
t
y
=
0
\nabla_{\mathbf{x}} h\left(\mathbf{x}^{*}\right)^{t} \mathbf{y}=0
∇xh(x∗)ty=0
不等式约束
对于不等式约束 g ( x ) ≤ 0 g(x)\le 0 g(x)≤0,和等式约束 h ( x ) = 0 h(x)=0 h(x)=0不一样, h ( x ) = 0 h(x)=0 h(x)=0可以在平面上画出一条等高线,而 g ( x ) ≤ 0 g(x) \le 0 g(x)≤0是一个区域,很多个等高线堆叠而成的一块区域,我们把这块区域称为可行域。不等式约束分两种情况来讨论,第一种是(不考虑可行域限制时的)极小值点落在可行域内(不包含边界),第二种是(不考虑可行域限制时的)极小值点落在可行域外(包含边界)。下面举两个例子来解释这两种情况,然后总结两种情况给出转换求解。
极值点落在可行域内(不包含边界):
考虑目标函数
f
(
x
)
=
x
1
2
+
x
2
2
f(x)=x^2_1+x^2_2
f(x)=x12+x22,不等值约束
g
(
x
)
=
x
1
2
+
x
2
2
−
1
g(x)=x^2_1+x^2_2−1
g(x)=x12+x22−1,显然f(x)的极小值为原点
(
0
,
0
)
(0,0)
(0,0),落在可行域内。可行域以原点为圆心,半径为1。这种情况约束不起作用,考虑极小值点
x
∗
x^*
x∗,这个时候,
g
(
x
∗
)
<
0
g(x^*) < 0
g(x∗)<0,
f
(
x
∗
)
f(x^*)
f(x∗)的梯度等于0。
极值点落在可行域外(包含边界)
考虑目标函数
f
(
x
)
=
(
x
1
−
1.1
)
2
+
(
x
2
+
1.1
)
2
f(x)=(x_1−1.1)^2+(x_2+1.1)^2
f(x)=(x1−1.1)2+(x2+1.1)2 ,不等值约束
g
(
x
)
=
x
1
2
+
x
2
2
−
1
g(x)=x^2_1+x^2_2−1
g(x)=x12+x22−1,显然
f
(
x
)
f(x)
f(x)的极小值为原点
(
1.1
,
−
1.1
)
(1.1, -1.1)
(1.1,−1.1),落在可行域外。可行域以原点为圆心,半径为1。
这种情况约束起作用,要考虑求解
f
(
x
)
f(x)
f(x)在可行域内的极小值点。
对于
f
(
x
)
f(x)
f(x)而言要沿着
f
(
x
)
f(x)
f(x)的负梯度方向走,才能走到极小值点,如下图的蓝色箭头。
这个时候
g
(
x
)
g(x)
g(x)的梯度往区域外发散,如下图红色箭头。
显然,走到极小值点的时候,
g
(
x
)
g(x)
g(x)的梯度和
f
(
x
)
f(x)
f(x)的负梯度同向。因为极小值点在边界上,这个时候
g
(
x
)
g(x)
g(x)等于0。
总结
极小值点落在可行域内(不包含边界):这个时候可行域的限制不起作用,相当于没有约束,直接f(x)的梯度等于0求解,这个时候
g
(
x
极
小
值
点
)
<
0
g(x极小值点)<0
g(x极小值点)<0(因为落在可行域内),即:
(1)
g
(
x
∗
)
<
0
g\left(\mathbf{x}^{*}\right)<0
g(x∗)<0
(2)
∇
x
f
(
x
∗
)
=
0
\nabla_{\mathbf{x}} f\left(\mathbf{x}^{*}\right)=\mathbf{0}
∇xf(x∗)=0
极小值点落在可行域外(包含边界):可行域的限制起作用,极小值点应该落在可行域边界上即
g
(
x
)
=
0
g(x)=0
g(x)=0,类似于等值约束,此时有
g
(
x
)
g(x)
g(x)的梯度和
f
(
x
)
f(x)
f(x)的负梯度同向,即:
(1)
g
(
x
∗
)
=
0
g\left(\mathbf{x}^{*}\right)=0
g(x∗)=0
(2)
−
∇
x
f
(
x
∗
)
=
λ
∇
x
g
(
x
∗
)
-\nabla_{\mathbf{x}} f\left(\mathbf{x}^{*}\right)=\lambda \nabla_{\mathbf{x}} g\left(\mathbf{x}^{*}\right)
−∇xf(x∗)=λ∇xg(x∗) with
λ
>
0
\lambda>0
λ>0
总结以上两种情况,可以构造拉格朗日函数来转换求解问题。
对于不等式约束的优化,需要满足三个条件,满足这三个条件的解x*就是极小值点。
这三个条件就是著名的KKT条件,它整合了上面两种情况的条件。
优化问题:
min
x
∈
R
2
f
(
x
)
\min _{\mathbf{x} \in \mathbb{R}^{2}} f(\mathbf{x})
minx∈R2f(x) subject to
g
(
x
)
≤
0
g(\mathbf{x}) \leq 0
g(x)≤0
拉格朗日乘子:
L
(
x
,
λ
)
=
f
(
x
)
+
λ
g
(
x
)
\mathcal{L}(\mathbf{x}, \lambda)=f(\mathbf{x})+\lambda g(\mathbf{x})
L(x,λ)=f(x)+λg(x)
(1)
∇
x
L
(
x
∗
,
λ
∗
)
=
0
\nabla_{\mathbf{x}} \mathcal{L}\left(\mathbf{x}^{*}, \lambda^{*}\right)=\mathbf{0}
∇xL(x∗,λ∗)=0
(2)
λ
∗
≥
0
\lambda^{*} \geq 0
λ∗≥0
(3)
λ
∗
g
(
x
∗
)
=
0
\lambda^{*} g\left(\mathbf{x}^{*}\right)=0
λ∗g(x∗)=0
特别注意:优化问题是凸优化的话,KKT条件就是极小值点(而且是全局极小)存在的充要条件。
不是凸优化的话,KKT条件只是极小值点的必要条件,不是充分条件,KKT点是驻点,是可能的极值点。也就是说,就算求得的满足KKT条件的点,也不一定是极小值点,只是说极小值点一定满足KKT条件。
不是凸优化的话,还需要附加多一个正定的条件才能变成充要条件,如下图所示。
优化问题:
min
x
∈
R
2
f
(
x
)
\min _{\mathbf{x} \in \mathbb{R}^{2}} f(\mathbf{x})
minx∈R2f(x) subject to
g
(
x
)
≤
0
g(\mathbf{x}) \leq 0
g(x)≤0
拉格朗日乘子:
L
(
x
,
λ
)
=
f
(
x
)
+
λ
g
(
x
)
\mathcal{L}(\mathbf{x}, \lambda)=f(\mathbf{x})+\lambda g(\mathbf{x})
L(x,λ)=f(x)+λg(x)
(1)
∇
x
L
(
x
∗
,
λ
∗
)
=
0
\nabla_{\mathbf{x}} \mathcal{L}\left(\mathbf{x}^{*}, \lambda^{*}\right)=\mathbf{0}
∇xL(x∗,λ∗)=0
(2)
λ
∗
≥
0
\lambda^{*} \geq 0
λ∗≥0
(3)
λ
∗
g
(
x
∗
)
=
0
\lambda^{*} g\left(\mathbf{x}^{*}\right)=0
λ∗g(x∗)=0
(4)
g
(
x
∗
)
≤
0
g\left(\mathbf{x}^{*}\right) \leq 0
g(x∗)≤0
(5) Plus positive definite constraints on
∇
x
x
L
(
x
∗
,
λ
∗
)
\nabla_{\mathrm{xx}} \mathcal{L}\left(\mathrm{x}^{*}, \lambda^{*}\right)
∇xxL(x∗,λ∗).
优化约束总结
优化问题:
min
x
∈
R
2
f
(
x
)
\min _{\mathbf{x} \in \mathbb{R}^{2}} f(\mathbf{x})
minx∈R2f(x)
约束条件:
h
i
(
x
)
=
0
h_{i}(\mathbf{x})=0
hi(x)=0 for
i
=
1
,
…
,
l
i=1, \ldots, l
i=1,…,l and
g
j
(
x
)
≤
0
g_{j}(\mathbf{x}) \leq 0
gj(x)≤0 for
j
=
1
,
…
,
m
j=1, \ldots, m
j=1,…,m
拉格朗日乘子:
L
(
x
,
μ
,
λ
)
=
f
(
x
)
+
μ
t
h
(
x
)
+
λ
t
g
(
x
)
\mathcal{L}(\mathbf{x}, \boldsymbol{\mu}, \boldsymbol{\lambda})=f(\mathbf{x})+\boldsymbol{\mu}^{t} \mathbf{h}(\mathbf{x})+\boldsymbol{\lambda}^{t} \mathbf{g}(\mathbf{x})
L(x,μ,λ)=f(x)+μth(x)+λtg(x)
(1)
∇
x
L
(
x
∗
,
μ
∗
,
λ
∗
)
=
0
\nabla_{\mathbf{x}} \mathcal{L}\left(\mathrm{x}^{*}, \boldsymbol{\mu}^{*}, \boldsymbol{\lambda}^{*}\right)=\mathbf{0}
∇xL(x∗,μ∗,λ∗)=0
(2)
λ
j
∗
≥
0
\lambda_{j}^{*} \geq 0
λj∗≥0 for
j
=
1
,
…
,
m
j=1, \ldots, m
j=1,…,m
(3)
λ
j
∗
g
j
(
x
∗
)
=
0
\lambda_{j}^{*} g_{j}\left(\mathbf{x}^{*}\right)=0
λj∗gj(x∗)=0 for
j
=
1
,
…
,
m
j=1, \ldots, m
j=1,…,m
(4)
g
j
(
x
∗
)
≤
0
g_{j}\left(\mathbf{x}^{*}\right) \leq 0
gj(x∗)≤0 for
j
=
1
,
…
,
m
j=1, \ldots, m
j=1,…,m
(5)
h
(
x
∗
)
=
0
\mathbf{h}\left(\mathbf{x}^{*}\right)=\mathbf{0}
h(x∗)=0
(6) Plus positive definite constraints on
∇
x
x
L
(
x
∗
,
λ
∗
)
\nabla_{\mathrm{xx}} \mathcal{L}\left(\mathrm{x}^{*}, \boldsymbol{\lambda}^{*}\right)
∇xxL(x∗,λ∗).
拉格朗日对偶性
在约束优化问题中,常常用拉格朗日对偶性将原始问题转为对偶问题,通过解对偶问题来得到原始问题的解;
为什么要用对偶?
(1)满足某些条件时,对偶问题等于原问题的解(强对偶)
(2)无论原始问题是否是凸的,对偶问题都是凸优化问题
显然,在某些情况下,直接对对偶问题求解可以得到原问题的解,而且对偶问题是凸优化,易于求解。所以利用对偶来求解是很有用的。
原始问题:
{
min
f
(
x
)
s.t.
g
i
(
x
)
≤
0
,
i
=
1
,
2
,
⋯
,
q
h
j
(
x
)
=
0
,
j
=
q
+
1
,
⋯
,
m
x
∈
D
\begin{cases}\min & f(x) \\ \text { s.t. } & g_{i}(x) \leq 0, \quad i=1,2, \cdots, q \\ & h_{j}(x)=0, \quad j=q+1, \cdots, m \\ & x \in D\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧min s.t. f(x)gi(x)≤0,i=1,2,⋯,qhj(x)=0,j=q+1,⋯,mx∈D
拉格朗日函数:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
q
α
i
g
i
(
x
)
+
∑
j
=
q
+
1
m
β
j
h
j
(
x
)
L(x, \alpha, \beta)=f(x)+\sum_{i=1}^{q} \alpha_{i} g_{i}(x)+\sum_{j=q+1}^{m} \beta_{j} h_{j}(x)
L(x,α,β)=f(x)+∑i=1qαigi(x)+∑j=q+1mβjhj(x)
考虑函数:
Θ
P
(
x
)
=
max
α
,
β
:
α
i
⩾
0
L
(
x
,
α
,
β
)
\Theta_{P}(x)=\max _{\alpha, \beta: \alpha_{i} \geqslant 0} L(x, \alpha, \beta)
ΘP(x)=maxα,β:αi⩾0L(x,α,β)
显然满足约束时函数等于
f
(
x
)
f(x)
f(x),不满足约束时函数等于正无穷,容易得到
Θ
P
(
x
)
=
{
f
(
x
)
,
x
satisfy constraints
+
∞
,
others
}
\Theta_{P}(x)=\left\{\begin{array}{c}f(x), x \text { satisfy constraints } \\ +\infty, \text { others }\end{array}\right\}
ΘP(x)={f(x),x satisfy constraints +∞, others }
极小化该函数得到的
min
x
Θ
P
(
x
)
=
min
x
max
α
,
β
:
α
i
⩾
0
L
(
x
,
α
,
β
)
\min _{x} \Theta_{P}(x)=\min _{x} \max _{\alpha, \beta: \alpha_{i} \geqslant 0} L(x, \alpha, \beta)
minxΘP(x)=minxmaxα,β:αi⩾0L(x,α,β)
和原始的优化问题是等价。
同时,我们定义原始问题的最优值为
p
∗
=
min
x
Θ
P
(
x
)
p^{*}=\min _{x} \Theta_{P}(x)
p∗=minxΘP(x)
对偶问题
考虑函数
Θ
D
(
α
,
β
)
=
min
x
L
(
x
,
α
,
β
)
\Theta_{D}(\alpha, \beta)=\min _{x} L(x, \alpha, \beta)
ΘD(α,β)=minxL(x,α,β)
极大化该函数得到:
max
α
,
β
:
α
i
⩾
0
Θ
D
(
α
,
β
)
=
max
α
,
β
:
α
i
⩾
0
min
x
L
(
x
,
α
,
β
)
\max _{\alpha, \beta: \alpha_{i} \geqslant 0} \Theta_{D}(\alpha, \beta)=\max _{\alpha, \beta: \alpha_{i} \geqslant 0} \min _{x} L(x, \alpha, \beta)
maxα,β:αi⩾0ΘD(α,β)=maxα,β:αi⩾0minxL(x,α,β)
我们把这个极大化问题视为对偶问题。
同时,我们定义对偶问题的最优值为
d
∗
=
max
α
,
β
:
α
i
⩾
0
Θ
D
(
α
,
β
)
d^{*}=\max _{\alpha, \beta: \alpha_{i} \geqslant 0} \Theta_{D}(\alpha, \beta)
d∗=maxα,β:αi⩾0ΘD(α,β)
原始问题和对偶问题的关系
可以得知
d
∗
≤
p
∗
d^∗\le p^∗
d∗≤p∗,因为
p
p
p是先求最大的一块区域然后在这块区域求最小,
d
d
d是先求最小的一块区域然后在这块区域求最大,最大里面的最小,总会比最小里面的最大要大(或等于)。
如果
d
∗
≤
p
∗
d^∗\le p^∗
d∗≤p∗,称为弱对偶,对于所有优化问题都成立,这个时候我们可以得到原始问题的一个下界。
如果
d
∗
=
p
∗
d^∗= p^∗
d∗=p∗,称为强对偶,满足某些条件才成立,这时可以用解对偶问题替代原始问题。那么满足什么样的条件可以得到强对偶呢
如果原问题是一个凸优化,并且不等式约束
g
(
x
)
g(x)
g(x)是严格可行的,即存在
x
x
x对所有
i
i
i有
g
i
(
x
)
<
0
g_i(x)<0
gi(x)<0,那么强对偶成立。这里需要注意的是,这里的条件只是强对偶成立的一种情况,对于非凸的问题也有可能是强对偶。
强对偶成立时,将拉格朗日函数分别对原变量
x
x
x和对偶变量
α
α
α和
β
β
β分别求导,令导数等于零(还需要满足KKT条件),即可求解对偶问题的解,也就求得了原问题的解。
对偶求解和拉格朗日乘子法求解
对于拉格朗日乘子法求解,当原问题是凸优化的时候,考虑满足KKT的条件,对于拉格朗日函数求导等于0即可得到解。
对于对偶问题求解,转换为对偶函数求解,为了得到原始问题的解,要求强对偶,而在强对偶(不一定满足原问题凸优化)的情况下,考虑满足KKT的条件,对于拉格朗日函数求导等于0即可得到解。
当原问题是凸优化的时候,强对偶和KKT条件是互为充要条件的。