最优化笔记——对偶理论
最优化笔记,主要参考资料为《最优化:建模、算法与理论》
文章目录
在最优化问题中,常常涉及到一个原始问题(Primal Problem)和一个与之对应的对偶问题(Dual Problem)。原始问题是一个要求最小化或最大化目标函数的问题,同时满足一系列约束条件。而对偶问题是通过将原始问题中的约束条件转化为对应的拉格朗日乘子,从而得到一个要求最大化或最小化的新问题。对偶理论通过研究原始问题与对偶问题之间的关系,提供了一种分析最优解的方法。
一、原始问题
考虑一般的约束优化问题:
min
x
∈
R
n
f
(
x
)
,
s.t.
c
i
(
x
)
⩽
0
,
i
∈
I
,
c
i
(
x
)
=
0
,
i
∈
E
,
(
1
)
\begin{array}{ll} \min\limits_{x \in \mathbb{R}^n} & f(x), \\ \text { s.t. } & c_i(x) \leqslant 0, i \in \mathcal{I}, \\ & c_i(x)=0, i \in \mathcal{E}, \end{array} \qquad (1)
x∈Rnmin s.t. f(x),ci(x)⩽0,i∈I,ci(x)=0,i∈E,(1)
其中
c
i
c_i
ci 为定义在
R
n
\mathbb{R}^n
Rn 或其子集上的实值函数,
I
\mathcal{I}
I 和
E
\mathcal{E}
E 分别表示不等式约束和等式约束对应的下标集合且各下标互不相同. 这个问题的可行域定义为:
X
=
{
x
∈
R
n
∣
c
i
(
x
)
⩽
0
,
i
∈
I
且
c
i
(
x
)
=
0
,
i
∈
E
}
.
\mathcal{X}=\left\{x \in \mathbb{R}^n \mid c_i(x) \leqslant 0, i \in \mathcal{I} \text { 且 } c_i(x)=0, i \in \mathcal{E}\right\} .
X={x∈Rn∣ci(x)⩽0,i∈I 且 ci(x)=0,i∈E}.
有原问题为什么要构造对偶问题?
- 原始问题(P)非凸,或者是NP-hard的 ,寻找一个跟(P) 有紧密联系、简单的问题 (对偶问题 ,D),通过求解 (D) 问题可以了解 (P)问题的最优值的大体情况;
- 在某些情况下,对偶问题与原问题存在等价关系,通过求解对偶问题可以得到原始问题的最优目标函数值.
二、拉格朗日函数
拉格朗日函数的基本思想是给该问题中的每一个约束指定一个拉格朗日乘子,以乘子为加权系数将约束增加到目标函数中.令 λ i \lambda_i λi 为对应于第 i i i 个不等式约束的拉格朗日乘子, ν i \nu_i νi为对应于第 i i i个等式约束的拉格朗日乘子.为了构造合适的对偶问题,基本原则是对拉格朗日乘子添加合适的约束条件,使得 f ( x ) f(x) f(x) 在问题 (1)的任意可行点 x x x大于或等于相应拉格朗日函数值.
记
m
=
∣
I
∣
,
p
=
∣
E
∣
m=|\mathcal{I}|, p=|\mathcal{E}|
m=∣I∣,p=∣E∣, 令
λ
≥
0
\lambda\geq 0
λ≥0,则拉格朗日函数的具体形式
L
:
R
n
×
R
+
m
×
R
p
→
R
L: \mathbb{R}^n \times \mathbb{R}_{+}^m \times \mathbb{R}^p \rightarrow \mathbb{R}
L:Rn×R+m×Rp→R 定义为:
L
(
x
,
λ
,
ν
)
=
f
(
x
)
+
∑
i
∈
I
λ
i
c
i
(
x
)
+
∑
i
∈
E
ν
i
c
i
(
x
)
.
(
2
)
L(x, \lambda, \nu)=f(x)+\sum_{i \in \mathcal{I}} \lambda_i c_i(x)+\sum_{i \in \mathcal{E}} \nu_i c_i(x) .\qquad (2)
L(x,λ,ν)=f(x)+i∈I∑λici(x)+i∈E∑νici(x).(2)
注意:
- 函数 (2) 中的加号也可以修改为减号, 同时调整相应乘子正负号(比如这里的 λ ≥ 0 \lambda\geq0 λ≥0);
- 定乘子符号的原则,使得拉格朗日函数满足弱对偶原理(后面会介绍);
- 这里 x x x的取值范围( x ∈ R n x\in \mathbb{R}_n x∈Rn);
- 对拉格朗日函数 L ( x , λ , ν ) L(x, \lambda, \nu) L(x,λ,ν) 中的 x x x 取下确界可定义拉格朗日对偶函数。
定义(拉格朗日对偶函数)
拉格朗日对偶函数 g : R + m × R p → [ − ∞ , + ∞ ) g: \mathbb{R}_{+}^m \times \mathbb{R}^p \rightarrow[-\infty,+\infty) g:R+m×Rp→[−∞,+∞) 是拉格朗日函数 L ( x , λ , ν ) L(x, \lambda, \nu) L(x,λ,ν) 对于 λ ∈ R + m , ν ∈ R p \lambda \in \mathbb{R}_{+}^m, \nu \in \mathbb{R}^p λ∈R+m,ν∈Rp 关于 x x x 取下确界:
g ( λ , ν ) = inf x ∈ R n L ( x , λ , ν ) . ( 3 ) g(\lambda, \nu)=\inf _{x \in \mathbb{R}^n} L(x, \lambda, \nu) .\qquad (3) g(λ,ν)=x∈RninfL(x,λ,ν).(3)
- 固定 ( λ , ν ) (\lambda, \nu) (λ,ν), 如果拉格朗日函数关于 x x x 无界, 那么对偶函数在 ( λ , ν ) (\lambda, \nu) (λ,ν) 处的取值为 − ∞ -\infty −∞.
- 因为拉格朗日对偶函数是逐点定义的一簇关于 ( λ , ν ) (\lambda, \nu) (λ,ν) 的仿射函数的下确界,故其为凹函数 (无论原始问题是否为凸问题). 这个性质是十分重要的, 它能帮助我们推导出许多拥有良好性质的算法.
对每一对满足
λ
⩾
0
\lambda \geqslant 0
λ⩾0 的乘子对
(
λ
,
ν
)
(\lambda, \nu)
(λ,ν), 拉格朗日对偶函数
g
(
λ
,
ν
)
g(\lambda, \nu)
g(λ,ν) 给原优化问题(1) 的最优值
p
∗
p^*
p∗ 提供了下界, 且该下界依赖于参数
λ
\lambda
λ 和
ν
\nu
ν 的选取,拉格朗日函数就是按照如下的弱对偶原理定义的,我们在确定
λ
\lambda
λ的符号时,就根据弱对偶原理来确定.
引理 (弱对偶原理)
对于任意的 λ ⩾ 0 \lambda \geqslant 0 λ⩾0 和 ν \nu ν, 拉格朗日对偶函数给出了优化问题(1)最优值的一个下界, 即
g ( λ , ν ) ⩽ p ∗ , λ ⩾ 0. g(\lambda, \nu) \leqslant p^*, \quad \lambda \geqslant 0 . g(λ,ν)⩽p∗,λ⩾0.
证明比较简单,因为拉格朗日函数后两项都是小于等于0的。那么一个自然的问题是, 从拉格朗日对偶函数获得的下界中, 哪个是最优的呢?
三、对偶问题
为了求解该最优的下界,便有如下拉格朗日对偶问题:
max
λ
⩾
0
,
ν
g
(
λ
,
ν
)
=
max
λ
⩾
0
,
ν
inf
x
∈
R
n
L
(
x
,
λ
,
ν
)
.
(
4
)
\max _{\lambda \geqslant 0, \nu} g(\lambda, \nu)=\max _{\lambda \geqslant 0, \nu} \inf _{x \in \mathbb{R}^n} L(x, \lambda, \nu) .\qquad (4)
λ⩾0,νmaxg(λ,ν)=λ⩾0,νmaxx∈RninfL(x,λ,ν).(4)
向量
λ
\lambda
λ 和
ν
\nu
ν 也称为问题(1) 的对偶变量或者拉格朗日乘子向量. 由于其目标函数的凹性和约束集合的凸性, 拉格朗日对偶问题是一个凸优化问题 .
当
g
(
λ
,
ν
)
=
−
∞
g(\lambda, \nu)=-\infty
g(λ,ν)=−∞ 时, 对偶函数提供的
p
∗
p^*
p∗ 的下界变得没有实际意义. 只有当
g
(
λ
,
ν
)
>
−
∞
g(\lambda, \nu)>-\infty
g(λ,ν)>−∞ 时, 对偶函数生成的关于原始问题最优解
p
∗
p^*
p∗ 的 下界才是非平凡的. 因此我们规定拉格朗日对偶函数的定义域
dom
g
=
{
(
λ
,
ν
)
∣
λ
⩾
0
,
g
(
λ
,
ν
)
>
−
∞
}
\operatorname{dom} g=\{(\lambda, \nu) \mid \lambda \geqslant 0, g(\lambda, \nu)>-\infty\}
domg={(λ,ν)∣λ⩾0,g(λ,ν)>−∞}
- 当 ( λ , ν ) ∈ dom g (\lambda, \nu) \in \operatorname{dom} g (λ,ν)∈domg 时, 称其为对偶可行解.
- 记对偶问题的最优值为 q ∗ q^* q∗. 称 p ∗ − q ∗ ( ⩾ 0 ) p^*-q^*(\geqslant 0) p∗−q∗(⩾0) 为对偶间隙.
- 如果对偶间隙为 0 ( p ∗ = q ∗ ) 0\left(p^*=q^*\right) 0(p∗=q∗), 称强对偶原理成立.
- 假设 ( λ ∗ , ν ∗ ) \left(\lambda^*, \nu^*\right) (λ∗,ν∗) 是使得对偶问题取得最优值的解, 称其为对偶最优解或者最优拉格朗日乘子.
总结一下求对偶问题的步骤:
- 写出拉格朗日函数 L ( x , λ , ν ) L(x, \lambda, \nu) L(x,λ,ν);
- 对拉格朗日函数求极小,得到对偶函数 g ( λ , ν ) g( \lambda, \nu) g(λ,ν);
- 将对偶函数求极大,得到对偶问题: max λ , ν g ( λ , ν ) \max\limits_{ \lambda, \nu} g( \lambda, \nu) λ,νmaxg(λ,ν).
四、求对偶问题实例
1 简单二次优化问题的对偶问题
考虑如下问题:
min
x
T
x
s.t.
A
x
=
b
\begin{array}{ll} \min & x^T x \\ \text { s.t. } & A x=b \end{array}
min s.t. xTxAx=b
其中
A
∈
R
p
×
n
A\in \mathbb{R}^{p\times n}
A∈Rp×n,按如下步骤推导其对偶函数:
- 拉格朗日函数为 L ( x , ν ) = x T x + ν T ( A x − b ) L(x, \nu)=x^T x+\nu^T(A x-b) L(x,ν)=xTx+νT(Ax−b)
- 求 L L L 关于 x x x 的最小值, 由一阶条件:
∇ x L ( x , ν ) = 2 x + A T ν = 0 ⟹ x = − ( 1 / 2 ) A T ν \nabla_x L(x, \nu)=2 x+A^T \nu=0 \quad \Longrightarrow \quad x=-(1 / 2) A^T \nu ∇xL(x,ν)=2x+ATν=0⟹x=−(1/2)ATν
- 将上式代入 L L L 得到对偶函数 g g g :
g ( ν ) = L ( ( − 1 / 2 ) A T ν , ν ) = − 1 4 ν T A A T ν − b T ν g(\nu)=L\left((-1 / 2) A^T \nu, \nu\right)=-\frac{1}{4} \nu^T A A^T \nu-b^T \nu g(ν)=L((−1/2)ATν,ν)=−41νTAATν−bTν
g
(
ν
)
g(\nu)
g(ν)是关于
ν
\nu
ν 的凹函数,由弱对偶性我们知道:
p
∗
>
−
(
1
/
4
)
ν
T
A
A
T
ν
−
b
T
ν
,
∀
ν
∈
R
p
p^*>-(1 / 4) \nu^T A A^T \nu-b^T \nu, \forall \nu\in \mathbb{R}^p
p∗>−(1/4)νTAATν−bTν,∀ν∈Rp
其对偶问题为:
max
v
−
1
4
ν
T
A
A
T
ν
−
b
T
ν
,
ν
∈
R
p
.
\begin{aligned} &\max_v -\frac{1}{4} \nu^T A A^T \nu-b^T \nu ,\\ & \qquad\nu \in\mathbb{R}^p. \end{aligned}
vmax−41νTAATν−bTν,ν∈Rp.
2 线性规划问题的对偶问题
考虑标准形式的线性规划问题:
min
x
c
T
x
,
s.t.
A
x
=
b
,
x
≥
0.
\begin{array}{ll} \min\limits_x & c^{\mathrm{T}} x, \\ \text { s.t. } & A x=b, \\ & x \geq 0. \end{array}
xmin s.t. cTx,Ax=b,x≥0.
可以得到其拉格朗日函数:
L
(
x
,
s
,
ν
)
=
c
T
x
+
ν
T
(
A
x
−
b
)
−
s
T
x
=
−
b
T
ν
+
(
A
T
ν
−
s
+
c
)
T
x
L(x, s, \nu)=c^{\mathrm{T}} x+\nu^{\mathrm{T}}(A x-b)-s^{\mathrm{T}} x=-b^{\mathrm{T}} \nu+\left(A^{\mathrm{T}} \nu-s+c\right)^{\mathrm{T}} x
L(x,s,ν)=cTx+νT(Ax−b)−sTx=−bTν+(ATν−s+c)Tx
因为该拉格朗日函数关于
x
x
x是线性的,故其对偶函数为:
g
(
s
,
ν
)
=
inf
x
L
(
x
,
s
,
ν
)
=
{
−
b
T
ν
,
A
T
ν
−
s
+
c
=
0
−
∞
,
其他
g(s, \nu)=\inf _x L(x, s, \nu)= \begin{cases}-b^{\mathrm{T}} \nu, & A^{\mathrm{T}} \nu-s+c=0 \\ -\infty, & \text { 其他 }\end{cases}
g(s,ν)=xinfL(x,s,ν)={−bTν,−∞,ATν−s+c=0 其他
于是可以得到其对偶问题:
五、强对偶性和Slater约束准则
设
p
∗
p^*
p∗和
d
∗
d^*
d∗分别为原始问题和对偶问题的最优目标函数值,如果等式
d
∗
=
p
∗
d^{*}=p^{*}
d∗=p∗
成立, 即最优对偶间隙为零, 那么强对偶性成立。对于一般情况, 强对偶性不成立。但是, 如果原问题 (1) 是凸问题, 即可以表述为如下形式:
min
x
∈
R
n
f
(
x
)
,
s.t.
c
i
(
x
)
⩽
0
,
i
∈
I
,
c
i
(
x
)
=
0
,
i
∈
E
,
\begin{array}{ll} \min\limits_{x \in \mathbb{R}^n} & f(x), \\ \text { s.t. } & c_i(x) \leqslant 0, i \in \mathcal{I}, \\ & c_i(x)=0, i \in \mathcal{E}, \end{array}
x∈Rnmin s.t. f(x),ci(x)⩽0,i∈I,ci(x)=0,i∈E,
其中, 函数
c
i
c_i
ci 是凸函数, 强对偶性通常 (但不总是) 成立。有很多研究成果给出了强对偶性成立的条件 (除了凸性条件以外),这些条件称为约束准则(约束品性),一个简单的约束准则是 Slater 条件。
定理(Slater定理)
若存在一点 x ∈ relint D x \in \operatorname{relint} \mathcal{D} x∈relintD ,使得下式成立:
s.t. c i ( x ) < 0 , i ∈ I , c i ( x ) = 0 , i ∈ E . \text { s.t. } c_i(x) < 0, i \in \mathcal{I}, \\ c_i(x)=0, i \in \mathcal{E}. s.t. ci(x)<0,i∈I,ci(x)=0,i∈E.
则强对偶性成立.
- 满足上述条件的点称为严格可行, 这是因为不等式约束严格成立;
- Slater 定理说明, 当 Slater 条件成立 (且原问题是凸问题) 时,则强对偶性成立
- 当不等式约束函数 c i , i ∈ I c_i,i\in\mathcal{I} ci,i∈I 中有一些是仿射函数时, Slater 条件可以进一步改进。如果最前面的 k k k 个约束函数 c 1 , ⋯ , c k c_1, \cdots, c_k c1,⋯,ck 是仿射的, 则若下列弱化的条件成立时, 强对偶性成立。该条件为: 存在一点 x ∈ relint D x \in \operatorname{relint} \mathcal{D} x∈relintD 使得 c i ( x ) ⩽ 0 , i = 1 , ⋯ , k , c i ( x ) < 0 , i = k + 1 , ⋯ , m 且 c i ( x ) = 0 , i ∈ E . c_i(x) \leqslant 0, \quad i=1, \cdots, k, \quad c_i(x)<0, \quad i=k+1, \cdots, m \quad 且 \quad c_i(x) = 0,i\in\mathcal{E} . ci(x)⩽0,i=1,⋯,k,ci(x)<0,i=k+1,⋯,m且ci(x)=0,i∈E.
也就是说,仿射不等式不需要严格成立,这表明标准线性规划问题满足Slater条件,只要原问题可行,强对偶性就成立。
六、带约束凸优化问题的最优性理论
1 互补松弛性
设原问题和对偶问题的最优值都可以达到且相等 (即强对偶性成立)。令
x
∗
x^{*}
x∗ 是原问题的最优解,
(
λ
∗
,
ν
∗
)
\left(\lambda^{*}, \nu^{*}\right)
(λ∗,ν∗) 是对偶问题的最优解, 这表明:
f
(
x
∗
)
=
g
(
λ
∗
,
ν
∗
)
=
inf
x
(
f
(
x
)
+
∑
i
∈
I
λ
i
∗
c
i
(
x
)
+
∑
i
∈
E
ν
i
∗
c
i
(
x
)
)
⩽
f
(
x
∗
)
+
∑
i
∈
I
λ
i
∗
c
i
(
x
∗
)
+
∑
i
∈
E
ν
i
∗
c
i
(
x
∗
)
⩽
f
(
x
∗
)
.
\begin{aligned} f\left(x^{*}\right) & =g\left(\lambda^{*}, \nu^{*}\right) \\ & =\inf _x\left(f(x)+\sum_{i\in\mathcal{I}} \lambda_i^{*} c_i(x)+\sum_{i\in\mathcal{E}} \nu_i^{*} c_i(x)\right) \\ & \leqslant f\left(x^{*}\right)+\sum_{i\in\mathcal{I}} \lambda_i^{*} c_i\left(x^{*}\right)+\sum_{i\in\mathcal{E}} \nu_i^{*} c_i\left(x^{*}\right) \\ & \leqslant f\left(x^{*}\right) . \end{aligned}
f(x∗)=g(λ∗,ν∗)=xinf(f(x)+i∈I∑λi∗ci(x)+i∈E∑νi∗ci(x))⩽f(x∗)+i∈I∑λi∗ci(x∗)+i∈E∑νi∗ci(x∗)⩽f(x∗).
- 第一个等式说明最优对偶间隙为零, 第二个等式是对偶函数的定义;
- 第三个不等式是根 据 Lagrange 函数关于 x x x 求下确界小于等于其在 x = x ∗ x=x^{*} x=x∗ 处的值得来;
- 最后一个不等式 的成立是因为 λ i ∗ ⩾ 0 , c i ( x ∗ ) ⩽ 0 , i ∈ I \lambda_i^{*} \geqslant 0, c_i\left(x^{*}\right) \leqslant 0, i\in\mathcal{I} λi∗⩾0,ci(x∗)⩽0,i∈I, 以及 c i ( x ∗ ) = 0 , i ∈ E c_i\left(x^{*}\right)=0, i\in\mathcal{E} ci(x∗)=0,i∈E 。因此, 在上面的式子链中, 两个不等式取等号。
由最后一个不等式成立,我们可以得到一个重要的结论:
∑
i
∈
I
λ
i
∗
c
i
(
x
∗
)
=
0.
\sum_{i\in\mathcal{I}} \lambda_i^{*} c_i\left(x^{*}\right)=0 .
i∈I∑λi∗ci(x∗)=0.
上述求和项的每一项都非正, 因此有:
λ
i
∗
c
i
(
x
∗
)
=
0
,
i
∈
I
.
\lambda_i^{*} c_i\left(x^{*}\right)=0 ,i\in\mathcal{I}.
λi∗ci(x∗)=0,i∈I.
上式称为互补松驰条件. 这个条件表明对不等式约束, 以下两种情况至少出现一种:
- 乘子 λ i ∗ = 0 \lambda_i^{*}=0 λi∗=0
- c i ( x ∗ ) = 0 c_i\left(x^{*}\right)=0 ci(x∗)=0 ( i ∈ I i \in \mathcal{I} i∈I ).
当以上两种情况恰好只有一种满足时, 我们也称此时严格互补松驰条件成立. 一般来说, 具有严格互补松他条件的最优值点有比较好的性质, 算法能够很快收敛.
2 凸问题的KKT条件
当原问题是凸问题时,也就是说
f
(
x
)
f(x)
f(x)是凸函数,
c
i
(
x
)
c_i(x)
ci(x)是仿射函数,可行域为凸集。如果Slater条件成立,
x
∗
x^{*}
x∗ 和
(
λ
∗
,
ν
∗
)
\left(\lambda^{*}, \nu^{*}\right)
(λ∗,ν∗) 分别是原问题和对偶问题的全局最优解,当且仅当:
c
i
(
x
∗
)
⩽
0
,
i
∈
I
c
i
(
x
∗
)
=
0
,
i
∈
E
λ
i
∗
⩾
0
,
i
∈
I
λ
i
∗
c
i
(
x
∗
)
=
0
,
i
∈
I
∇
f
(
x
∗
)
+
∑
i
∈
I
λ
i
∗
∇
c
i
(
x
∗
)
+
∑
i
∈
E
ν
i
∗
∇
c
i
(
x
∗
)
=
0
,
\begin{aligned} c_i\left(x^{*}\right) \leqslant 0, & & i\in\mathcal{I} \\ c_i\left(x^{*}\right)=0, & & i\in\mathcal{E} \\ \lambda_i^{*} \geqslant 0, & & i\in\mathcal{I} \\ \lambda_i^{*} c_i\left(x^{*}\right)=0, & &i\in\mathcal{I}\\ \nabla f\left(x^{*}\right)+\sum_{i\in\mathcal{I}} \lambda_i^{*} \nabla c_i\left(x^{*}\right)+\sum_{i\in\mathcal{E}} \nu_i^{*} \nabla c_i\left(x^{*}\right)=0, & & \end{aligned}
ci(x∗)⩽0,ci(x∗)=0,λi∗⩾0,λi∗ci(x∗)=0,∇f(x∗)+i∈I∑λi∗∇ci(x∗)+i∈E∑νi∗∇ci(x∗)=0,i∈Ii∈Ei∈Ii∈I
我们称上式为 Karush-Kuhn-Tucker (KKT) 条件。也就是说, 对于目标函数和约束函数可微的任意优化问题, 如果强对偶性成立, 那么任何一对原问题最优解和对偶问题最优解必须满足 KKT 条件 。
- 前2个条件为原始问题约束条件;
- 第3个条件为对偶问题约束条件;
- 第4个条件为互补松弛条件,这是由强对偶性导出的;
- 第5个为一阶条件,也就是拉格朗日函数 L ( x , λ , ν ) L(x,\lambda,\nu) L(x,λ,ν)关于 x x x的偏导为0,即 ∂ x L = 0 \partial_x L=0 ∂xL=0.这也是由强对偶原理导出来的,强对偶成立,那么拉格朗日函数最小值取到.
KKT条件给出了一个凸问题最优解的等价条件,我们要求一个凸问题的最优解,可以等价求解KKT条件构成的方程组.这也是线性规划内点法的一个基本原理.
参考资料
- 刘浩洋、户将、李勇锋、文再文. 最优化:建模、算法与理论. 高教出版社, 2022.
- http://faculty.bicmr.pku.edu.cn/~wenzw/