凸优化基本概念与kkt条件

凸优化问题
一般用
min f 0 ( x ) {f_{_0}}(x) f0(x)
s.t. f i ( x ) ≤ 0 , i = 1 , . . . , m {f_i}(x) \le 0,i = 1,...,m fi(x)0,i=1,...,m
h i ( x ) = 0 , i = 1 , . . . , p {h_i}(x) = 0,i = 1,...,p hi(x)=0,i=1,...,p
其中,f0(x)是目标函数, f i ( x ) {f_i}(x) fi(x)是不等式约束, h i ( x ) {h_{_i}}(x) hi(x)是等式约束。如果没有约束,就称问题为无约束问题。
对目标和所有约束函数有定义的点的集合,称为该问题的定义域,记为: D = ⋂ i = 0 m d o m f i ∩ ⋂ i = 1 p d o m h i D = \bigcap\limits_{i = 0}^m {dom{\rm{ }}{f_i}} \cap \bigcap\limits_{i = 1}^p {dom{\rm{ }}{{\rm{h}}_i}} D=i=0mdomfii=1pdomhi

凸优化基本概念与kkt条件_第1张图片
凸优化基本概念与kkt条件_第2张图片
一般要求: f 0 ( x ) {f_{_0}}(x) f0(x) f i ( x ) {f_{_i}}(x) fi(x)是凸函数,且 h i ( x ) {h_{_i}}(x) hi(x)为仿射函数(仿射函数即是有一截多项式构成的函数,一般为fx=Ax+b,其中A是个矩阵,x和b是向量),这样的问题就是凸优化问题。(定义域也要求为凸集)当目标函数是凹函数需要求极大值时,可以通过加负号转为凸函数求极小。
这里需要注意,不等式约束fi(x)<=0则要求fi(x)为凸函数,若fi(x)>=0则要求fi(x)为凹函数
凸优化的任一局部极值点也就是全局的极值点,局部最优情况也是全局最优情况。
概念先介绍到这,下面接着上一篇拉格朗日乘子法,介绍文章开头带有不等式约束条件的优化问题:
对于不等式约束的优化,一般满足著名的KKT条件,满足条件的解就是极小值点
我们定义不等式约束下的拉格朗日函数:
L ( x , λ , v ) = f 0 ( x ) + ∑ i = 1 m λ i f i ( x ) + ∑ i = 1 p v i h i ( x ) L(x,\lambda ,v) = {f_0}(x) + \sum\limits_{i = 1}^m {{\lambda _i}} {f_{_i}}(x) + \sum\limits_{i = 1}^p {{v_i}{h_i}(x)} L(x,λ,v)=f0(x)+i=1mλifi(x)+i=1pvihi(x)
若要求解优化问题,必须满足下列条件,
1、L对x的一阶导数为0
2、h(x)=0
3、 λ i {{\lambda _i}} λi>=0 (对偶可行性)
4、 λ i f i ( x ) = 0 {\lambda _i}{f_i}(x) = 0 λifi(x)=0
(互补松弛条件,想要明白该条件为什么成立,可以参考知乎上的一篇文章:浅谈最优化问题的kkt条件)
注意kkt条件是最优解的必要条件
如果不是凸优化问题,还要附加一个L(x, λ i {{\lambda _i}} λi)是正定的条件

你可能感兴趣的:(凸优化基本概念与kkt条件)