首页 > 编程语言 >智能优化算法:龙格-库塔优化算法 - 附代码

智能优化算法:龙格-库塔优化算法 - 附代码

时间:2023-05-04 13:04:15浏览次数:38  
标签:RUN 迭代 库塔 算法 龙格 随机数 优化


智能优化算法:龙格-库塔优化算法


文章目录

  • 智能优化算法:龙格-库塔优化算法
  • 1.算法原理
  • 1.1 搜索机制
  • 1.2 位置更新
  • 1.3 解质量增强(ESQ)
  • 2.实验结果
  • 3.参考文献
  • 4.Matlab代码



摘要:龙格-库塔优化算法(Runge Kutta optimizer,RUN)是于2021年提出的一种新型智能优化算法,该算法基于龙格-库塔方法中提出的计算梯度搜索概念来指导寻优,具有寻优能力强,收敛速度快等特点。

1.算法原理

1.1 搜索机制

该算法的搜索机制基于RK方法,使用一组随机解搜索决策空间,并实现适当的全局和局部搜索。采用4阶RK方法。
智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘

智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_02

智能优化算法:龙格-库塔优化算法 - 附代码_搜索_03

智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_04

智能优化算法:龙格-库塔优化算法 - 附代码_搜索_05

智能优化算法:龙格-库塔优化算法 - 附代码_搜索_06

智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_07

智能优化算法:龙格-库塔优化算法 - 附代码_算法_08

智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_09

其中智能优化算法:龙格-库塔优化算法 - 附代码_搜索_10智能优化算法:龙格-库塔优化算法 - 附代码_搜索_11分别为种群的最优解和最差解。智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_12为[0,1]之间的随机数。智能优化算法:龙格-库塔优化算法 - 附代码_算法_13为种群的平均值。智能优化算法:龙格-库塔优化算法 - 附代码_算法_14为当前迭代次数,智能优化算法:龙格-库塔优化算法 - 附代码_算法_15为最大迭代次数。

1.2 位置更新

RUN算法的位置更新如式(11)所示
智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_16

智能优化算法:龙格-库塔优化算法 - 附代码_算法_17

智能优化算法:龙格-库塔优化算法 - 附代码_算法_18

中,智能优化算法:龙格-库塔优化算法 - 附代码_算法_19是1或-1的整数;智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_20是[0,2]的随机数;智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_21是自适应因子;智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_22为随机数。

SF计算如下:
智能优化算法:龙格-库塔优化算法 - 附代码_算法_23

智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_24

其中智能优化算法:龙格-库塔优化算法 - 附代码_算法_14为当前迭代次数,智能优化算法:龙格-库塔优化算法 - 附代码_算法_15为最大迭代次数。智能优化算法:龙格-库塔优化算法 - 附代码_算法_27智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_28为一个常数。智能优化算法:龙格-库塔优化算法 - 附代码_搜索_29为[0,1]之间的随机数。

智能优化算法:龙格-库塔优化算法 - 附代码_算法_30智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_31的定义如下:
智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_32

智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_33

其中智能优化算法:龙格-库塔优化算法 - 附代码_搜索_34为[0,1]之间的随机数;智能优化算法:龙格-库塔优化算法 - 附代码_算法_35为全局最优解;智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_36是每代最优位置。

1.3 解质量增强(ESQ)

在该算法中,采用解质量增强(ESQ)的方法来提高解的质量,避免每次迭代中出现局部最优。通过使用ESQ执行以下公式产生新解(智能优化算法:龙格-库塔优化算法 - 附代码_搜索_37):
智能优化算法:龙格-库塔优化算法 - 附代码_算法_38
其中:
智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_39

智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_40

智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_41

其中,智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_42为[0,1]之间随机数。智能优化算法:龙格-库塔优化算法 - 附代码_搜索_43为[0,5]之间随机数;智能优化算法:龙格-库塔优化算法 - 附代码_算法_19是1、0或-1的随机整数;智能优化算法:龙格-库塔优化算法 - 附代码_算法_35表示全局最优位置。该部分计算的解智能优化算法:龙格-库塔优化算法 - 附代码_搜索_37可能比不上当前解。为了增强解的质量,将生成另一个新解智能优化算法:龙格-库塔优化算法 - 附代码_优化算法_47 ,定义如下:
智能优化算法:龙格-库塔优化算法 - 附代码_机器学习_48
其中,智能优化算法:龙格-库塔优化算法 - 附代码_搜索_49为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.实验结果

智能优化算法:龙格-库塔优化算法 - 附代码_数据挖掘_50

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.


标签:RUN,迭代,库塔,算法,龙格,随机数,优化
From: https://blog.51cto.com/u_16095618/6242631

相关文章