【智能算法】随机分形搜索算法(SFS)原理及实现

在这里插入图片描述


1.背景

2015年,Salimi等人受到分形的扩散性质启发,提出了随机分形搜索算法(Stochastic Fractal Search ,SFS)。

2.算法原理

2.1算法思想

SFS通过引入分形的扩散过程作为其搜索机制,并选择高斯分布作为扩散过程的随机游走方式。然后,根据各个体的适应度函数值进行选择,并对各个个体的分量和位置进行更新,最终求得问题的最优解。
在这里插入图片描述

2.2算法过程

扩散过程

在这里插入图片描述

个体扩散导致在其周围产生具有随机不同位置的新的个体,参与扩散过程的一系列高斯游走:
G W 1 = G a u s s i a n ( μ B P , σ ) + ( ε × B P − ε ′ × P i ) G W 2 = G a u s s i a n ( μ p , σ ) (1) \begin{aligned}&GW_1=Gaussian(\mu_{BP},\sigma)+(\varepsilon\times BP-\varepsilon^{\prime}\times P_i)\\&GW_2=Gaussian(\mu_p,\sigma)\end{aligned}\tag{1} GW1=Gaussian(μBP,σ)+(ε×BPε×Pi)GW2=Gaussian(μp,σ)(1)
BP 和 Pi 分别表示群体中的最佳个体和第 i 个个体的位置,高斯参数中的标准差 σ 为:
σ = ∣ log ⁡ ( g ) g × ( P i − B P ) ∣ (2) \sigma=\left|\frac{\log(g)}{g}\times(P_i-\mathrm{BP}) \right|\tag{2} σ= glog(g)×(PiBP) (2)
随着迭代次数的增加,为了增强个体的局部搜索能力,并使得解越来越接近最优解,可使用 log(g)/g来减小高斯跳跃的步长。

更新过程

初始化所有个体后,计算每个个体的适应度函数值以获得最佳个体(BP)。个体围绕当前位置游走以开发搜索空间,同时利用两个统计过程进行更新,以实现更好的空间探索。
对于第一次更新过程,首先根据适应度函数值对所有的个体进行排序:
P a i = r a n k ( P i ) N (3) Pa_i=\frac{rank(P_i)}N\tag{3} Pai=Nrank(Pi)(3)
对于群体中的每个个体Pi ,判定条件 Pai< ε 是否满足,若满足则更新:
P i ′ ( j ) = P r ( j ) − ε × ( P t ( j ) − P i ( j ) ) (4) P_i'(j)=P_r(j)-\varepsilon\times(P_t(j)-P_i(j))\tag{4} Pi(j)=Pr(j)ε×(Pt(j)Pi(j))(4)

第二次更新过程旨在通过考虑群体中其他个体的位置来改变一个个体的位置:
P i ′ ′ = P i ′ − ε ^ × ( P t ′ − B P ) ∣ ε ′ ⩽ 0.5 P i ′ ′ = P i ′ + ε ^ × ( P t ′ − P r ′ ) ∣ ε ′ > 0.5 (5) P_{i}^{\prime\prime}=P_{i}^{\prime}-\hat{\varepsilon}\times\left(P_{t}^{\prime}-BP\right)\quad\mid\varepsilon^{\prime}\leqslant0.5\\P_{i}^{\prime\prime}=P_{i}^{\prime}+\hat{\varepsilon}\times\left(P_{t}^{\prime}-P_{r}^{\prime}\right)\quad\mid\varepsilon^{\prime}>0.5\tag{5} Pi′′=Piε^×(PtBP)ε0.5Pi′′=Pi+ε^×(PtPr)ε>0.5(5)

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

3.结果展示

在这里插入图片描述

4.参考文献

[1] Salimi H. Stochastic fractal search: a powerful metaheuristic algorithm[J]. Knowledge-based systems, 2015, 75: 1-18.

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值