• KKT (LICQ)


    H. E. Krogstad, TMA 4180 Optimeringsteori KARUSH-KUHN-TUCKER THEOREM

    KKT条件在处理有约束问题的时候很有用, 但是对KKT的适用性一直不是很理解, 看了这篇讲解整理一下.

    基本内容

    问题

    [ ag{1} min_{x in Omega} f(x), ]

    在等式约束条件:

    [ ag{2} c_i(x) = 0, i in xi, ]

    及不等约束条件:

    [ ag{3} c_i(x) ge 0, i in mathcal{I}. ]

    不妨就记

    [Omega = {x: c_i(x) = 0, i in xi, c_i(x)ge 0, i in mathcal{I}}. ]

    在不等式约束中, 即只有当我们所寻的极值点(x^*)处, (c_i(x^*)=0, i in mathcal{I})称之为激活不等式约束(active inequality constraints), 否则为不激活的, 我们记激活的不等式约束和等式约束为(mathcal{A}).

    注: 均连续可微.

    对于任意一个可行点(x_0), 令(x(t), tge 0)为一连续路径, 满足(t ightarrow 0, x(t) ightarrow x_0),定义(d)为:

    [frac{x(t) - x_0}{|x(t)-x_0|} mathop{ ightarrow } limits_{t ightarrow 0} frac{d}{|d|}. ]

    有如下性质:

    [ ag{8,9} abla c_i(x) d = 0, i in xi \ abla c_i(x) d ge 0, i in mathcal{I cap A}, ]

    其中, 我们假设梯度向量为行向量.

    证明:

    [ c_i(x(t)) - c_i(x_0) = abla c_i(x_0)(x(t)-x_0) + o(|x(t)-x_0|) = 0, i in xi ]

    两边同除以(|x(t)-x_0|), 并令(t ightarrow 0)即可得.

    [ c_i(x(t)) - c_i(x_0) = abla c_i(x_0)(x(t)-x_0) + o(|x(t)-x_0|) = c_i(x(t)) ge 0, i in mathcal{I cap A} ]

    与上面同样的操作即可得.

    我们把这些由路径引导出来的可行方向(d)的集合记为

    [ ag{10} mathcal{T}(x) = {d: d : feasible : di rection : out : from : x}. ]

    而记满足((8, 9))的一切(d)的集合记为(mathcal{F}(x)), 显然(mathcal{T}(x) subset mathcal{F}(x)), 且均为锥(即(d)属于此集合, 则(alpha d, alpha > 0)也属于此集合).

    LICQ 假设

    (x_0)满足LICQ假设, 当

    [ ag{14} { abla c_i(x_0)}, i in mathcal{A}, ]

    是线性独立的.
    线性不独立: 当集合中存在一个向量能够由其他向量线性表出, 否则称此集合线性独立. 显然这是比线性无关更强的一个概念.

    KKT 定理

    假设(x^*)是问题(1)在等式约束(2)以及不等式约束(3)的限制下的局部最小值点, 且满足LICQ假设. 则存在(lambda_i^*)满足:

    [ ag{17} abla f(x^*) = sum_{i in xi cup mathcal{I}} lambda_i^* abla c_i(x^*), ]

    [ ag{18} egin{array}{lc} (i) & lambda_i^* cdot c_i(x^*) = 0, i in xi cup mathcal{I}, \ (ii) & lambda_i^* ge 0, i in mathcal{I}. end{array} ]

    KKT定理的证明

    记:

    [A = left [ egin{array}{c} abla c_1(x) \ vdots \ abla c_m(x) end{array} ight ] ]

    属于(mathcal{A})的所有(c_i)的梯度的综合表示,

    [c(x) = [c_1(x), ldots, c_m(x)]^T. ]

    引理A

    引理A: 当(x in R^n)满足LICQ假设, 则(mathcal{T}(x) = mathcal{F}(x)).

    证明:
    既然(mathcal{T}(x) subset mathcal{F}(x)), 我们只需要证明(mathcal{F}(x) subset mathcal{T}(x)).

    下面, (forall d in mathcal{F}(x)), 我们将构造(y(t), t ge 0), 为一连续的起点为(y(0)=x)的路径, 且在(x)的足够小的一个邻域内(y(t))满足等式约束和不等式约束, 一旦找到这样的(y(t)), 证明也就完成了.

    根据假设可知, dim((A)) = (m), 则(A)的核的维数为(dim(N(A))=n-m), 我们从核空间中抽取一组基作为行向量构建(Z'), 则

    [ ag{24} left [ egin{array}{c} A \ Z' end{array} ight ] ]

    是一个非奇异的(n imes n)的方阵.

    考虑如下的非线性方程系统(显然有解(t=0,y=x))

    [ ag{25} R(y, t) = left [ egin{array}{c} c(y) - tAd \ Z'(y - x -td) end{array} ight ] = 0. ]

    关于(y)的加科比行列式为

    [ ag{26} frac{partial R}{partial y} |_{t=0} = left [ egin{array}{c} A \ Z' end{array} ight ], ]

    非奇异, 所以根据隐函数定理可知, 在(t)足够小的时候, 存在连续可微函数(y(t)), 且(y(0)=x).

    既然

    [ ag{27} c(y)=c(x) + abla c(x)(y-x) + o(|y-x|) = A(y-x)+o(|y-x|), ]

    我们有

    [ ag{28} 0=R(y(t),t) = left [ egin{array}{c} A \ Z' end{array} ight ] (y(t)-x-td) + o(|y(t)-x|). ]

    也就是说

    [ ag{29} y(t)-x=td+o(|y(t)-x|), ]

    俩边令(t ightarrow 0), 可知(y(t))(d)的一个连续路径.
    又结合(25)

    [ ag{30} c(y(t))-tAd=0, ]

    [ ag{31} c_i(y(t))=t abla c_i(x)d = left { egin{array}{ll} 0, & i in xi \ ge 0 , & i in mathcal{I cap A} . end{array} ight . ]

    所以对于任意的(i in mathcal{A}), (y(t))是可行路径, 对于未激活的不等式约束, 既然(y(t))是连续的, 当(t)足够效地时候容易得到(c_i(y(t)) > 0, i in mathcal{I}, i ot in mathcal{A}). 这样便证明了, (forall d in mathcal{F}(x)), 均为可行方向, 故(mathcal{F}(x) =mathcal{T}(x)).

    Farkas 引理

    Farkas 引理: 令(g)({a_i}_{i=1}^m)(n)维行向量且

    [ ag{33} mathcal{S} = { d in mathbb{R}^n; gd<0 , a_id ge 0, i=1, ldots, m}, ]

    (mathcal{S} = empty)当且仅当存在非负向量(lambda in mathbb{R}^m) 使得

    [ ag{34} g = sum_{i=1}^m lambda_i a_i. ]

    证明:

    (Leftarrow)

    (forall d in mathcal{S}),

    [0 > gd = sum_{i=1}^m lambda_i a_id ge 0, ]

    (mathcal{S} = empty).

    (Rightarrow)

    若不存在这样的(lambda), 即对于任意的(lambda), (g ot =sum_{i=1}^m lambda_i a_i), 则(g)不能由({a_i})线性表出. 不妨假设({a_i})(g)按序进行施密特正交化过程, 可得({hat{a}_i})({a_i})的一正交向量组, (h)

    [h = g- sum_i langle g,hat{a}_i angle hat{a}_i, ]

    [langle h, a_i angle = 0, \ langle h, g angle = l ot = 0. ]

    不妨设(l<0)(否则(h=-h)), 则(h in mathcal{S}), 这与(mathcal{S} = empty)矛盾.

    证毕.

    定义问题(mathcal{P}):

    [ ag{36} gd < 0, \ Ad ge 0. ]

    定义问题(mathcal{D}):

    [ ag{37} g = lambda^T A, lambda ge 0. ]

    推论

    推论: 要么问题(mathcal{P})存在解, 要么(mathcal{D})存在解, 二者不能同时成立.

    KKT定理的证明

    既然(x^*)是一局部极值点, 则

    [ ag{38} abla f(x^*) d ge 0, forall d in mathcal{T} (x^*) =mathcal{F}(x^*), ]

    ( abla f(x^*))视作Farkas引理中的(g), (A)即为我们最开始定义的(A), 则(forall Ad ge 0), (d in mathcal{F}(x)), 这是因为所有等式约束(c_i(x)=0), 都可以变成俩个不等式约束(c_i(x)ge0, -c_i(x) ge 0). 这也就是说, 问题(mathcal{P})无解, 则(mathcal{D})有解, 即存在(lambda^* ge 0):

    [ ag{39} abla f(x^*) = sum lambda_i^* abla c_i(x^*), lambda_i^* ge 0. ]

    对于任意的(i ot in mathcal{A}), 我们只需取(lambda_i^*=0), (39)依然成立, 同时原定理(18)中的(i)(ii)也同样容易证明.

  • 相关阅读:
    struts学习struts.xml
    ie6 7中span右浮动折行问题解决
    java中的overload,override
    java中的专业术语POJO(转)
    javascript中","的作用
    线程和进程的区别(转)
    java学习servlet/filter/listener/interceptor区别与联系(转)
    struts 2.3.8中可能导致上传文件时获取不到文件信息的错误原因
    java中enum的使用(转载)
    什么叫面向接口编程以及面向接口编程的好处
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/12544378.html
Copyright © 2020-2023  润新知