zoukankan      html  css  js  c++  java
  • 拉格朗日对偶性

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

    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)$$

       证毕

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

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

  • 相关阅读:
    树莓派常用Linux命令
    列出树莓派中系统中建立了哪些用户、哪些组?
    树莓派的用户管理
    树莓派变成一个Web服务器: nginx + php + sqlite
    树莓派做web服务器(nginx、Apache)
    树莓派修改更新源
    树莓派安装mysql
    树莓派2 购买心得
    python写的屏保程序
    win32下利用python操作printer
  • 原文地址:https://www.cnblogs.com/yanghh/p/13744962.html
Copyright © 2011-2022 走看看