存在即有理---拉格朗日对偶

3,316 阅读2分钟

这得需要一点拉格朗日乘子法的认识。大家可能都很熟悉这个著名的方法。但是还是有很多入门的朋友忘记了具体过程的,所以还是希望大家看一下这个来系统的认识一下此方法《拉格朗日乘子法》

\bf \color{red}{前方多公式预警,非战斗人员撤离}

建议战斗人员多啃几遍,最好可以做到自己可以手推公式。

原函数问题

我们重新回到那个一般情况下的约束问题:

\min_{x\in R^n}\ f(x)
s.t. \quad c_{i}(x)\leq0 \ ,\quad i=1,2,...,k
\quad \qquad h_{j}(x)=0 \ ,\quad j=1,2,...,l

其拉格朗日函数为:

L(x,\alpha, \beta) = f(x) + \sum _{i=1}^k  \alpha_{i} c_{i}(x)+ \sum_{j=1}^l \beta_{j} h_{j} (x)

我们令:

\theta_P(x) = \max_{\alpha,\beta: \alpha_i \geq0}L(x,\alpha,\beta)

《拉格朗日乘子法》里所述的不等式约束情况下的推导,可知如下:

\theta_P(x) =
\begin{cases} 
f(x), \quad x \text{满足原始问题约束} \\ 
+\infty, \quad others \\
\end{cases}

所以考虑极小化问题:

\min_x \theta_P(x) = \min_x \max_{\alpha,\beta: \alpha_i \geq0}L(x,\alpha,\beta)

这与原始问题的解是等价的。因为最小化将+\infty给去掉了。这个最新的极小化问题称为广义拉格朗日函数的极小极大问题。我们定义:

p^* = \min_x \theta_P(x)

对偶问题

我们再定义:

\theta_D(\alpha,\beta) = \min_xL(x, \alpha,\beta)

则:

\max_{\alpha,\beta}\theta_D(\alpha,\beta) = \max_{ \alpha,\beta} \ \min_xL(x,\alpha,\beta)
s.t. \qquad    \alpha_i   \geq 0, \quad i =1,2,...,k

被称为原始问题的对偶问题。同样的,我们也定义:

d^* = \max_{\alpha,\beta:\alpha_i \geq0}\theta_D( \alpha,\beta)

称为对偶问题的值。

原始问题与对偶问题的关系

若原始问题和对偶问题都有最优值,则:

d^* = \max_{\alpha,\beta:\alpha_i \geq 0} \min_x L(x, \alpha,\beta) \leq \min_x \max_{\alpha,\beta:\alpha_i\geq0}L(x,\alpha,\beta) = p^*

证明:

对于任意的\alpha,\betax,有

\theta_D(\alpha,\beta)=\min_x L(x, \alpha,\beta)\leq L(x,\alpha,\beta)
\qquad \qquad \leq \max_{ \alpha,\beta:\alpha_i \geq0}L(x,\alpha,\beta)= \theta_P(x)

\theta_D(\alpha,\beta) \leq \theta_P(x)

由于原始问题和对偶问题均有最优值,所以,

\max_{\alpha,\beta:\alpha_i\geq0}\theta_D(\alpha,\beta)\leq \min_x \theta_P(x)

即:

d^*=\max_{\alpha,\beta,\alpha_i \geq0}\min_xL(x,\alpha,\beta)\leq\min_x\max_{ \alpha,\beta:\alpha_i \geq0}L(x,\alpha,\beta)=p^*

由此我们便可以推论出若d^*=p^*,则如果x^*, \alpha^*,\beta^*为原始问题与对偶问题的可行解,那便是最优解。

在KKT条件之下,原始问题和对偶问题的最优解相等,即d^*=p^*。这时候我们求解对偶问题便可得到原始问题的解。如果朋友们不太理解KKT条件,则可以看这篇文章《拉格朗日乘子法》


片尾彩蛋——手推KKT条件与对偶关系。

我们对于最优化问题:

\min_xf(x) \qquad \qquad s.t. \; g_i(x) \leq0 \quad i=1,2,...,l

有如下拉格朗日函数:

L(x,\mu)=f(x)+ \sum_{i=1}^l \mu_ig_i(x)

我们注意到,这里我们令\mu_i \geq0,原因同上文所述。则\mu g(x)\leq0,那么:

\max_{\mu}L(x,\mu)=\max_{\mu}f(x)+\max_{\mu} \sum_{i=1}^l \mu_i g_i(x)=\max_{\mu}f(x)

继而我们得到:

\min_xf(x)=\min_x \max_{\mu}L(x,\mu)

我们先停在这,换一条主线: 我们由对偶问题\max_{\mu} \min_xL(x,\mu)展开:

\max_{\mu} \min_xL(x,\mu)=\max_{\mu}[\min_xf(x)+\min_x \mu g(x)]
\qquad\qquad \qquad \quad =\min_xf(x)+\max_{\mu}\min_x \mu g(x)

我们需要注意这里的\mug(x)都是向量,所以我去掉了下标i,由于f(x)\mu无关,所以上式成立。 又易知:

\min_x \mu g(x)=
\begin{cases} 
0 \qquad if\ \mu=0 \; or \; g(x)=0 \\ 
-\infty  \quad if \ \mu >0\ and \ g(x)<0\\
\end{cases}

那我们也有

\max_{\mu} \min_xL(x,\mu)=\min_xf(x)

那么这样的话,结合前面停下来的式子,我们便有:

\max_{\mu} \min_xL(x,\mu)=\min_x \max_{\mu}L(x,\mu)

这就是对偶问题与原问题相等。而这一切都建立在什么条件上呢?我们总结可得KKT条件:

\begin{cases} L(x,\mu)=f(x)+ \sum_{i=1}^l \mu_ig_i(x)\\ 
\mu_i \geq0\\
g_i(x)\leq0
\end{cases}

在此条件下,原问题和对偶问题相同,并且与\min_xf(x)相同。在最优解初\mu=0或者g(x)=0,此最优值也是L(x,\mu)的极值点。当然这一切都是在凸函数的前提下提出的。如果是非凸函数的话,KKT条件只能算是必要条件,而且也不存在比较好用的其他充要条件。

由此我们得到了KKT条件。由上文有完整KKT条件介绍