凸和非凸的理解

一句话概括

凸(Convex):在该区间函数图象上的任意两点所连成的线段上的每一个点都位于函数图象的下方(或上方)。

非凸(Non-Convex):函数在该区间上有多个极值,即系统有多个稳定的平衡态。

一、凸和非凸的区别

直观判断一个集合是否为Convex的方法,如下图:

Convex or Non-Convex
若集合中任意两点连线上的点都在集合内,则该集合为凸集。

具体的,若 χ \chi χ为凸集,集合中任意两点 x 1 , x 2 ∈ χ x_1, x_2\in\chi x1,x2χ,则有 t x 1 + ( 1 − t ) x 2 ∈ χ , t ∈ [ 0 , 1 ] tx_1+(1-t)x_2\in\chi,t\in[0,1] tx1+(1t)x2χ,t[0,1]

反之,若存在 t x 1 + ( 1 − t ) x 2 ∉ χ tx_1+(1-t)x_2\notin\chi tx1+(1t)x2/χ,则为非凸集合。

二、凸函数和非凸函数

凸函数就是一个定义在某个向量空间的凸子集 χ \chi χ(区间)上的实值函数。对于凸子集 χ \chi χ中任意两个向量 x 1 , x 2 x_1, x_2 x1,x2 f ( ( x 1 + x 2 ) / 2 ) ≤ ( f ( x 1 ) + f ( x 2 ) ) / 2 f((x_1+x_2)/2)\leq(f(x_1)+f(x_2))/2 f((x1+x2)/2)(f(x1)+f(x2))/2成立。常见的凸函数有:指数函数,非负对数函数,仿射函数,二次函数,常见的范数函数,凸函数非负加权的和等。

一个典型的凸函数 y = − x 2 y=-x^2 y=x2,任意两点连线上所有的点都在函数图像的下方,如下图:凸函数举例
非凸函数 y = s i n ( x ) y=sin(x) y=sin(x),两点连线上的点可能分布在函数图像的两侧,如下图:
在这里插入图片描述

三、凸优化和非凸优化

凸优化:

任何局部最优解即为全局最优解。通常使用一个局部优化算法,如贪婪算法(Greedy Algorithm)或梯度下降算法(Gradient Decent)来计算局部最优解。

实际问题中,判断是否凸优化问题可以参考以下几点:

  • 目标函数 f f f如果不是凸函数,则不是凸优化问题。
  • 决策变量 x x x中包含离散变量(0-1变量或整数变量),则不是凸优化问题。
  • 约束条件写成 g ( x ) ≤ 0 g(x)\le0 g(x)0时, g g g如果不是凸函数,则不是凸优化问题。

常见的凸优化方法:

1. 线性规划(LP, Linear Programming):
m i n c T x + d s . t . G ( x ) ⪯ h A ( x ) = b min \quad c^Tx+d \\ s.t. \quad G(x) \preceq h \\ A(x)=b mincTx+ds.t.G(x)hA(x)=b
其中目标函数和不等式约束都是仿射函数(最高次数为1的多项式函数),且 ⪯ \preceq 表示按元素小于等于。

2. 二次规划(QP, Quadratic Programing):
m i n 1 2 x T P x + c T x + d s . t . G ( x ) ⪯ h A ( x ) = b min \quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. \quad G(x) \preceq h \\ A(x)=b min21xTPx+cTx+ds.t.G(x)hA(x)=b
其中目标函数为凸二次型,不等式约束为仿射函数。

3. 二次约束的二次规划(QCCP, Quadratically Contrained Quaratic Programing):
m i n 1 2 x T P x + c T x + d s . t . 1 2 x T Q i x + r i x + s i ≤ 0 , i = 1 , 2 , . . . m A ( x ) = b min \quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. \quad \frac{1}{2}x^TQ_i x+r_i x+s_i \leq0,i=1,2,...m \\ A(x)=b min21xTPx+cTx+ds.t.21xTQix+rix+si0,i=1,2,...mA(x)=b
其中目标函数和不等式约束都是凸二次型。

4. 半正定规划(SDP, Semidefinite Programing):
m i n t r ( C X ) s . t . t r ( A i X ) = b i , i = 1 , 2 , . . . p X ⪰ 0 min \quad tr(CX) \\ s.t. \quad tr(A_i X)=b_i,i=1,2,...p \\ X \succeq0 mintr(CX)s.t.tr(AiX)=bi,i=1,2,...pX0
其中需要最优化的变量 X X X是一个对称的半正定矩阵,且 C , A 1 , . . . , A p C, A_1,...,A_p C,A1,...,Ap为对阵矩阵。

凸优化的一般求解过程

找到一个点列使得目标函数值持续减少,直到触发停止条件或达到一个最小值。

设为 x k x_k xk第k次迭代的值, d k d_k dk为第k次搜索方向, α k \alpha_k αk为第k次迭代的步长,则第k次迭代公式为:
x k + 1 = x k + α k d k x_{k+1}=x_k+\alpha_kd_k xk+1=xk+αkdk
其中第k次的搜索方向满足:
▽ f ( x k ) T d k < 0 f ( x k + 1 ) = f ( x k + α k d k ) < f ( x k ) \bigtriangledown f(x_k)^Td_k<0 \\ f(x_{k+1})=f(x_k+\alpha_kd_k)<f(x_k) f(xk)Tdk<0f(xk+1)=f(xk+αkdk)<f(xk)

非凸优化:

通常情况下较难求解,可行域集合可能存在无数个局部最优点,求解全局最优算法复杂度是指数级(NP hard)。

因为非凸优化的难度较高,可以考虑将非凸优化转化为凸优化问题解决:

  • 修改目标函数,使之转化为凸函数。
  • 抛弃一些约束条件,使新的可行域为凸集并且包含原可行域。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值