这个问题本来应该在我大二下的时候就彻底搞明白,结果一直拖到现在了。最近在上智能优化算法及理论这门课,于是打算详细地了解一下并记录下来。
凸函数Convex Function:设f(x)是定义在凸集S上的函数,若对任意实数0<=a<=1以及任意两点x,yS,有: ,则称f(x)是凸集S上的凸函数。当时为严格凸函数。
在介绍凸优化前你需要先了解一些基本概念,如果你学习过数学建模的话应该肯定掌握了这些知识,我这里大概提一下吧。最基本数学建模由三个部分组成:决策变量、目标函数和约束条件,根据下图来大概解释一下:
如果需要知道详细概念可以自己去查,我说一下我的理解:决策变量就相当于高中所学的因变量,在一元一次函数中可以理解为x,二元函数中理解为x,y,差不多就是会影响需要求的结果的变量;目标函数就是你要求的结果,在一元函数中理解成y,在二元函数中理解为z,相当于所谓的f(x),但一般根据题目要求设定是取最大还是最小,比如上图中取的就是min f(x);约束条件就是对决策变量的一些限制,类别有很多,比如决策变量只能取0或1,只能取整数,一个函数下的限制范围啥的,比如上图中取的g(x)<=0和h(x)=0。
凹函数Concave Function:负的凸函数。
线性函数既是凸函数也是凹函数。
凸优化Convex Optimization:在最小化问题中,如果目标函数和可行域分别为凸函数和凸集的话,这个问题就是凸优化问题,但凡有一个不是都只能说是非凸优化问题。
就先说这么多吧,之后再细说算法。