KKT (LICQ)

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

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

基本内容

问题
min ⁡ x ∈ Ω f ( x ) , (1) \tag{1} \min_{x \in \Omega} f(x), xΩminf(x),(1)
在等式约束条件:
c i ( x ) = 0 , i ∈ ξ , (2) \tag{2} c_i(x) = 0, i \in \xi, ci(x)=0,iξ,(2)
及不等约束条件:
c i ( x ) ≥ 0 , i ∈ I . (3) \tag{3} c_i(x) \ge 0, i \in \mathcal{I}. ci(x)0,iI.(3)
不妨就记
Ω = { x : c i ( x ) = 0 , i ∈ ξ , c i ( x ) ≥ 0 , i ∈ I } . \Omega = \{x: c_i(x) = 0, i \in \xi, c_i(x)\ge 0, i \in \mathcal{I}\}. Ω={x:ci(x)=0,iξ,ci(x)0,iI}.
在不等式约束中, 即只有当我们所寻的极值点 x ∗ x^* x处, c i ( x ∗ ) = 0 , i ∈ I c_i(x^*)=0, i \in \mathcal{I} ci(x)=0,iI称之为激活不等式约束(active inequality constraints), 否则为不激活的, 我们记激活的不等式约束和等式约束为 A \mathcal{A} A.

注: 均连续可微.

对于任意一个可行点 x 0 x_0 x0, 令 x ( t ) , t ≥ 0 x(t), t\ge 0 x(t),t0为一连续路径, 满足 t → 0 , x ( t ) → x 0 t\rightarrow 0, x(t) \rightarrow x_0 t0,x(t)x0,定义 d d d为:
x ( t ) − x 0 ∥ x ( t ) − x 0 ∥ → t → 0 d ∥ d ∥ . \frac{x(t) - x_0}{\|x(t)-x_0\|} \mathop{\rightarrow } \limits_{t \rightarrow 0} \frac{d}{\|d\|}. x(t)x0x(t)x0t0dd.

有如下性质:
∇ c i ( x ) d = 0 , i ∈ ξ ∇ c i ( x ) d ≥ 0 , i ∈ I ∩ A , (8,9) \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}, ci(x)d=0,iξci(x)d0,iIA,(8,9)
其中, 我们假设梯度向量为行向量.

证明:
c i ( x ( t ) ) − c i ( x 0 ) = ∇ c i ( x 0 ) ( x ( t ) − x 0 ) + o ( ∥ x ( t ) − x 0 ∥ ) = 0 , i ∈ ξ 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 ci(x(t))ci(x0)=ci(x0)(x(t)x0)+o(x(t)x0)=0,iξ
两边同除以 ∥ x ( t ) − x 0 ∥ \|x(t)-x_0\| x(t)x0, 并令 t → 0 t \rightarrow 0 t0即可得.
c i ( x ( t ) ) − c i ( x 0 ) = ∇ c i ( x 0 ) ( x ( t ) − x 0 ) + o ( ∥ x ( t ) − x 0 ∥ ) = c i ( x ( t ) ) ≥ 0 , i ∈ I ∩ A 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} ci(x(t))ci(x0)=ci(x0)(x(t)x0)+o(x(t)x0)=ci(x(t))0,iIA
与上面同样的操作即可得.

我们把这些由路径引导出来的可行方向 d d d的集合记为
T ( x ) = { d : d   f e a s i b l e   d i r e c t i o n   o u t   f r o m   x } . (10) \tag{10} \mathcal{T}(x) = \{d: d \: feasible \: di rection \: out \: from \: x\}. T(x)={d:dfeasibledirectionoutfromx}.(10)
而记满足 ( 8 , 9 ) (8, 9) (8,9)的一切 d d d的集合记为 F ( x ) \mathcal{F}(x) F(x), 显然 T ( x ) ⊂ F ( x ) \mathcal{T}(x) \subset \mathcal{F}(x) T(x)F(x), 且均为锥(即 d d d属于此集合, 则 α d , α > 0 \alpha d, \alpha > 0 αd,α>0也属于此集合).

LICQ 假设

x 0 x_0 x0满足LICQ假设, 当
{ ∇ c i ( x 0 ) } , i ∈ A , (14) \tag{14} \{\nabla c_i(x_0)\}, i \in \mathcal{A}, {ci(x0)},iA,(14)
是线性独立的.
线性不独立: 当集合中存在一个向量能够由其他向量线性表出, 否则称此集合线性独立. 显然这是比线性无关更强的一个概念.

KKT 定理

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

( i ) λ i ∗ ⋅ c i ( x ∗ ) = 0 , i ∈ ξ ∪ I , ( i i ) λ i ∗ ≥ 0 , i ∈ I . (18) \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} (i)(ii)λici(x)=0,iξI,λi0,iI.(18)

KKT定理的证明

记:
A = [ ∇ c 1 ( x ) ⋮ ∇ c m ( x ) ] A = \left [ \begin{array}{c} \nabla c_1(x) \\ \vdots \\ \nabla c_m(x) \end{array} \right ] A=c1(x)cm(x)
属于 A \mathcal{A} A的所有 c i c_i ci的梯度的综合表示,
c ( x ) = [ c 1 ( x ) , … , c m ( x ) ] T . c(x) = [c_1(x), \ldots, c_m(x)]^T. c(x)=[c1(x),,cm(x)]T.

引理A

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

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

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

根据假设可知, dim( A A A) = m m m, 则 A A A的核的维数为 d i m ( N ( A ) ) = n − m dim(N(A))=n-m dim(N(A))=nm, 我们从核空间中抽取一组基作为行向量构建 Z ′ Z' Z, 则
[ A Z ′ ] (24) \tag{24} \left [ \begin{array}{c} A \\ Z' \end{array} \right ] [AZ](24)
是一个非奇异的 n × n n\times n n×n的方阵.

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

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

也就是说
y ( t ) − x = t d + o ( ∥ y ( t ) − x ∥ ) , (29) \tag{29} y(t)-x=td+o(\|y(t)-x\|), y(t)x=td+o(y(t)x),(29)
俩边令 t → 0 t \rightarrow 0 t0, 可知 y ( t ) y(t) y(t) d d d的一个连续路径.
又结合(25)
c ( y ( t ) ) − t A d = 0 , (30) \tag{30} c(y(t))-tAd=0, c(y(t))tAd=0,(30)
c i ( y ( t ) ) = t ∇ c i ( x ) d = { 0 , i ∈ ξ ≥ 0 , i ∈ I ∩ A . (31) \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 . ci(y(t))=tci(x)d={0,0,iξiIA.(31)
所以对于任意的 i ∈ A i \in \mathcal{A} iA, y ( t ) y(t) y(t)是可行路径, 对于未激活的不等式约束, 既然 y ( t ) y(t) y(t)是连续的, 当 t t t足够效地时候容易得到 c i ( y ( t ) ) > 0 , i ∈ I , i ∉ A c_i(y(t)) > 0, i \in \mathcal{I}, i \not \in \mathcal{A} ci(y(t))>0,iI,iA. 这样便证明了, ∀ d ∈ F ( x ) \forall d \in \mathcal{F}(x) dF(x), 均为可行方向, 故 F ( x ) = T ( x ) \mathcal{F}(x) =\mathcal{T}(x) F(x)=T(x).

Farkas 引理

Farkas 引理: 令 g g g { a i } i = 1 m \{a_i\}_{i=1}^m {ai}i=1m n n n维行向量且
S = { d ∈ R n ; g d < 0 , a i d ≥ 0 , i = 1 , … , m } , (33) \tag{33} \mathcal{S} = \{ d \in \mathbb{R}^n; gd<0 , a_id \ge 0, i=1, \ldots, m\}, S={dRn;gd<0,aid0,i=1,,m},(33)
S = ∅ \mathcal{S} = \empty S=当且仅当存在非负向量 λ ∈ R m \lambda \in \mathbb{R}^m λRm 使得
g = ∑ i = 1 m λ i a i . (34) \tag{34} g = \sum_{i=1}^m \lambda_i a_i. g=i=1mλiai.(34)

证明:

⇐ \Leftarrow

∀ d ∈ S \forall d \in \mathcal{S} dS,
0 > g d = ∑ i = 1 m λ i a i d ≥ 0 , 0 > gd = \sum_{i=1}^m \lambda_i a_id \ge 0, 0>gd=i=1mλiaid0,
S = ∅ \mathcal{S} = \empty S=.

⇒ \Rightarrow

若不存在这样的 λ \lambda λ, 即对于任意的 λ \lambda λ, g ≠ ∑ i = 1 m λ i a i g \not =\sum_{i=1}^m \lambda_i a_i g=i=1mλiai, 则 g g g不能由 { a i } \{a_i\} {ai}线性表出. 不妨假设 { a i } \{a_i\} {ai} g g g按序进行施密特正交化过程, 可得 { a ^ i } \{\hat{a}_i\} {a^i} { a i } \{a_i\} {ai}的一正交向量组, h h h
h = g − ∑ i ⟨ g , a ^ i ⟩ a ^ i , h = g- \sum_i \langle g,\hat{a}_i\rangle \hat{a}_i, h=gig,a^ia^i,

⟨ h , a i ⟩ = 0 , ⟨ h , g ⟩ = l ≠ 0. \langle h, a_i \rangle = 0, \\ \langle h, g \rangle = l \not = 0. h,ai=0,h,g=l=0.
不妨设 l < 0 l<0 l<0(否则 h = − h h=-h h=h), 则 h ∈ S h \in \mathcal{S} hS, 这与 S = ∅ \mathcal{S} = \empty S=矛盾.

证毕.

定义问题 P \mathcal{P} P:
g d < 0 , A d ≥ 0. (36) \tag{36} gd < 0, \\ Ad \ge 0. gd<0,Ad0.(36)
定义问题 D \mathcal{D} D:
g = λ T A , λ ≥ 0. (37) \tag{37} g = \lambda^T A, \lambda \ge 0. g=λTA,λ0.(37)

推论

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

KKT定理的证明

既然 x ∗ x^* x是一局部极值点, 则
∇ f ( x ∗ ) d ≥ 0 , ∀ d ∈ T ( x ∗ ) = F ( x ∗ ) , (38) \tag{38} \nabla f(x^*) d \ge 0, \forall d \in \mathcal{T} (x^*) =\mathcal{F}(x^*), f(x)d0,dT(x)=F(x),(38)
∇ f ( x ∗ ) \nabla f(x^*) f(x)视作Farkas引理中的 g g g, A A A即为我们最开始定义的 A A A, 则 ∀ A d ≥ 0 \forall Ad \ge 0 Ad0, d ∈ F ( x ) d \in \mathcal{F}(x) dF(x), 这是因为所有等式约束 c i ( x ) = 0 c_i(x)=0 ci(x)=0, 都可以变成俩个不等式约束 c i ( x ) ≥ 0 , − c i ( x ) ≥ 0 c_i(x)\ge0, -c_i(x) \ge 0 ci(x)0,ci(x)0. 这也就是说, 问题 P \mathcal{P} P无解, 则 D \mathcal{D} D有解, 即存在 λ ∗ ≥ 0 \lambda^* \ge 0 λ0:
∇ f ( x ∗ ) = ∑ λ i ∗ ∇ c i ( x ∗ ) , λ i ∗ ≥ 0. (39) \tag{39} \nabla f(x^*) = \sum \lambda_i^* \nabla c_i(x^*), \lambda_i^* \ge 0. f(x)=λici(x),λi0.(39)
对于任意的 i ∉ A i \not \in \mathcal{A} iA, 我们只需取 λ i ∗ = 0 \lambda_i^*=0 λi=0, (39)依然成立, 同时原定理(18)中的(i)(ii)也同样容易证明.

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: YALMIP是一种用于高级建模、仿真和优化的MATLAB工具箱。在使用YALMIP进行优化时,KKT命令是必不可少的。 KKT(Karush-Kuhn-Tucker)条件,也称为Kuhn-Tucker条件或定价边界条件是非线性规划的常见优化算法。通过使用KKT条件,可以确定最小或最大值点,并评估约束条件。在YALMIP中,KKT命令用于求解无约束优化问题的KKT条件。 具体而言,KKT命令可以用于判断解是否满足KKT条件,以及评估目标函数和约束函数的导数是否同时为零。如果目标函数和约束函数的导数同时为零,则解是一个可能的最小或最大点。如果解不满足KKT条件,则可以继续调整优化器的参数,直到结果满足条件。 总而言之,YALMIP的KKT命令为优化问题的解提供了一种标准化的评估方法,帮助用户通过调整优化器参数,使解满足KKT条件,获得更准确的最小或最大值。 ### 回答2: YALMIP是MATLAB中的一个优化工具箱,旨在为用户提供简单但功能强大的界面来求解各种最优化问题。它支持多种最优化求解器,并使用高级导数和自动微分算法实现凸和非凸优化问题的求解。 在YALMIP中使用KKT命令,是用来求解KKT条件(Karush-Kuhn-Tucker条件)的。KKT条件是线性或非线性规划问题的必要条件,可以用来确定最优解,以及使用它来检验已有的解是否确实为最优解。KKT条件公式如下: $$ \begin{aligned} \nabla f(x) - \sum_{i=1}^m \lambda_i \nabla h_i(x) - \sum_{j=1}^k \mu_j \nabla g_j(x) &= 0\\ h_i(x)&=0, i=1,\dots,m\\ g_j(x) &\leq 0, j=1,\dots,k\\ \mu_j &\geq 0, j=1,\dots, k\\ \mu_j g_j(x) &= 0, j=1,\dots,k\\ \end{aligned} $$ 其中,f(x)是目标函数,h_i(x)和g_j(x)是约束条件,λ_i和μ_j是KKT条件中的拉格朗日乘子。 使用YALMIP中的KKT命令,可以通过对问题的目标函数和约束条件进行编码,得到问题的最优解点和对应的KKT条件等信息。此外,KKT命令对于非线性问题和需要求解的维数较高的问题也有良好的适用性。 ### 回答3: YALMIP是一种用于数学建模和优化问题求解的MATLAB工具箱,它支持多种优化问题的建模、求解和分析。其中,KKT命令是YALMIP工具箱中用于求解带约束的非线性优化问题的一种功能。 KKT策略(Karush-Kuhn-Tucker策略)是一种常用的求解非线性优化问题的算法,它在一定程度上是将Lagrange乘子方法与不等式约束问题相结合的结果。KKT策略和Lagrange乘子方法一样,以一组特殊的必要和充分条件来求得最优解,但KKT策略更加灵活,可以用于求解更为复杂的优化问题。 YALMIP中的KKT命令即是利用KKT条件求解优化问题的一种方法,它使用了一个新的内部算法来解决这个问题,其中,不仅会计算出最优解,还会给出相应的乘子和KKT条件。KKT命令适用于遵循凸优化规则的优化问题,并且可以用于处理非线性的、非光滑的、混合整数的和二次限制问题。 总之,YALMIP中的KKT命令是非常强大和灵活的一种优化工具,它可以帮助用户更加高效地求解优化问题,并且为用户提供了更多的优化选项,让用户能够更好地完成各种复杂的数学建模任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值