智能优化算法:基于梯度的优化算法
文章目录
- 智能优化算法:基于梯度的优化算法
- 1.算法原理
- 1.1初始化
- 1.2 梯度搜索规则(GSR)
- 1.3 局部逃逸操作
- 2.算法结果
- 3.参考文献
- 4.Matlab代码
摘要:基于梯度的优化算法(Gradient-based optimizer,GBO)是于2020年提出的一种新型智能优化算法,该算法受基于梯度的牛顿方法启发,具有结构简单,寻优能力强等特点。
1.算法原理
该算法主要使用两种算子:梯度搜索规则(Gradient search rule, GSR)和局部逃逸算子(Local escaping operator, LEO)以及一组向量来探索搜索空间。GSR采用基于梯度的方法来增强搜索趋势并加快收敛速度,从而在搜索空间中获得更好的位置;LEO使得提出的GBO能够避开局部最优解。
1.1初始化
通常,GBO的初始向量在D维搜索空间中随机生成,可定义为:
其中和分别为变量的上下限。为[0,1]之间的随机数。
1.2 梯度搜索规则(GSR)
提出的梯度搜索规则(),考虑了优化过程的随机行为,提升了算法的探索能力,避免陷入局部最优。移动方向(Direction of movement, DM)用于产生适合的搜索方向,以提高GBO算法的收敛速度。基于GSR和DM,下列公式用于更新当前向量的位置:
其中:
其中, 和 分别为0.2和1.2,为当前迭代次数,为最大迭代次数,表示标准正态分布随机数,是[ 0 , 0.1 ] 之间的很小的正数。rand(1:N)是 [0,1]间的N维随机向量是从 中随机选择的互不相等的整数, 是由和决定的步长。
通过用式(2)中的当前向量替换最佳向量的位置,可以生成如下新向量:
其中:
基于位置和当前位置,下一次迭代产生的新位置定义为:
其中:
其中和为[0,1]之间的随机数。
1.3 局部逃逸操作
LEO的引入提高了GBO算法求解复杂问题的效率。LEO通过使用多个解生成一个性能优越的解,其中包括最佳位置 、位置和、两个随机位置和以及一个新的随机位置 。新的位置由以下公式产生:
其中,为[-1,1]的随机数,为标准正态分布随机数,为一个概率值,为三个随机整数,其计算如下:
其中,是一个值为0或1的二进制参数,如果参数,则的值为1,否则为0。为了确定式(5)中的 ,采用以下方案:
其中是在种群中随机选择的一个解,是[0,1]之间的随机数。式(5-4)可以简化为:
其中,是一个值为0或1的二进制参数,如果参数小于0.5,则的值为1,否则为0。
算法伪代码如下:
2.算法结果
3.参考文献
[1] Iman Ahmadianfar, Omid Bozorg-Haddad, Xuefeng Chu. Gradient-based optimizer: A new metaheuristic optimization algorithm[J]. Information Sciences, 2020, 540: 131-159.
4.Matlab代码