|
|
会开车的草稿本 · 快速解决适配 64 位 App ...· 1 年前 · |
|
|
完美的鸵鸟 · TabControl ...· 1 年前 · |
|
|
成熟的圣诞树 · 这6款Python ...· 2 年前 · |
|
|
光明磊落的围巾 · Python pandas - 知乎· 2 年前 · |
|
|
想出家的水煮鱼 · pandas读取csv时如何跳过不确定的行数 ...· 2 年前 · |
凸(Convex) :在该区间函数图象上的任意两点所连成的线段上的每一个点都位于函数图象的下方(或上方)。
非凸(Non-Convex) :函数在该区间上有多个极值,即系统有多个稳定的平衡态。
直观判断一个集合是否为Convex的方法,如下图:
若集合中任意两点连线上的点都在集合内,则该集合为凸集。
具体的,若 f ( ( x 1 + x 2 ) / 2 ) ≤ ( f ( x 1 ) + f ( x 2 ) ) / 2 成立。常见的凸函数有:指数函数,非负对数函数,仿射函数,二次函数,常见的范数函数,凸函数非负加权的和等。
一个典型的凸函数
任何局部最优解即为全局最优解。通常使用一个局部优化算法,如贪婪算法(Greedy Algorithm)或梯度下降算法(Gradient Decent)来计算局部最优解。
实际问题中,判断是否凸优化问题可以参考以下几点:
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 m i n 2 1 x T P x + c T x + d s . t . 2 1 x T Q i x + r i x + s i ≤ 0 , i = 1 , 2 , . . . m A ( x ) = b
4. 半正定规划(SDP, Semidefinite Programing):
▽
f
(
x
k
)
T
d
k
<
0
f
(
x
k
+
1
)
=
f
(
x
k
+
α
k
d
k
)
<
f
(
x
k
)
通常情况下较难求解,可行域集合可能存在无数个局部最优点,求解全局最优算法复杂度是指数级(NP hard)。
因为非凸优化的难度较高,可以考虑将非凸优化转化为凸优化问题解决:
|
|
光明磊落的围巾 · Python pandas - 知乎 2 年前 |