对偶问题、KKT条件、LP中的对偶问题

一般对偶问题、KKT条件、线性规划对偶问题

  • 1. 拉格朗日函数和对偶问题
    • 1.1 拉格朗日函数
    • 1.2 原问题
    • 1.3 对偶问题
  • 2. 强对偶性和KKT条件
  • 3. 线性规划对偶问题

这篇文章是对 pluski和 Kevin_Duan 的读后感。看完这两位的文章后,对线性规划对偶问题的来龙去脉有了更深的理解。

这是我CSDN上的第一篇分享,肯定不会是最后一篇,希望能激励自己好好学习,赚钱养猫 ~

1. 拉格朗日函数和对偶问题

1.1 拉格朗日函数

优化问题一般都能转化为如下的形式:
min ⁡ f ( x ) s . t . h i ( x ) ≤ 0 , i = 1 , . . . , m g i ( x ) = 0 , i = 1 , . . . , n \begin{aligned} \min \quad & f(x)\\ s.t. \quad & h_i(x)\leq0, i=1,...,m\\ & g_i(x)=0, i=1,...,n \end{aligned} mins.t.f(x)hi(x)0,i=1,...,mgi(x)=0,i=1,...,n 这里面要求 g i ( x ) g_i(x) gi(x)是仿射的,也就是形如 g i ( x ) = A x + b g_i(x)=Ax+b gi(x)=Ax+b.

那么对应的拉格朗日函数是:

L ( x , λ , v ) = f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ i = 1 n v i g i ( x ) L(x,\lambda,v)=f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{i=1}^n v_ig_i(x) L(x,λ,v)=f(x)+i=1mλihi(x)+i=1nvigi(x)

其中 λ i ≥ 0 \lambda_i\geq0 λi0.

这里面 λ i , v i \lambda_i,v_i λi,vi都是向量,它们的维度分别由 h i ( x ) , g i ( x ) h_i(x),g_i(x) hi(x),gi(x)确定,反正就是要保证矩阵相乘之后, λ i h i ( x ) , v i g i ( x ) \lambda_ih_i(x),v_ig_i(x) λihi(x),vigi(x) 都是一个数。 比方说,如果 g i ( x ) g_i(x) gi(x) x x x 映射成一个 p × 1 p×1 p×1 的向量的话, 那么 v i v_i vi 就是一个 1 × p 1×p 1×p 的向量。

可以看到拉格朗日函数把约束和目标函数融合在了一起。那为什么要引入拉格朗日函数呢? 神奇的地方就在于,从拉格朗日函数出发,我们能构造出原问题和对偶问题。

1.2 原问题

首先来看看
Z ( x ) = max ⁡ λ ≥ 0 , v L ( x , λ , v ) = max ⁡ λ ≥ 0 , v f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ i = 1 n v i g i ( x ) \begin{aligned} Z(x)=&\max \limits_{\lambda\geq0,v}L(x,\lambda,v)\\ =& \max \limits_{\lambda\geq0,v}f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{i=1}^n v_ig_i(x) \end{aligned} Z(x)==λ0,vmaxL(x,λ,v)λ0,vmaxf(x)+i=1mλihi(x)+i=1nvigi(x) 这一小节想说的事情就是: min ⁡ Z ( x ) \min Z(x) minZ(x) 的最优解 x ∗ x^* x,其实是原问题的最优解

首先,如果 x ∗ x^* x min ⁡ Z ( x ) \min Z(x) minZ(x) 的最优解,那肯定有 h i ( x ∗ ) ≤ 0 h_i(x^*)\leq0 hi(x)0 g i ( x ∗ ) = 0 g_i(x^*)=0 gi(x)=0, 不然的话,通过选取合适的 λ \lambda λ v v v ,肯定能让 Z ( x ) = max ⁡ λ ≥ 0 , v f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ i = 1 n v i g i ( x ) = ∞ Z(x)=\max \limits_{\lambda\geq0,v}f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{i=1}^n v_ig_i(x)=\infty Z(x)=λ0,vmaxf(x)+i=1mλihi(x)+i=1nvigi(x)= 这样一来 x ∗ x^* x 起码是原问题的一个可行点。

然后,固定 x = x ∗ x=x^* x=x, 在已知 h i ( x ∗ ) ≤ 0 h_i(x^*)\leq0 hi(x)0 g i ( x ∗ ) = 0 g_i(x^*)=0 gi(x)=0 的情况下,为了让 L ( x ∗ , λ , v ) L(x^*,\lambda,v) L(x,λ,v) 最大化,我们会令 λ = 0 \lambda=0 λ=0 (因为 λ ≥ 0 \lambda\geq0 λ0, λ i h i ( x ) \lambda_ih_i(x) λihi(x) 最大的值是0 ). 这样一来,
Z ( x ∗ ) = max ⁡ λ ≥ 0 , v f ( x ∗ ) + ∑ i = 1 m λ i h i ( x ∗ ) + ∑ i = 1 n v i g i ( x ∗ ) = f ( x ∗ ) Z(x^*)=\max \limits_{\lambda\geq0,v}f(x^*)+\sum_{i=1}^m\lambda_ih_i(x^*)+\sum_{i=1}^n v_ig_i(x^*)=f(x^*) Z(x)=λ0,vmaxf(x)+i=1mλihi(x)+i=1nvigi(x)=f(x)

也就是说 x ∗ x^* x 也同样让 f ( x ) f(x) f(x) 最小了,所以也是原问题的最优解。

总结一下,这一小节就说明了原问题等价于:
min ⁡ Z ( x ) \min Z(x) minZ(x)

1.3 对偶问题

我们再来看看
G ( λ , v ) = min ⁡ x L ( x , λ , v ) G(\lambda, v)=\min \limits_{x}L(x,\lambda,v) G(λ,v)=xminL(x,λ,v)这一小节想说的事情就是: max ⁡ λ ≥ 0 , v G ( λ , v ) \max\limits_{\lambda\geq0,v} G(\lambda, v) λ0,vmaxG(λ,v) 是原问题的对偶问题。

对偶问题这个概念有点抽象,其实我们想说明的是, G ( λ , v ) G(\lambda, v) G(λ,v)充当了原问题的一个下界:
max ⁡ λ ≥ 0 , v G ( λ , v ) ≤ min ⁡ x Z ( x ) \max\limits_{\lambda\geq0,v} G(\lambda, v)\leq \min \limits_x Z(x) λ0,vmaxG(λ,v)xminZ(x) 直白点说,无论取什么 λ \lambda λ v v v G ( λ , v ) G(\lambda, v) G(λ,v)里面最大的那个,都要比 Z ( x ) Z(x) Z(x) 里面最小的那个小。

( λ ∗ , v ∗ ) (\lambda^*, v^*) (λ,v) x ∗ x^* x 分别是对偶问题和原问题的最优解,那么

G ( λ ∗ , v ∗ ) = min ⁡ x L ( x , λ ∗ , v ∗ ) ≤ L ( x ∗ , λ ∗ , v ∗ ) = f ( x ∗ ) + ∑ i = 1 m λ i ∗ h i ( x ∗ ) + ∑ i = 1 n v i ∗ g i ( x ∗ ) ≤ f ( x ∗ ) ( λ i ∗ h i ( x ∗ ) ≤ 0 , g i ( x ∗ ) = 0 ) \begin{aligned} G(\lambda^*, v^*)&=\min \limits_{x}L(x,\lambda^*,v^*)\\ &\leq L(x^*,\lambda^*,v^*)\\ &=f(x^*)+\sum_{i=1}^m\lambda_i^*h_i(x^*)+\sum_{i=1}^n v_i^*g_i(x^*)\\ &\leq f(x^*) \quad (\lambda_i^*h_i(x^*)\leq0, g_i(x^*)=0 ) \end{aligned} G(λ,v)=xminL(x,λ,v)L(x,λ,v)=f(x)+i=1mλihi(x)+i=1nvigi(x)f(x)(λihi(x)0,gi(x)=0) 可以看到, G ( λ , v ) G(\lambda, v) G(λ,v) 确实充当了原问题 f ( x ) f(x) f(x) 的一个下界。接下来,一个自然的问题就是,这个下界可以取到吗?

题外话:对偶问题的不只提供了原问题的下界,它自身还有一个很好的性质,凸性。不论原问题如何,对偶问题一定的凸优化问题,详情见 为什么拉格朗日对偶函数一定是凹函数(逐点下确界)。

2. 强对偶性和KKT条件

记对偶问题的最大值为 d ∗ = G ( λ ∗ , v ∗ ) d^*=G(\lambda^*, v^*) d=G(λ,v) ,原问题的最小值 p ∗ = f ( x ∗ ) p^*=f(x^*) p=f(x)。 从上节的推导可知, d ∗ ≤ p ∗ d^*\leq p^* dp一定成立,这个条件被称作弱对偶性, 对任意优化问题都成立。

强对偶性指的是, d ∗ = p ∗ d^*= p^* d=p 这一条件, 也即对偶问题的最大值和原问题的最小值刚好重合。

这一节主要想讨论下面这个问题:
强对偶性成立时,原问题的最优解 x ∗ x^* x 和对偶问题的最优解 ( λ ∗ , v ∗ ) (\lambda^*, v^*) (λ,v) 会有什么关系呢?(是的,KKT要来了!)

当强对偶性成立, d ∗ = G ( λ ∗ , v ∗ ) = f ( x ∗ ) = p ∗ d^*=G(\lambda^*, v^*)=f(x^*)=p^* d=G(λ,v)=f(x)=p的时候,有
f ( x ∗ ) = G ( λ ∗ , v ∗ ) = min ⁡ x L ( x , λ ∗ , v ∗ ) ≤ L ( x ∗ , λ ∗ , v ∗ ) = f ( x ∗ ) + ∑ i = 1 m λ i ∗ h i ( x ∗ ) + ∑ i = 1 n v i ∗ g i ( x ∗ ) ≤ f ( x ∗ ) ( 0 ) \begin{aligned} f(x^*)= G(\lambda^*, v^*)&=\min \limits_{x}L(x,\lambda^*,v^*)\\ &\leq L(x^*,\lambda^*,v^*)\\ &=f(x^*)+\sum_{i=1}^m\lambda_i^*h_i(x^*)+\sum_{i=1}^n v_i^*g_i(x^*)\\ &\leq f(x^*) \quad \quad(0) \end{aligned} f(x)=G(λ,v)=xminL(x,λ,v)L(x,λ,v)=f(x)+i=1mλihi(x)+i=1nvigi(x)f(x)(0) 由于夹逼定理,上面的这两个 ≤ \leq 号都是 = = = 号。

第一个等号告诉我们, x ∗ x^* x 是函数 L ( x , λ ∗ , v ∗ ) L(x, \lambda^*,v^*) L(x,λ,v) 的最小值,所以它是 L ( x , λ ∗ , v ∗ ) L(x, \lambda^*,v^*) L(x,λ,v) 的某个极小值点。在 x ∗ x^* x 处, L ( x , λ ∗ , v ∗ ) L(x, \lambda^*,v^*) L(x,λ,v) 关于 x x x 的梯度等于0:
∇ f ( x ∗ ) + ∑ i = 1 m λ i ∗ ∇ h i ( x ∗ ) + ∑ i = 1 n v i ∗ ∇ g i ( x ∗ ) = 0 ( 1 ) \nabla f(x^*)+\sum_{i=1}^m\lambda_i^* \nabla h_i(x^*)+\sum_{i=1}^n v_i^* \nabla g_i(x^*) = 0 \quad(1) f(x)+i=1mλihi(x)+i=1nvigi(x)=0(1) 第二个等号告诉我们, ∑ i = 1 m λ i ∗ h i ( x ∗ ) = 0 \sum_{i=1}^m\lambda_i^*h_i(x^*)=0 i=1mλihi(x)=0 ,而里面每一项都是非正的,所以每一项都等于0:
λ i ∗ h i ( x ∗ ) = 0 i = 1 , . . . , m ( 2 ) \lambda_i^*h_i(x^*)=0 \quad i=1,..., m \quad(2) λihi(x)=0i=1,...,m(2)

加上原问题及对偶问题可行域的条件:
h i ( x ∗ ) ≤ 0 , i = 1 , . . . , m ( 3 ) g i ( x ∗ ) = 0 , i = 1 , . . . , n ( 4 ) λ i ∗ ≥ 0 , i = 1 , . . . , m ( 5 ) \begin{aligned} &h_i(x^*)\leq0, i=1,...,m \quad(3)\\ &g_i(x^*)=0, i=1,...,n \quad(4)\\ &\lambda_i^*\geq0, i=1,...,m \quad(5) \end{aligned} hi(x)0,i=1,...,m(3)gi(x)=0,i=1,...,n(4)λi0,i=1,...,m(5)
( 1 ) − ( 5 ) (1)-(5) (1)(5)合起来,就是 x ∗ x^* x ( λ ∗ , v ∗ ) (\lambda^*, v^*) (λ,v) 共同要满足的条件,是不是很眼熟? 没错,这就是KKT(Karush–Kuhn–Tucker)条件!

维基百科里,KKT条件的叙述是这样的:“the KKT conditions are the necessary conditions for a solution in nonlinear programming to be optimal, provided that some regularity conditions are satisfied.”

也就是说,在regularity conditions成立的情况下,最优解 x ∗ x^* x 会满足KKT条件 (Necessary conditions)。这里的regularity conditions可以理解成,让强对偶性成立的条件。

顺带一提,如果原问题是凸优化问题(目标函数核约束空间都是凸的),那么令KKT条件成立的 x ∗ x^* x 就是原问题的最优解 (Sufficent conditions)。(答案就在 ( 0 ) (0) (0) 式里面)

3. 线性规划对偶问题

最后,我们看看怎么利用一般优化问题的对偶理论,来推导出线性规划的对偶问题 (Dual LP)

一般来说,线性规划问题都可以转化成下面的形式:
min ⁡ C T x s . t . A x − b = 0 x ≥ 0 \begin{aligned} \min \quad &C^Tx\\ s.t. \quad &Ax-b=0\\ &x\geq0 \end{aligned} mins.t.CTxAxb=0x0 根据 1.1 1.1 1.1 章节,这个优化问题对应的拉格朗日函数是:
L ( x , λ , v ) = C T x − λ T x + v T ( A x − b ) , λ ≥ 0 L(x,\lambda,v)=C^Tx-\lambda^Tx+v^T(Ax-b), \quad \lambda\geq0 L(x,λ,v)=CTxλTx+vT(Axb),λ0 稍微对维度解释一下,如果 A ∈ R m × n A\in R^{m×n} ARm×n 的话(线性规划里有 m m m 条约束, n n n 个变量), 那么 v ∈ R m × 1 v \in R^{m×1} vRm×1 , λ ∈ R n × 1 \lambda \in R^{n×1} λRn×1。简单来说,就是得让矩阵相乘的结果是一个数。

根据 1.3 1.3 1.3 章节,从拉格朗日函数出发,对应的对偶问题是:
G ( λ , v ) = min ⁡ x L ( x , λ , v ) = min ⁡ x − v T b + ( C T − λ T + v T A ) x = { − λ T b , C T − λ T + v T A = 0 − ∞ , o t h e r w i s e \begin{aligned} G(\lambda,v) & = \min \limits_{x} L(x,\lambda,v) \\ & = \min \limits_{x} -v^Tb+(C^T-\lambda ^T+v^TA)x\\ &=\begin{cases} -\lambda^Tb, C^T-\lambda ^T+v^TA=0 \\ -\infty, otherwise \end{cases} \end{aligned} G(λ,v)=xminL(x,λ,v)=xminvTb+(CTλT+vTA)x={ λTb,CTλT+vTA=0,otherwise为了让问题有意义, C T − λ T + v T A = 0 C^T-\lambda ^T+v^TA=0 CTλT+vTA=0 必须成立,所以对偶问题是:
max ⁡ G ( λ , v ) = − v T b s . t . C T − λ T + v T A = 0 v ≥ 0 \begin{aligned} \max \quad &G(\lambda,v)= -v^Tb\\ s.t. \quad &C^T-\lambda ^T+v^TA=0\\ &v\geq0 \end{aligned} maxs.t.G(λ,v)=vTbCTλT+vTA=0v0 把转置翻一下,用 − v -v v 代替 v v v ,就可以得到下面这个等价的、更常见的 Dual LP
max ⁡ b T v s . t . A T v + λ = C λ ≥ 0 \begin{aligned} \max \quad &b^Tv\\ s.t. \quad &A^Tv +\lambda =C\\ &\lambda \geq0 \end{aligned} maxs.t.bTvATv+λ=Cλ0 线性规划问题是满足强对偶性的,所以原问题的最优解 x ∗ x^* x 和对偶问题的最优解 ( λ ∗ , v ∗ ) (\lambda^*, v^*) (λ,v) 会满足KKT条件。

其中一条就是
λ T x = 0 , \lambda^Tx=0, λTx=0也就是线性规划里常说的Complementary Slackness
(原问题里面的某个 x i x_i xi 是基变量时,对应的对偶约束一定是binding的,也即 λ i = 0 \lambda_i=0 λi=0)

KKT里面梯度为0的条件,其实是对偶问题的约束 A T v + λ = C A^Tv +\lambda =C ATv+λ=C

你可能感兴趣的:(对偶问题、KKT条件、LP中的对偶问题)