智能优化算法:野马优化算法-附代码

智能优化算法:野马优化算法


摘要:野马优化算法(Wild Horse Optimizer,WHO)是于2021年提出的一种新型智能优化算法,该算法主要通过模拟野马种群的生活行为来进行寻优。具有寻优能力强,收敛速度快等特点。

1.算法原理

野马的行为由以下五个主要步骤组成:

1.创建初始种群,组建马群,挑选领队;

2.放牧和交配;

3.领导和领导团队(种马);

4.领导人的交流与选拔;

5.保存最佳解决方案。

1.1 种群初始化

与其他优化算法类似,种群个体在搜索范围内随机初始化,在算法开始时随机选择组的领导者,在后续阶段,根据组成员中的ftness(最佳ftness函数)选择领导者。

1.2 放牧行为

小马驹通常大部分时间都在群中吃草。为了实施放牧行为,我们认为种马是放牧区的中心,群成员围绕着中心(放牧)搜索。我们提出了公式(1)来模拟放牧行为。等式(1)使小组成员以不同半径移动并搜索领队。
X i , G j = 2 Z c o s ( 2 π R Z ) ∗ ( S t a l l i o n j − X i , G j ) + S t a l l i o n j (1) X_{i,G}^j=2Zcos(2\pi RZ)*(Stallion^j-X_{i,G}^j)+Stallion^j \tag{1} Xi,Gj=2Zcos(2πRZ)(StallionjXi,Gj)+Stallionj(1)
式中Stallion为领导者的位置,R 为[-2,2]内的随机数,主要控制个体与领导者间的角度;自适应机制Z 的计算方式为:
P = R 1 ⃗ < T D R ; I D X = ( P = = 0 ) ; Z = R 2 Θ I D X + R 3 ⃗ Θ ( ∼ I D X ) (2) P=\vec{R_1}<TDR;IDX=(P==0);Z=R_2\Theta IDX+\vec{R_3}\Theta (\sim IDX) \tag{2} P=R1 <TDR;IDX=(P==0);Z=R2ΘIDX+R3 Θ(IDX)(2)
其中 P P P是由0和1组成的向量, R 1 , R 3 R_1,R_3 R1,R3均为[0,1]范围内均匀分布的随机向量, R 2 R_2 R2为[0,1]内一随机值。满足条件 ( P = = 0 ) (P==0) (P==0)的随机向量 R 1 R_1 R1返回的 I D X IDX IDX索引。 Θ Θ Θ这个符号即点乘。 T D R TDR TDR为由1线性递减至0的系数:
T D R = 1 − i t e r 1 m a x i t e r (3) TDR=1-iter\frac{1}{maxiter}\tag{3} TDR=1itermaxiter1(3)

1.3 野马的交配行为

野马的交配行为,如下表达式:
X G , K p = C r o s s o v e r ( X G , i q , X G , j z ) , i ≠ j ≠ k , p = q = e n d C r o s s o v e r = M e a n (4) X_{G,K}^p=Crossover(X_{G,i}^q,X_{G,j}^z),i\neq j\neq k,p=q=end\\Crossover=Mean \tag{4} XG,Kp=Crossover(XG,iq,XG,jz),i=j=k,p=q=endCrossover=Mean(4)
这里 X G , K p X_{G,K}^p XG,Kp表示种群 k k k 中个体 p p p离群后再次进入种群 k k k的个体位置, X G , i q X_{G,i}^q XG,iq表示种群 k k ki中个体 p p p离群后再次进入种群 q q q的个体位置, X G , j z X_{G,j}^z XG,jz表示种群 j j j中个体 z z z离群后再次进入种群 q q q的个体位置。所以很明显,后面括号里的两个位置即为其父母的位置。

1.4 团队领导

在自然界中,领导者主要带领种群前往合适的栖息地。原文设定若另一个种群对栖息地占主导地位,那么该种群必须离开此地。公式(5)即计算每个种群中领导者相对于栖息地的下一位置:
S t a l l i o n G i = { 2 Z c o s ( 2 π R Z ) ∗ ( W H − S t a l l i o n G i ) + W H , i f   R 3 > 0.5 2 Z c o s ( 2 π R Z ) ∗ ( W H − S t a l l i o n G i ) − W H , e l s e (5) Stallion_{G_i}=\begin{cases} 2Zcos(2\pi RZ)*(WH-Stallion_{G_i})+WH,if\ R_3>0.5\\ 2Zcos(2\pi RZ)*(WH-Stallion_{G_i})-WH,else \end{cases}\tag{5} StallionGi={2Zcos(2πRZ)(WHStallionGi)+WH,if R3>0.52Zcos(2πRZ)(WHStallionGi)WH,else(5)
式中 W H WH WH为栖息地的位置(也就是当前最优个体位置), R 、 Z R、Z RZ的定义与前文相同。

在种群初始化阶段提到过,如果其中一名组员的适应度值优于领导者,这则两者身份互换:
S t a l l i o n G i = { X G , i , i f   c o s t ( X G i ) < c o s t ( S t a l l i o n G i ) S t a l l i o n G i , e l s e (6) Stallion_{G_i}=\begin{cases} X_{G,i},if\ cost(X_{G_i})<cost(Stallion_{G_i})\\ Stallion_{G_i},else \end{cases}\tag{6} StallionGi={XG,i,if cost(XGi)<cost(StallionGi)StallionGi,else(6)
这里cost为适应度函数。

算法流程图如下:

请添加图片描述

2.实验结果

请添加图片描述

3.参考文献

[1] Naruei I , Keynia F . Wild horse optimizer: a new meta-heuristic algorithm for solving engineering optimization problems[J]. Engineering with Computers, 2021:1-32.

4.Matlab

  • 0
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值