H. E. Krogstad, TMA 4180 Optimeringsteori KARUSH-KUHN-TUCKER THEOREM
KKT条件在处理有约束问题的时候很有用, 但是对KKT的适用性一直不是很理解, 看了这篇讲解整理一下.
基本内容
问题
x∈Ωminf(x),(1)
在等式约束条件:
ci(x)=0,i∈ξ,(2)
及不等约束条件:
ci(x)≥0,i∈I.(3)
不妨就记
Ω={x:ci(x)=0,i∈ξ,ci(x)≥0,i∈I}.
在不等式约束中, 即只有当我们所寻的极值点x∗处, ci(x∗)=0,i∈I称之为激活不等式约束(active inequality constraints), 否则为不激活的, 我们记激活的不等式约束和等式约束为A.
注: 均连续可微.
对于任意一个可行点x0, 令x(t),t≥0为一连续路径, 满足t→0,x(t)→x0,定义d为:
∥x(t)−x0∥x(t)−x0t→0→∥d∥d.
有如下性质:
∇ci(x)d=0,i∈ξ∇ci(x)d≥0,i∈I∩A,(8,9)
其中, 我们假设梯度向量为行向量.
证明:
ci(x(t))−ci(x0)=∇ci(x0)(x(t)−x0)+o(∥x(t)−x0∥)=0,i∈ξ
两边同除以∥x(t)−x0∥, 并令t→0即可得.
ci(x(t))−ci(x0)=∇ci(x0)(x(t)−x0)+o(∥x(t)−x0∥)=ci(x(t))≥0,i∈I∩A
与上面同样的操作即可得.
我们把这些由路径引导出来的可行方向d的集合记为
T(x)={d:dfeasibledirectionoutfromx}.(10)
而记满足(8,9)的一切d的集合记为F(x), 显然T(x)⊂F(x), 且均为锥(即d属于此集合, 则αd,α>0也属于此集合).
LICQ 假设
点x0满足LICQ假设, 当
{∇ci(x0)},i∈A,(14)
是线性独立的.
线性不独立: 当集合中存在一个向量能够由其他向量线性表出, 否则称此集合线性独立. 显然这是比线性无关更强的一个概念.
KKT 定理
假设x∗是问题(1)在等式约束(2)以及不等式约束(3)的限制下的局部最小值点, 且满足LICQ假设. 则存在λi∗满足:
∇f(x∗)=i∈ξ∪I∑λi∗∇ci(x∗),(17)
且
(i)(ii)λi∗⋅ci(x∗)=0,i∈ξ∪I,λi∗≥0,i∈I.(18)
KKT定理的证明
记:
A=⎣⎢⎡∇c1(x)⋮∇cm(x)⎦⎥⎤
属于A的所有ci的梯度的综合表示,
c(x)=[c1(x),…,cm(x)]T.
引理A
引理A: 当x∈Rn满足LICQ假设, 则T(x)=F(x).
证明:
既然T(x)⊂F(x), 我们只需要证明F(x)⊂T(x).
下面, ∀d∈F(x), 我们将构造y(t),t≥0, 为一连续的起点为y(0)=x的路径, 且在x的足够小的一个邻域内y(t)满足等式约束和不等式约束, 一旦找到这样的y(t), 证明也就完成了.
根据假设可知, dim(A) = m, 则A的核的维数为dim(N(A))=n−m, 我们从核空间中抽取一组基作为行向量构建Z′, 则
[AZ′](24)
是一个非奇异的n×n的方阵.
考虑如下的非线性方程系统(显然有解t=0,y=x)
R(y,t)=[c(y)−tAdZ′(y−x−td)]=0.(25)
关于y的加科比行列式为
∂y∂R∣t=0=[AZ′],(26)
非奇异, 所以根据隐函数定理可知, 在t足够小的时候, 存在连续可微函数y(t), 且y(0)=x.
既然
c(y)=c(x)+∇c(x)(y−x)+o(∥y−x∥)=A(y−x)+o(∥y−x∥),(27)
我们有
0=R(y(t),t)=[AZ′](y(t)−x−td)+o(∥y(t)−x∥).(28)
也就是说
y(t)−x=td+o(∥y(t)−x∥),(29)
俩边令t→0, 可知y(t)为d的一个连续路径.
又结合(25)
c(y(t))−tAd=0,(30)
ci(y(t))=t∇ci(x)d={0,≥0,i∈ξi∈I∩A.(31)
所以对于任意的i∈A, y(t)是可行路径, 对于未激活的不等式约束, 既然y(t)是连续的, 当t足够效地时候容易得到ci(y(t))>0,i∈I,i∈A. 这样便证明了, ∀d∈F(x), 均为可行方向, 故F(x)=T(x).
Farkas 引理
Farkas 引理: 令g和{ai}i=1m为n维行向量且
S={d∈Rn;gd<0,aid≥0,i=1,…,m},(33)
则S=∅当且仅当存在非负向量λ∈Rm 使得
g=i=1∑mλiai.(34)
证明:
⇐
∀d∈S,
0>gd=i=1∑mλiaid≥0,
故S=∅.
⇒
若不存在这样的λ, 即对于任意的λ, g=∑i=1mλiai, 则g不能由{ai}线性表出. 不妨假设{ai}与g按序进行施密特正交化过程, 可得{a^i}为{ai}的一正交向量组, h为
h=g−i∑⟨g,a^i⟩a^i,
则
⟨h,ai⟩=0,⟨h,g⟩=l=0.
不妨设l<0(否则h=−h), 则h∈S, 这与S=∅矛盾.
证毕.
定义问题P:
gd<0,Ad≥0.(36)
定义问题D:
g=λTA,λ≥0.(37)
推论
推论: 要么问题P存在解, 要么D存在解, 二者不能同时成立.
KKT定理的证明
既然x∗是一局部极值点, 则
∇f(x∗)d≥0,∀d∈T(x∗)=F(x∗),(38)
将∇f(x∗)视作Farkas引理中的g, A即为我们最开始定义的A, 则∀Ad≥0, d∈F(x), 这是因为所有等式约束ci(x)=0, 都可以变成俩个不等式约束ci(x)≥0,−ci(x)≥0. 这也就是说, 问题P无解, 则D有解, 即存在λ∗≥0:
∇f(x∗)=∑λi∗∇ci(x∗),λi∗≥0.(39)
对于任意的i∈A, 我们只需取λi∗=0, (39)依然成立, 同时原定理(18)中的(i)(ii)也同样容易证明.