阅读本文之前,可先阅读博客。
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)$$
证毕
所以:我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等。
那什么时候这两个最优值会相等呢?暂时不叙述。