在数学中一个非凸的最优化问题是什么意思?
1、凸优化和非凸优化的定义
2、凸优化:相对简单
在凸集中,有个基本理论,那就是任意局部最优解一定是全局最优解。基于这个性质,设计一个简单的局部算法,比如 贪婪算法(Greedy algorithm) 或 梯度下降法(Gradient decent),收敛求得的局部最优解即为全局最优解。因此求解凸优化问题相对来说是比较高效的。这也是为什么机器学习中凸优化的模型非常多,毕竟机器学习处理大数据,需要高效的算法。
3、非凸优化:非常困难
而非凸优化问题被认为是非常难求解的,因为可行域集合 可能存在无数个局部最优点,通常求解全局最优的算法复杂度是指数级的(NP难)。如下图:
https://www.slideshare.net/SessionsEvents/hanie-sedghi-research-scientist-at-allen-institute-forartificial-intelligence-at-mlconf-seattle-2017
最经典的算法要算蒙特卡罗投点法了,大概思想便是随便投个点,然后在附近区域(可以假设convex)用2中方法的进行搜索,得到局部最优值。然后随机再投个点,再找到局部最优点。如此反复,直到满足终止条件。
假设有1w个局部最优点9,你至少要投点1w次吧?并且你还要假设每次投点都投到了不同的区域,不然你只会搜索到以前搜索过的局部最优点。
再补充一点:数学规划9模型里面如果有整数变量9,这个问题通常被称为 highly nonconvex(极度非凸),如下图:
实心黑点组成的集合,是一个离散集,按照1中判断一个集合是否为凸集的技巧,我们很容易验证这个离散集是非凸的。因此整数规划问题也是一个非凸优化问题,并且它也是NP难的。
因此数学规划里最难的一类问题,叫做混合整数非线性规划(mixed integer nonlinear programming)
那么整数规划的求解思路呢,也遵循了科学研究的本质,即被分解为求解一个个的线性规划问题。感兴趣的朋友可以搜索分支定界法。