智能优化方法

智能优化问题

优化问题主要分为两大类:函数优化问题和组合优化问题。这里我主要想写一些传统的优化方法。

第一——穷举法

首先是一个基本的也是最牛的优化方法:穷举法。但是穷举法只能适用于离散型的问题,连续型的是没有办法穷举的,也没有办法都列举出来。所以穷举只能算是一个很基本的方法了。这里就不介绍了。

第二——基于梯度的优化方法

1.梯度下降法:每次搜索方向都是梯度下降最快的方向(负梯度方向)。梯度下降法的缺点在于第一当靠近极小值时收敛速度减慢,第二对于直线搜索问题不适用,第三可能会出现“之字形”的下降方式,出现震荡。

2.牛顿法:牛顿法的优点是收敛较快,是呈二阶收敛的。缺点是目标矩阵计算量大(因为要求二阶导数)。

3.共轭梯度法:共轭梯度法的一个最大优点是它仅利用一阶导数信息。

上述经典优化方法的缺点是:
(1)对目标函数、约束函数有很高要求(包括有显示表达式,线性、连续、可微)。
(2)只从一个初始点出发、难以并行。
(3)最优性难到达(问题函数为凸,可行域为凸)。

第三——启发式搜索的优化方法

启发式搜索:利用问题的启发信息来引导搜索。
1.离散优化问题:爬山算法、动态规划、禁忌搜索。
2.连续优化问题:下山单纯算法、模式搜索、Powell
这里有一个重要内容要介绍——即产生与测试

产生与测试:
(1)产生一个可能的解。
(2)测试这个解是否为真正需要的解。
(3)如果是所需要的解则退出,否则回到步骤1

爬山算法:

是一种局部搜索算法。爬山法的过程是:

Created with Raphaël 2.1.2 开始 1.在搜索空间中随机选取一点 2.考虑当点的所有邻居 3.选择最好的邻居并移动到该处 算法结束与否? 结束 yes no

算法设计的要素:
(1)编码策略(“个体表示”与“问题解”的映射关系)
(2)初始解的产生(从什么位置开始搜索)
(3)领域函数的设计(下一个解的产生概率与当前解之间距离的关系,包括方向与步长)
(4)新解产生策咯(随机,确定)
(5)接受策咯(贪心)

爬山算法的缺点:容易陷入局部最优点,高地(平顶)会局部震荡,爬山法还有一些变体:随机爬山法,第一选择爬山法,随机重启爬山法

下山单纯形法

下山单纯形法 :

系数 取值
反射系数 1
收缩系数 0.5
膨胀系数 2
压缩系数 0.5

下山单纯形法,适合连续优化问题
1. 首先按照目标函数对所有点进行从好到差排序,确定最坏点,第二差点和最好点下标
h,s,l
2. 计算除去最差点外其他点的中心点
3. 进行反射操作,判断是否接受反射点
4. 依据结果进行膨胀操作,或收缩操作(分为向内收缩,向外收缩),压缩操作。

你可能感兴趣的:(智能优化方法)