美文网首页
KKT (LICQ)

KKT (LICQ)

作者: 馒头and花卷 | 来源:发表于2020-03-22 10:35 被阅读0次

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

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

    基本内容

    问题
    \tag{1} \min_{x \in \Omega} f(x),
    在等式约束条件:
    \tag{2} c_i(x) = 0, i \in \xi,
    及不等约束条件:
    \tag{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), t\ge 0为一连续路径, 满足t\rightarrow 0, x(t) \rightarrow x_0,定义d为:
    \frac{x(t) - x_0}{\|x(t)-x_0\|} \mathop{\rightarrow } \limits_{t \rightarrow 0} \frac{d}{\|d\|}.

    有如下性质:
    \tag{8,9} \nabla c_i(x) d = 0, i \in \xi \\ \nabla c_i(x) d \ge 0, i \in \mathcal{I \cap A},
    其中, 我们假设梯度向量为行向量.

    证明:
    c_i(x(t)) - c_i(x_0) = \nabla c_i(x_0)(x(t)-x_0) + o(\|x(t)-x_0\|) = 0, i \in \xi
    两边同除以\|x(t)-x_0\|, 并令t \rightarrow 0即可得.
    c_i(x(t)) - c_i(x_0) = \nabla 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的集合记为
    \tag{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假设, 当
    \tag{14} \{\nabla c_i(x_0)\}, i \in \mathcal{A},
    是线性独立的.
    线性不独立: 当集合中存在一个向量能够由其他向量线性表出, 否则称此集合线性独立. 显然这是比线性无关更强的一个概念.

    KKT 定理

    假设x^*是问题(1)在等式约束(2)以及不等式约束(3)的限制下的局部最小值点, 且满足LICQ假设. 则存在\lambda_i^*满足:
    \tag{17} \nabla f(x^*) = \sum_{i \in \xi \cup \mathcal{I}} \lambda_i^* \nabla c_i(x^*),

    \tag{18} \begin{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 [ \begin{array}{c} \nabla c_1(x) \\ \vdots \\ \nabla c_m(x) \end{array} \right ]
    属于\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', 则
    \tag{24} \left [ \begin{array}{c} A \\ Z' \end{array} \right ]
    是一个非奇异的n\times n的方阵.

    考虑如下的非线性方程系统(显然有解t=0,y=x)
    \tag{25} R(y, t) = \left [ \begin{array}{c} c(y) - tAd \\ Z'(y - x -td) \end{array} \right ] = 0.
    关于y的加科比行列式为
    \tag{26} \frac{\partial R}{\partial y} |_{t=0} = \left [ \begin{array}{c} A \\ Z' \end{array} \right ],
    非奇异, 所以根据隐函数定理可知, 在t足够小的时候, 存在连续可微函数y(t), 且y(0)=x.

    既然
    \tag{27} c(y)=c(x) + \nabla c(x)(y-x) + o(\|y-x\|) = A(y-x)+o(\|y-x\|),
    我们有
    \tag{28} 0=R(y(t),t) = \left [ \begin{array}{c} A \\ Z' \end{array} \right ] (y(t)-x-td) + o(\|y(t)-x\|).

    也就是说
    \tag{29} y(t)-x=td+o(\|y(t)-x\|),
    俩边令t \rightarrow 0, 可知y(t)d的一个连续路径.
    又结合(25)
    \tag{30} c(y(t))-tAd=0,
    \tag{31} c_i(y(t))=t\nabla c_i(x)d = \left \{ \begin{array}{ll} 0, & i \in \xi \\ \ge 0 , & i \in \mathcal{I \cap A} . \end{array} \right .
    所以对于任意的i \in \mathcal{A}, y(t)是可行路径, 对于未激活的不等式约束, 既然y(t)是连续的, 当t足够效地时候容易得到c_i(y(t)) > 0, i \in \mathcal{I}, i \not \in \mathcal{A}. 这样便证明了, \forall d \in \mathcal{F}(x), 均为可行方向, 故\mathcal{F}(x) =\mathcal{T}(x).

    Farkas 引理

    Farkas 引理: 令g\{a_i\}_{i=1}^mn维行向量且
    \tag{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 使得
    \tag{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 \not =\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\rangle \hat{a}_i,

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

    证毕.

    定义问题\mathcal{P}:
    \tag{36} gd < 0, \\ Ad \ge 0.
    定义问题\mathcal{D}:
    \tag{37} g = \lambda^T A, \lambda \ge 0.

    推论

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

    KKT定理的证明

    既然x^*是一局部极值点, 则
    \tag{38} \nabla f(x^*) d \ge 0, \forall d \in \mathcal{T} (x^*) =\mathcal{F}(x^*),
    \nabla 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:
    \tag{39} \nabla f(x^*) = \sum \lambda_i^* \nabla c_i(x^*), \lambda_i^* \ge 0.
    对于任意的i \not \in \mathcal{A}, 我们只需取\lambda_i^*=0, (39)依然成立, 同时原定理(18)中的(i)(ii)也同样容易证明.

    相关文章

      网友评论

          本文标题:KKT (LICQ)

          本文链接:https://www.haomeiwen.com/subject/ademyhtx.html