智能优化算法:龙格-库塔优化算法
文章目录
- 智能优化算法:龙格-库塔优化算法
- 1.算法原理
- 1.1 搜索机制
- 1.2 位置更新
- 1.3 解质量增强(ESQ)
- 2.实验结果
- 3.参考文献
- 4.Matlab代码
摘要:龙格-库塔优化算法(Runge Kutta optimizer,RUN)是于2021年提出的一种新型智能优化算法,该算法基于龙格-库塔方法中提出的计算梯度搜索概念来指导寻优,具有寻优能力强,收敛速度快等特点。
1.算法原理
1.1 搜索机制
该算法的搜索机制基于RK方法,使用一组随机解搜索决策空间,并实现适当的全局和局部搜索。采用4阶RK方法。
其中和分别为种群的最优解和最差解。为[0,1]之间的随机数。为种群的平均值。为当前迭代次数,为最大迭代次数。
1.2 位置更新
RUN算法的位置更新如式(11)所示
中,是1或-1的整数;是[0,2]的随机数;是自适应因子;为随机数。
SF计算如下:
其中为当前迭代次数,为最大迭代次数。和为一个常数。为[0,1]之间的随机数。
和的定义如下:
其中为[0,1]之间的随机数;为全局最优解;是每代最优位置。
1.3 解质量增强(ESQ)
在该算法中,采用解质量增强(ESQ)的方法来提高解的质量,避免每次迭代中出现局部最优。通过使用ESQ执行以下公式产生新解():
其中:
其中,为[0,1]之间随机数。为[0,5]之间随机数;是1、0或-1的随机整数;表示全局最优位置。该部分计算的解可能比不上当前解。为了增强解的质量,将生成另一个新解 ,定义如下:
其中,为2*rand的随机数。
算法伪代码如下:
Algorithm 1. The pseudo-code of RUN
Stage 1. Initialization
Initializea,b
Generate the RUN population X n (n = 1,2,…,N)
Calculate the objective function of each member of population
Determine the solutions x w , x b , andx best
Stage 2. RUN operators
for i = 1: Maxi
for n = 1 : N
for l = 1 : D
Calculate position x n+1,l using Eq. (11)
end for
Enhance the solution quality
ifrand < 0.5
Calculate position x new2 using Eq. (17)
if f(x n ) < f(x new2 )
if rand<w
Calculate position x new3 using Eq. (21)
end
end
end
Update positions x w andx b
end for
Update positionx best
i = i + 1
end
Stage 3. returnx best
2.实验结果
3.参考文献
[1] Iman Ahmadianfar, Ali Asghar Heidari, Amir H. Gandomi, Xuefeng Chu, Huiling Chen. RUN beyond the metaphor: An efficient optimization algorithm based on Runge Kutta method[J]. Expert Systems with Applications, 2021, 181(115079): 0957-4174.
4.Matlab代码
d the metaphor: An efficient optimization algorithm based on Runge Kutta method[J]. Expert Systems with Applications, 2021, 181(115079): 0957-4174.