【智能算法】淘金优化算法(GRO)原理及实现

在这里插入图片描述


1.背景

2023年,K Zolf等人受到淘金热时代淘金者如何找到金矿启发,提出了淘金优化算法(Gold Rush Optimizer, GRO)。

2.算法原理

2.1算法思想

GRO模拟了淘金热时代淘金者如何利用三个关键点(迁移、协作和淘金)找到金矿。

2.2算法过程

探矿者迁移

最佳金矿勘探者的位置被用作最佳金矿位置:
D → 1 = C → 1 . X → ∗ ( t ) − X → i ( t ) (1) \overrightarrow{D}_{1}=\overrightarrow{C}_{1}.\overrightarrow{X}^{*}(t)-\overrightarrow{X}_{i}(t)\tag{1} D 1=C 1.X (t)X i(t)(1)
X new i → ( t + 1 ) = X → i ( t ) + A → 1 . D → 1 (2) \overrightarrow{X\text{new}_i}\left(t+1\right)=\overrightarrow{X}_i\left(t\right)+\overrightarrow{A}_1.\overrightarrow{D}_1\tag{2} Xnewi (t+1)=X i(t)+A 1.D 1(2)
其中,X*为最佳金矿的位置。(PS:PSO去掉个体最优位置更新🤣
参数表述为:
A → 1 = 1 + l 1 ( r → 1 − 1 2 ) C → 1 = 2 r → 2 (3) \overrightarrow{A}_1=1+l_1(\overrightarrow{r}_1-\frac12)\\\overrightarrow{C}_1=2\overrightarrow{r}_2\tag{3} A 1=1+l1(r 121)C 1=2r 2(3)
在这里插入图片描述
le为平衡因子:
l e = ( max ⁡ i t e r − i t e r max ⁡ i t e r − 1 ) e ( 2 − 1 max ⁡ i t e r ) + 1 max ⁡ i t e r (4) l_e = \left(\frac{\max_{\mathrm{iter}}-\mathrm{iter}}{\max_{\mathrm{iter}}-1}\right)^e\left(2-\frac1{\max_{\mathrm{iter}}}\right)+ \frac1{\max_{\mathrm{iter}}}\tag{4} le=(maxiter1maxiteriter)e(2maxiter1)+maxiter1(4)

金矿开采

每个金矿勘探者的位置都被视为金矿的近似位置:
D → 2 = X → i ( t ) − X → r ( t ) X new → i ( t + 1 ) = X → r ( t ) + A → 2 . D → 2 (5) \overrightarrow{D}_{2}=\overrightarrow{X}_{i}\left(t\right)-\overrightarrow{X}_{r}\left(t\right)\\\overrightarrow{X\text{new}}_{i}\left(t+1\right)=\overrightarrow{X}_{r}\left(t\right)+\overrightarrow{A}_{2}.\overrightarrow{D}_{2}\tag{5} D 2=X i(t)X r(t)Xnew i(t+1)=X r(t)+A 2.D 2(5)
参数表述为:
A → 2 = 2 l 2 r 1 → − l 2 (6) \overrightarrow{A}_2=2l_2\overrightarrow{r_1}-l_2\tag{6} A 2=2l2r1 l2(6)

勘探者合作

由于淘金有时是通过团队合作进行,其中g1和g2是随机选择两个淘金者:
D → 3 = X → g 2 ( t ) − X → g 1 ( t ) X new i → ( t + 1 ) = X → i ( t ) + r → 1 . D → 3 (7) \overrightarrow{D}_{3}=\overrightarrow{X}_{g_{2}}\left(t\right)-\overrightarrow{X}_{g_{1}}\left(t\right)\\\overrightarrow{X\text{new}_{i}}\left(t+1\right)=\overrightarrow{X}_{i}\left(t\right)+\overrightarrow{r}_{1}.\overrightarrow{D}_{3}\tag{7} D 3=X g2(t)X g1(t)Xnewi (t+1)=X i(t)+r 1.D 3(7)
在这里插入图片描述
勘探者搬迁

金矿勘探者在不断地移动,他们为了获得更多的黄金。为了决定探矿者是留在原来的位置还是搬到新的位置,通过适应度值进行比较:
X → i ( t + 1 ) = X new i → ( t + 1 ) i f f ( X new i → ( t + 1 ) ) < f ( X → i ( t ) ) (8) \overrightarrow{X}_i\left(t+1\right) = \overrightarrow{X\text{new}_i}\left(t+1\right) \mathrm{if} f( \overrightarrow{X\text{new}_i}\left(t+1\right) ) < f( \overrightarrow{X}_i\left(t\right))\tag{8} X i(t+1)=Xnewi (t+1)iff(Xnewi (t+1))<f(X i(t))(8)

伪代码
在这里插入图片描述

3.结果展示

使用测试框架,测试GRO性能 一键run.m

CEC2005-F14:
在这里插入图片描述
在这里插入图片描述
CEC2005-F20:
在这里插入图片描述
在这里插入图片描述
PS:GRO效果不错👍

4.参考文献

[1] Zolf K. Gold rush optimizer: a new population-based metaheuristic algorithm[J]. Operations Research and Decisions, 2023, 33.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值