拉格朗日对偶性

阅读本文之前,可先阅读博客

1. 原始问题

   假设 $f(x),g_{i}(x),c_{j}(x)$ 是定义在 $R^{n}$ 上的连续可微函数,考虑约束最优化问题:

$$min_{x} ; f(x) \
s.t. ;;; g_{i}(x) leq 0, ;;; i = 1,2,cdots,k \
c_{j}(x) = 0, ;;; j = 1,2,cdots, l $$

   称为约束最优化问题的原始问题。

   引进广义拉格朗日函数:

$$L(x,lambda,mu) = f(x) + sum_{i=1}^{k}lambda_{i}g_{i}(x) + sum_{j=1}^{l}mu_{j}c_{j}(x), lambda_{i} geq 0$$

   因为原始问题包含不等式约束,所以上面这个拉格朗日函数的最小值和原始问题并不等价,与原始问题等价的是对应的 KKT 条件。

   现在,把 $L(x,lambda,mu)$ 看作是关于 $lambda_{i},mu_{j}$ 的函数,$x$ 为常量要求其最大值,即

$$max_{lambda,mu ;:;lambda_{i} geq 0} L(x,lambda,mu)$$

   经过我们优化(不要管什么方法),就是确定 $lambda_{i},mu_{j}$ 的值使得 $L(x,lambda,mu)$ 取得最大值(此过程中把 $x$ 看做常量),确定了 $lambda_{i},mu_{j}$ 的值,

   就可以得到 $L(x,lambda,mu)$ 的最大值,因为 $lambda_{i},mu_{j}$ 已经确定,显然最大值 $max_{lambda,mu ;:;lambda_{i} geq 0} L(x,lambda,mu)$ 就是只和 $x$ 有关的函数,定义这个函数为:

$$ heta_{P}(x) = max_{lambda,mu ;:;lambda_{i} geq 0} L(x,lambda,mu)$$

   假设原始问题总是有解的,对 $ heta_{P}(x)$ 定义域中的 $x$ 就只有两种情况:

   1)某个 $x$ 不满足原始的约束

      就是说将这个 $x$ 代入函数有 $g_{i}(x) > 0$ 或 $c_{j}(x) eq 0$,那么此时 $ heta_{P}(x)$ 变成什么样子呢?

      $ heta_{P}(x)$ 是关于 $lambda_{i},mu_{j}$ 函数的最大值,无论是破坏了哪个约束,都可以取对应的参时 $lambda_{i} ightarrow infty ; or ; mu_{j} ightarrow infty$使函数值趋于 $infty$。

   2)某个 $x$ 满足原始的全部约束

      因为已经假设原始问题有解,所有一定会有满足约束的 $x$ 存在。

      这种情况意味着 $ heta_{P}(x)$ 中含 $c_{j}(x)$ 的项全部为 $0$,含  $g_{i}(x)$ 的项全部非正,那么要使 $ heta_{P}(x)$ 取最大值,就得使 $g_{i}(x)$ 的

      有系数 $lambda_{i} = 0$,所以此时最大值就是 $f(x)$(因为 $x$ 为常数,所以这是一个常数项)。

   综上可得:

                                                                                         

   因为已假设原始问题一定有解,所以 $min_{P}(x)$ 一定是满足约束条件的 $x$ 取到的,所以有如下等价:

$$left{egin{matrix}
min_{x} ; f(x) \
s.t. ;; g_{i}(x) leq 0, ;;; i = 1,2,cdots,k \
c_{j}(x) = 0, ;;; j = 1,2,cdots, l
end{matrix} ight.  ; Leftrightarrow ;
min_{x} heta_{P}(x) = min_{x} igg [ max_{lambda,mu ;:;lambda_{i} geq 0} L(x,lambda,mu) igg]$$

   原始问题就完全转化为一个最小最大问题。

2. 对偶问题

   依然是研究这个广义的拉格朗日函数:

$$L(x,lambda,mu) = f(x) + sum_{i=1}^{k}lambda_{i}g_{i}(x) + sum_{j=1}^{l}mu_{j}c_{j}(x), lambda_{i} geq 0$$

   现在,把 $L(x,lambda,mu)$ 看作是关于 $x$ 的函数,$lambda_{i},mu_{j}$ 为常量要求其最小值,即

$$min_{x} L(x,lambda,mu)$$

   经过我们优化(不要管什么方法),就是确定 $x$ 的值使得 $L(x,lambda,mu)$ 取得最小值(此过程中把 $lambda_{i},mu_{j}$ 看做常量),确定了 $x$ 的值,

   就可以得到 $L(x,lambda,mu)$ 的最小值,因为 $x$ 已经确定,显然最小值 $min_{x} L(x,lambda,mu)$ 就是只和 $lambda_{i},mu_{j}$ 有关的函数,定义这个函数为:

$$ heta_{D}(lambda, mu) = min_{x} L(x,lambda,mu)$$

   对这个函数考虑极大值,即

$$max_{lambda,mu ;:;lambda_{i} geq 0} heta_{D}(lambda, mu) = max_{lambda,mu ;:;lambda_{i} geq 0} igg [ min_{x} L(x,lambda,mu) igg ]$$

   这个最大最小问题就是原始问题的对偶问题

   那原始问题和其对偶问题有什么关系呢?若原始问题与对偶问题都有最优值,对偶问题的最优解 $leq$ 原始问题的最优解,即

$$max_{lambda,mu ;:;lambda_{i} geq 0} igg [ min_{x} L(x,lambda,mu) igg ] leq min_{x} igg [ max_{lambda,mu ;:;lambda_{i} geq 0} L(x,lambda,mu) igg]$$

   证明:

       对任意的 $x, lambda, mu$,有

$$min_{x} L(x,lambda,mu) leq L(x,lambda,mu) leq max_{lambda,mu ;:;lambda_{i} geq 0} L(x,lambda,mu)$$

       即:

$$ heta_{D}(x) leq heta_{P}(x)$$

       由于原始问题与对偶问题都有最优值,所以

$$max_{lambda,mu ;:;lambda_{i} geq 0} heta_{D}(x) leq min_{x} heta_{P}(x)$$

   证毕

   所以:我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等。

   那什么时候这两个最优值会相等呢?暂时不叙述。

原文地址:https://www.cnblogs.com/yanghh/p/13744962.html