文章目录
老师讲得贼清楚,太厉害了!!!
1. 约束优化的对偶问题
2 概述:
– 1. 约束优化的对偶问题;
– 2. 弱对偶定理/强对偶定理
– 3. 对偶问题的性质和求解方法
2.1 约束优化问题的一般形式
- 用原问题(Primal Problem)中的P表示原问题,具体如下:
( P ) min f ( x ) s t . g i ( x ) ≤ 0 , i = 1 , ⋯ , m , h i ( x ) = 0 , i = 1 , ⋯ , l , x ∈ X \begin{equation} \begin{aligned} &(P)\; \;\min\; f(x)\\ &st.\;\;g_i(x)\le0,i=1,\cdots,m,\\ &\;\;\;\;\;\;h_i(x)=0,i=1,\cdots,l,\\ &\;\;\;\;\;\;x\in X\\ \end{aligned} \end{equation} (P)minf(x)st.gi(x)≤0,i=1,⋯,m,hi(x)=0,i=1,⋯,l,x∈X - 合并上面定义域可得:
min x ∈ S f ( x ) S = { x ∈ X ∣ g i ( x ) ≤ 0 , i = 1 , ⋯ , m ; h i ( x ) = 0 , i = 1 , ⋯ , l } \begin{equation} \begin{aligned} &\min\limits_{x\in S}\;f(x)\\ &S=\{x\in X\big|g_i(x)\le0,i=1,\cdots,m;h_i(x)=0,i=1,\cdots,l\}\\ \end{aligned} \end{equation} x∈Sminf(x)S={x∈X gi(x)≤0,i=1,⋯,m;hi(x)=0,i=1,⋯,l} - 其中X可能为实数集合 X = R n X=\mathbb{R}^n X=Rn,可能为整数集合 X = Z n X=\mathbb{Z}^n X=Zn,可能为正整数集合 X = Z + n X=\mathbb{Z}_+^n X=Z+n,可能是为0,1组合 X = { 0 , 1 } n X=\{0,1\}^n X={0,1}n,等其他的集合。
2.2 原问题和对偶问题
- 为什么存在原问题和对偶问题呢?
因为原问题P是非凸问题,是一个NP-Hard
问题,求解起来特别的费劲,那么我们希望用一个差不多的问题来近似处理,对偶不是相等,它们之间是有相关关系的。鲁棒优化,锥优化中,常常用对偶理论来处理相关优化问题。 - 线性规划中的原问题:P
P → min c T x ; s t : A x = b , x ≥ 0 \begin{equation} P\to \min \;\;c^Tx;st:\; Ax=b,x\ge0 \end{equation} P→mincTx;st:Ax=b,x≥0 - 线性规划中的对偶问题:D,常见解法:单纯形法,内点法
D → max b T y ; s t : A T y ≤ c \begin{equation} D\to \max \;\;b^Ty;st:\; A^Ty\le c \end{equation} D→maxbTy;st:ATy≤c - 求解出来的
y
∗
y^*
y∗就是影子价格
shadow price
,对偶单纯形法 - 其中鲁棒优化,锥优化都是要用到
"对偶理论"
这种工具来进行转换。
2.3 拉格朗日对偶函数
- 通过原问题转换,我们引入拉格朗日函数:
L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) \begin{equation} L(x,\lambda,\mu)=f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x) \end{equation} L(x,λ,μ)=f(x)+i=1∑mλigi(x)+i=1∑lμihi(x) - 拉格朗日对偶函数(简称对偶函数)
d ( λ , μ ) = min { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) ∣ x ∈ X } \begin{equation} d(\lambda,\mu)=\min \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\big|x\in X\} \end{equation} d(λ,μ)=min{f(x)+i=1∑mλigi(x)+i=1∑lμihi(x) x∈X} - 那么我们对偶问题在可行域上的定义如下:
x
∈
S
x\in S
x∈S,其中S是X上的子集,那么我们知道,如果函数在大集合里面得到最小值
y
1
y_1
y1,在小集合里面的得到的最小值为
y
2
y_2
y2,因为大集合里面的范围更大,那肯定
y
2
≤
y
1
y_2\le y_1
y2≤y1
min x ∈ X , λ > 0 d ( λ , μ ) ≤ min x ∈ S , λ > 0 d ( λ , μ ) \begin{equation} \min\limits_{x\in X,\lambda>0}d(\lambda,\mu)\le\min\limits_{x\in S,\lambda >0}d(\lambda,\mu) \end{equation} x∈X,λ>0mind(λ,μ)≤x∈S,λ>0mind(λ,μ)
d ( λ , μ ) = min x ∈ S { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } \begin{equation} d(\lambda,\mu)=\min\limits_{x\in S} \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\} \end{equation} d(λ,μ)=x∈Smin{f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)} - 对于上述函数来说,
λ
i
g
i
(
x
)
<
0
,
μ
i
h
i
(
x
)
=
0
\lambda_ig_i(x)<0,\mu_ih_i(x)=0
λigi(x)<0,μihi(x)=0可得,如下:
min x ∈ S { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } ≤ min x ∈ S { f ( x ) } \begin{equation} \min\limits_{x\in S} \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\}\le\min\limits_{x\in S}\{f(x)\} \end{equation} x∈Smin{f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)}≤x∈Smin{f(x)} - 也就是说,对于任意的
λ
≥
0
,
μ
\lambda\ge0,\mu
λ≥0,μ来说,必有对偶问题的最小值小于等于原问题的最小值:
d ( λ , μ ) ≤ V ( p ) \begin{equation} d(\lambda,\mu)\le V(p) \end{equation} d(λ,μ)≤V(p) - 也就是说,在我们建模过程中,我们知道原问题
V
(
P
)
V(P)
V(P)是非凸,是
NP-Hard
问题,所以我们需要转换思路,如果能知道原问题的下界也行,这个下界就是上面对偶问题 d ( λ , μ ) d(\lambda,\mu) d(λ,μ)的上界. - 原问题和对偶问题的最小值之间的关系:
- 也就是说原问题的最小值的下限为对偶问题的最小值的中的最大值。因为对偶问题中的每个
λ
i
\lambda_i
λi都会对应一个最小值,那么我们当然希望这个最小值越大越好,原问题的下界越大,这个下界越接近原问题的最小值。
∀ ( λ , μ ) , λ ≥ 0 , 必有 d ( λ , μ ) ≤ V ( p ) \begin{equation} \forall (\lambda,\mu),\lambda\ge0,必有 d(\lambda,\mu)\le V(p) \end{equation} ∀(λ,μ),λ≥0,必有d(λ,μ)≤V(p) - 拉格朗日对偶问题,这里还差一个先求最小,再求最大,写得感觉不规范。
( D ) max d ( λ , μ ) s t . λ i ≥ 0 , i = 1 , ⋯ , m , \begin{equation} \begin{aligned} &(D)\; \;\max\; d(\lambda,\mu)\\ &st.\;\;\lambda_i\ge0,i=1,\cdots,m,\\ \end{aligned} \end{equation} (D)maxd(λ,μ)st.λi≥0,i=1,⋯,m, - 整理可得,先求最小,在求最大:
( D ) max λ ≥ 0 , μ min x ∈ X L ( x , λ , μ ) L ( x , λ , μ ) = { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } \begin{equation} \begin{aligned} &(D)\; \;\max\limits_{\lambda\ge 0,\mu}\min\limits_{x\in X}\; L(x,\lambda,\mu)\\ &L(x,\lambda,\mu)= \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\}\\ \end{aligned} \end{equation} (D)λ≥0,μmaxx∈XminL(x,λ,μ)L(x,λ,μ)={f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)}
3. 鸡头和凤尾问题
- 感性理解:
我们上面看到鸡头问题如下,先找最小的,相当于鸡,再求最大,相当于找鸡头:
( D 1 ) max λ ≥ 0 , μ min x ∈ X L ( x , λ , μ ) L ( x , λ , μ ) = { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } \begin{equation} \begin{aligned} &(D_1)\; \;\max\limits_{\lambda\ge 0,\mu}\min\limits_{x\in X}\; L(x,\lambda,\mu)\\ &L(x,\lambda,\mu)= \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\}\\ \end{aligned} \end{equation} (D1)λ≥0,μmaxx∈XminL(x,λ,μ)L(x,λ,μ)={f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)}
现在有一个凤尾问题如下,先找最大的,相当于凤,再求最小,相当于找凤尾:
( D 2 ) min x ∈ X max λ ≥ 0 , μ L ( x , λ , μ ) L ( x , λ , μ ) = { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } \begin{equation} \begin{aligned} &(D_2)\; \;\min\limits_{x\in X}\;\max\limits_{\lambda\ge 0,\mu}\; L(x,\lambda,\mu)\\ &L(x,\lambda,\mu)= \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\}\\ \end{aligned}\end{equation} (D2)x∈Xminλ≥0,μmaxL(x,λ,μ)L(x,λ,μ)={f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)}
我们可以简单这么类比,鸡头再优秀也比不过凤尾,所以原问题的应该用鸡头问题处理。鸡头里面的值永远小于凤尾。而我们又需要求最小值,所以我们选择先最小,后最大。 - 理性分析,对于上面凤尾来看,我们先看其中部分
( D 2 ) min x ∈ X max λ ≥ 0 , μ L ( x , λ , μ ) L ( x , λ , μ ) = { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } \begin{equation}\begin{aligned} &(D_2)\; \;\min\limits_{x\in X}\;\max\limits_{\lambda\ge 0,\mu}\; L(x,\lambda,\mu)\\ &L(x,\lambda,\mu)= \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\}\\ \end{aligned}\end{equation} (D2)x∈Xminλ≥0,μmaxL(x,λ,μ)L(x,λ,μ)={f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)} - 但凡
g
i
(
x
)
>
0
g_i(x)>0
gi(x)>0,很容易在求最大中取到
+
∞
+\infty
+∞
max λ ≥ 0 , μ L ( x , λ , μ ) L ( x , λ , μ ) = { f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 l μ i h i ( x ) } \begin{equation}\begin{aligned} &\max\limits_{\lambda\ge 0,\mu}\; L(x,\lambda,\mu)\\ &L(x,\lambda,\mu)= \{f(x)+\sum_{i=1}^m \lambda_ig_i(x)+\sum_{i=1}^l \mu_ih_i(x)\}\\ \end{aligned}\end{equation} λ≥0,μmaxL(x,λ,μ)L(x,λ,μ)={f(x)+i=1∑mλigi(x)+i=1∑lμihi(x)} - 也只有
g
i
(
x
)
≤
0
,
h
i
(
x
)
=
0
g_i(x)\le0,h_i(x)=0
gi(x)≤0,hi(x)=0时候,
max
λ
≥
0
,
μ
L
(
x
,
λ
,
μ
)
≠
+
∞
\max\limits_{\lambda\ge 0,\mu}\; L(x,\lambda,\mu)\ne +\infty
λ≥0,μmaxL(x,λ,μ)=+∞
max λ ≥ 0 , μ L ( x , λ , μ ) = { f ( x ) , s t g i ( x ) ≤ 0 , h i ( x ) = 0 + ∞ = o t h e r v i s e \begin{equation}\max\limits_{\lambda\ge 0,\mu} L(x,\lambda,\mu)=\left\{\begin{aligned} %\nonumber f(x)&\;\;,st\; g_i(x)\le0,h_i(x)=0\\\\ +\infty&=othervise \end{aligned}\right.\end{equation} λ≥0,μmaxL(x,λ,μ)=⎩ ⎨ ⎧f(x)+∞,stgi(x)≤0,hi(x)=0=othervise - 再求最小值:
min x ∈ X max λ ≥ 0 , μ L ( x , λ , μ ) = { min f ( x ) , s t g i ( x ) ≤ 0 , h i ( x ) = 0 + ∞ = o t h e r v i s e \begin{equation}\min\limits_{x\in X}\;\max\limits_{\lambda\ge 0,\mu} L(x,\lambda,\mu)=\left\{\begin{aligned} %\nonumber \min \;f(x)&\;\;,st\; g_i(x)\le0,h_i(x)=0\\\\ +\infty&=othervise \end{aligned}\right.\end{equation} x∈Xminλ≥0,μmaxL(x,λ,μ)=⎩ ⎨ ⎧minf(x)+∞,stgi(x)≤0,hi(x)=0=othervise - 我们清晰的看出来了,凤尾问题很容易产生正无穷值,无法求出来,最差情况居然为原问题
- 小结:对偶问题应该先求最小,再求最大。
4. 构建对偶问题:
假设我们有一个原问题如下:
(
P
)
min
x
∈
X
f
(
x
)
s
t
:
g
i
(
x
)
≤
0
;
\begin{equation}\begin{aligned} &(P)\; \;\min\limits_{x\in X}\;f(x)\\ &st:\;g_i(x)\le0;\\ \end{aligned}\end{equation}
(P)x∈Xminf(x)st:gi(x)≤0;
- 第一步:转换成拉格朗日对偶函数:引入
λ
>
0
\lambda>0
λ>0
L ( x , λ ) = f ( x ) + λ g ( x ) d ( λ ) = min x ∈ X { f ( x ) + λ g ( x ) } ( D ) max λ ≥ 0 d ( λ ) \begin{equation}\begin{aligned} &L(x,\lambda)=f(x)+\lambda g(x)\\ &d(\lambda)=\min\limits_{x\in X}\{f(x)+\lambda g(x)\}\\ &(D) \max\limits_{\lambda\ge0}d(\lambda)\\ \end{aligned}\end{equation} L(x,λ)=f(x)+λg(x)d(λ)=x∈Xmin{f(x)+λg(x)}(D)λ≥0maxd(λ) - 第二步:在x为定义域下,
求最小值
d ( λ ) = min x ∈ X { f ( x ) + λ g ( x ) } \begin{equation}\begin{aligned} &d(\lambda)=\min\limits_{x\in X}\{f(x)+\lambda g(x)\}\\ \end{aligned}\end{equation} d(λ)=x∈Xmin{f(x)+λg(x)} - 第三步:在
λ
≥
0
\lambda\ge0
λ≥0 为定义域下,
求最大值
( D ) max λ ≥ 0 d ( λ ) \begin{equation}\begin{aligned} &(D) \max\limits_{\lambda\ge0}d(\lambda)\\ \end{aligned}\end{equation} (D)λ≥0maxd(λ) - 综上所述,对偶函数如下图:
( D ) max λ ≥ 0 min x ∈ X { f ( x ) + λ g ( x ) } \begin{equation}\begin{aligned} &(D)\;\; \max\limits_{\lambda\ge0}\min\limits_{x\in X}\{f(x)+\lambda g(x)\}\\\ \end{aligned}\end{equation} (D)λ≥0maxx∈Xmin{f(x)+λg(x)}
5. 几何关系映射:
为了方便几何图像解释,我们将
f
(
x
)
,
g
(
x
)
f(x),g(x)
f(x),g(x)映射到二维图像上如下:
g
(
x
)
=
y
;
x
∈
X
f
(
x
)
=
z
;
\begin{equation}\begin{aligned} &g(x)=y;x\in X\\ &f(x)=z; \end{aligned}\end{equation}
g(x)=y;x∈Xf(x)=z;
- 原问题可以转换如下:
G = { ( y , z ) ∣ g ( x ) = y , f ( x ) = z , x ∈ X } ( P ) min z , s t : y ≤ 0 , ( y , z ) ∈ G ; \begin{equation}\begin{aligned} &G=\{(y,z)\big|g(x)=y,f(x)=z,x\in X\}\\ &(P)\;\min\;z,\;st:y\le0,(y,z)\in G; \end{aligned}\end{equation} G={(y,z) g(x)=y,f(x)=z,x∈X}(P)minz,st:y≤0,(y,z)∈G; - 对偶问题如下:
max λ ≥ 0 min ( y , z ) ∈ G { z + λ y } \begin{equation}\begin{aligned} &\max \limits_{\lambda\ge 0}\min \limits_{(y,z)\in G}\{z+\lambda y\}\\ \end{aligned}\end{equation} λ≥0max(y,z)∈Gmin{z+λy} - 2D图如图所示:
-简单情况
- 复杂情况:
6. 线性规划的对偶问题:
- 给出如下线性规划问题,求其对偶问题:
min c T x s t ; A x = b , x ≥ 0 , 其中, c ∈ R n , A ∈ R m × n , b ∈ R m \begin{equation}\begin{aligned} &\min \;c^Tx\\ &st; Ax=b,x\ge0,其中,c\in R^n,A\in R^{m\times n},b\in R^m \end{aligned}\end{equation} mincTxst;Ax=b,x≥0,其中,c∈Rn,A∈Rm×n,b∈Rm - 拉格朗日函数:
L ( x , μ ) = c T x + μ T ( b − A x ) \begin{equation} L(x,\mu)=c^Tx+\mu^T(b-Ax) \end{equation} L(x,μ)=cTx+μT(b−Ax) - 对偶问题:
- max μ min x ≥ 0 { c T x + μ T ( b − A x ) } \begin{equation} \max\limits_{\mu}\min\limits_{x\ge0}\{c^Tx+\mu^T(b-Ax)\} \end{equation} μmaxx≥0min{cTx+μT(b−Ax)} - 先求内部最小值:
- 展开公式可得:
- min x ≥ 0 { c T x + μ T ( b − A x ) } = min x ≥ 0 { ( c − A T μ ) T x + b T μ } \begin{equation} \min\limits_{x\ge0}\{c^Tx+\mu^T(b-Ax)\}=\min\limits_{x\ge0}\{(c-A^T\mu )^Tx+ b^T\mu\} \end{equation} x≥0min{cTx+μT(b−Ax)}=x≥0min{(c−ATμ)Tx+bTμ} - 我们知道,
x
≥
0
x\ge0
x≥0,但凡
{
c
−
A
T
μ
}
\{c-A^T\mu\}
{c−ATμ}中有一个负数,那么在求整体最小值的时候,就容易出现
−
∞
-\infty
−∞,所以可得:
min x ≥ 0 { ( c − A T μ ) T x + b T μ } = { b T μ , c − A T μ ≥ 0 − ∞ , o t h e r v i s e \begin{equation}\min\limits_{x\ge0}\{(c-A^T\mu )^Tx+ b^T\mu\}=\left\{\begin{aligned} %\nonumber \;\;\;b^T\mu,\; c-A^T\mu\ge0\\ -\infty,othervise\\ \end{aligned}\right.\end{equation} x≥0min{(c−ATμ)Tx+bTμ}={bTμ,c−ATμ≥0−∞,othervise - 再求最大值,其中负无穷就不用考虑了:
max b T μ s t : A T μ ≤ c \begin{equation}\begin{aligned} &\max \;b^T\mu\\ &st:A^T\mu\le c \end{aligned}\end{equation} maxbTμst:ATμ≤c