例如,工程设计中,怎样选择设计参数,使得设计方案能以尽量低的成本预算满足设计要求;资源分配中,怎样分配有限资源,使得在满足各方面需求的情况下最大化经济效益;生产安排中,怎样选择生产方案能在产量、质量和利润中找到符合要求的平衡点;还有在城市规划、军事指挥、生活安排等方方面面都存在着最优化问题 [2]。
针对一定条件/环境下的一个问题/目标,若一项决策和所屑乌有解决该问题的决策相比是最优的,就可以被称为全局最优腿白嘱。
将上述定义用数学公式表示为:在无限制环境集合R内,假设限制条件/环境为集合D(D包含于R),问题代价或目标函数为f(x),其中x指决策,那么全局最优就是指决策满足
察只乘或
煮盼其中对目标函数去最大值还是最小值根据具体洪狱牛问题和要求而确定。
和全局最优不同,局部腊剃最优不要求在所有决策中是最好的。
针对一定条件/环境下的一个问题/目标,若一项决策和部分解决该问题的决策相比是最优的,就可以被称为局部最优。
将上述定义用数学公式表示为:按照上一节的定义,对于D内的一个子集![](https://bkimg.cdn.bcebos.com/formula/e39f4061ab4797474adea435c703d8fd.svg)
,局部最优就是指决策满足
殃棕愉或
可以看到,局部最优不一定是全局最优,全局最优一定是局桨剃担巴部最优。
针对是否有约束条件D,可以划分为无约束最优化问题和有约束最优化问题;
针对目标数,可以划分为单目标优化问题和多目标优化问题;
对不同的最优化问题,有不同的决策方法和算法。
对于有约束条件的最优化问题,由于一般的问题可以用线性方程表示(或者说约束条件是线性的),所以最常见的解决算法是线性规划;对于一些复杂的问题,可能会用到非线性方程,此时就需要使用非线性规划 [3]。线性规划有单纯形法、对偶解法、修正的单纯形法等具体算法;非线性规划对于只含等式、含不等式、凸优化、多目标优化等不同情况也有不同的解法。
一般的启发式算法、贪婪算法或局部算法都很容易产生局部最优,或者说根本无法查证产生的最优解是否是全局的,或者只是局部的。这是因为对于大型系统或复杂的问题,一般的算法都着眼于从局部展开求解,以减少计算量和算法复杂度。
对于优化问题,尤其是最优化问题,总是希望找到全局最优的解或策略,但是当问题的复杂度过于高,要考虑的因素和处理的信息量过多的时候,我们往往会倾向于接受局部最优解,因为局部最优解的质量不一定都是差的。尤其是当我们有确定的评判标准标明得出的解是可以接受的话,通常会接收局部最优的结果。这样,从成本、效率等多方面考虑,才是实际工程中会采取的策略。
在部分工程领域,受限于时间和成本,对局部最优和全局最优可能不会进行严格的检查,但是有的情况下式要求得到全局最优的,这是就需要避免产生仅仅是局部最优的结果。
对局部最优的避免有两个根本方法 [4]:
- 1.深入研究问题的机理,对问题的机理研究的越透彻,就能更准确的找到全局最优,或划定全局最优可能的区域;
- 2.随机搜索,对机理不明的问题,解的搜索越随机陷入局部最优的可能性就越小。
对于已经陷入局部最优,或怀疑陷入局部最优的情况,一般是采取“跳出”或“重启”两种手段,也就是在当前解的基础上向其他方向搜索,或者无视当前解并在新的区域重新搜索。