KKT已经成为了几乎所有的CS 、MAT学生都绕不开的知识、工具。浅写一下自己在几年的学习中对KKT和CQ的一些理解,方便自己日后复习。
1 Unconstrained Problem
这一部分是non-linear programming 的基础,这不是本篇文章想要讨论的重点,日后可能会继续做一次总结。对于unconstrained的问题大体有2个解法:
- Gradient Descent (1阶的算法)
- Newton's method / Quasi Neston's method(2阶的算法)
Unconstrained Problem 是解决constrained problem的基础。barrier method、penalty method 等都是将constrains 放到objective function之上,通过解决unconstrained problem来得到解(这些解法通常都可以与KKT point \ Duality 等结果相联系)
2 Constrained Problem and KKT condition
对于问题:
x∈Rnminf(x) s.t. g(x)≤0,h(x)=0,
若x' 是该问题的local solution,且在x'处满足一种CQ,则在x'处必存在以下方程的一组解:
1st Order Karush-Kuhn-Tucker conditions (1阶KKT conditions)
⎩⎪⎨⎪⎧ (i) ∇f(x∗)+∇g(x∗)λ∗+∇h(x∗)μ∗=0 (multiplier rule) (ii) h(x∗)=0 (iii) λ∗≥0,g(x∗)≤0,(λ∗)⊤g(x∗)=0 (complementarity conditions).
KKT condition通过 Farkas Lemma证明的,这一证明可以参考berserkas的教科书。
从以上的描述中我们再强调下这个定理说描述的事情,若在一个x*处满足一种“Cconstrained Qualification”,那么就一定有满足KKT的解。也就是说,在x处若有CQ,则KKT是必要条件。
那么我们现在需要重新了解下:
什么是CQ?
3 Constrained Qualification
若要了解constrained qualification 需要先了解“cone”:
Feasible set and Active Constrain
Definition 1:Feasible Set and Active Constraints
The set
X:={x∈Rn:g(x)≤0,h(x)=0}
is called feasible set of the problem (1). A point x∈Rn is called feasible if we have x∈X. For a feasible point x∈X, we define the index set of the active constraints A(x) and the index set of the inactive constraints I(x) as follows:
A(x)I(x):={i∈{1,…,m}:gi(x)=0}:={1,…,m}\A(x)={i∈{1,…,m}:gi(x)<0}
Definition 2: Tangent Cone
Let X⊂Rn be a nonempty set. The tangent cone (or Bouligand cone) of X at a point x∈X is given by
TX(x):={d∈Rn:∃(ηk)k∈R++,(xk)k∈X such that xk→x,ηk(xk−x)→d}
Definition 3: Linealized Tangent Cone
The set
Tℓ(g,h,x):={d∈Rn:∇gi(x)⊤d≤0∀i∈A(x),∇h(x)⊤d=0}
is called the linearized tangent cone at x∈X
几个CQ:
ACQ
Tℓ(g,h,x)=TX(x)
GCQ
TX(x∗)∘=Tℓ(g,h,x∗)∘whereK∘:={v∈Rn:v⊤d≤0∀d∈K}
Definition 4: Constraint Qualification
Let x∈X be given. A condition that implies the (GCQ) is called Constraint Qualification (CQ) for x.