智能优化算法:花授粉算法-附代码

智能优化算法:花授粉算法


摘要:花授粉算法(Flower Pollination Algorithm,FPA)由Xin-She Yang 于 2012 年提出,由开花植物的花授粉过程启发而来 。被广泛应用于寻优问题中,具有收敛速度快等特点。

1.算法原理

花朵授粉算法是模拟自然界中显花植物花朵传粉的过程,该算法的理想条件假设如下:

a) 生物异花授粉是带花粉的传粉者通过 Levy 飞行进行的全局授粉过程。

b) 非生物自花授粉是局部授粉过程。

c) 花的常性可以被认为是繁衍概率,繁衍概率与参与的两朵花的相似性成比例关系。

d) 转换概率 p ∈ [ 0 , 1 ] p∈[0,1] p[0,1]控制全局授粉与局部授粉之间的转换,由于物理上的邻近性和风等其他因素的影响,局部授粉在整个授粉活动中是一个非常重要的部分 p p p

然而,在现实的自然界中,每一棵显花植物可以开好多朵花,每朵花产生数百万甚至数十亿的花粉配子。但是,为了把问题简单化,假设每棵显花植物仅仅只开一朵花,且每朵花仅产生一个花粉配子。因此,问题经过简化后,意味着一朵花或一个配子就对应于优化问题中的一个解。

基于以上阐述,花朵授粉算法的实现步骤描述如下:

a) 初始化各个参数,包括花朵种群数 n n n,转换概率 p p p

b) 计算每个解的适应度值,并求解出当前的最优解和最优值。

c) 如果转换概率 p > r a n d p > rand prand 条件成立,按式(1)对解进行更新,并进行越界处理。
X i t + 1 = X i t + L ( g ∗ − X i t ) (1) X_i^{t+1}=X_i^{t} + L(g*-X_i^t)\tag{1} Xit+1=Xit+L(gXit)(1)
其中: X i t + 1 , X i t X_i^{t+1},X_i^{t} Xit+1,Xit分别是第 t + 1 t + 1 t+1 代、第 $t 代 的 解 ; g ∗ 是 全 局 最 优 解 ; 代的解;g * 是全局最优解; ;g;L$ 是步长,$L $的计算公式为:
L − λ Γ ( λ ) s i n ( π λ / 2 ) π s 1 + λ , ( s > > s 0 > 0 ) (2) L-\frac{\lambda \Gamma(\lambda)sin(\pi \lambda/2) }{\pi s^{1+\lambda}},(s>>s_0>0) \tag{2} Lπs1+λλΓ(λ)sin(πλ/2),(s>>s0>0)(2)
其中:λ =3/2, Γ ( λ ) Γ(λ) Γ(λ)是标准的伽马函数。

d) 倘若转换概率 p < r a n d p < rand prand 条件成立,按式(3)对解进行更新,并进行越界处理。
X i t + 1 = X i t + ∈ ( X j t − X k t ) (3) X_i^{t+1} = X_i^{t} + \in(X_j^t - X_k^t)\tag{3} Xit+1=Xit+(XjtXkt)(3)
其中:∈是[0,1]上服从均匀分布的随机数, X j t 、 X k t X^t_j 、X^t_k XjtXkt 是相同植物
种类的不同花朵的花粉。

e) 计算 c)或者 d)得到的新解对应的适应度值,若新解的适应度值优,则用新解和新解对应的适应度值分别替换当前解和当前适应度值,否则保留当前解和当前适应度值。

f) 如果新解对应的适应度值比全局最优值优,则更新全局最优解和全局最优值。

g)判断结束条件,若满足,退出程序并输出最优值及最优
解,否则,转 c)

2.算法结果

在这里插入图片描述

3.参考文献

[1]肖辉辉,万常选,段艳明.一种改进的新型元启发式花朵授粉算法[J].计算机应用研究,2016,33(01):126-131.

4.Matlab代码

花授粉算法

改进算法matlab代码

名称说明或者参考文献
t-分布扰动策略和变异策略的花授粉算法(tMfpa)[1]洪露,贺兴时,杨新社.基于三重动态调整的花授粉算法[J].西安工程大学学报,2021,35(02):97-103.
基于三重动态调整的花授粉算法(HLPFA)[1]段艳明,肖辉辉,林芳.新授粉方式的花授粉算法[J].计算机工程与应用,2018,54(23):94-108.
新授粉方式的花授粉算法(NMFPA)[1]李肇基,程科,王万耀,崔庆华.一种改进的进化模型和混沌优化的萤火虫算法[J].计算机与数字工程,2019,47(07):1605-1612.

算法相关应用

名称说明或者参考文献
花授粉优化的BP神经网络(预测)https://blog.csdn.net/u011835903/article/details/112149776(原理一样,只是优化算法是花授粉算法)
花授粉优化的BP神经网络(分类)https://blog.csdn.net/u011835903/article/details/112149394(原理一样,只是优化算法是花授粉算法)
基于花授粉算法优化的SVM数据分类https://blog.csdn.net/u011835903/article/details/110523352(原理一样,只是优化算法是花授粉算法)
基于花授粉优化的最大熵多阈值分割https://blog.csdn.net/u011835903/article/details/108203775(原理一样,只是优化算法是花授粉算法)
花授粉算法优化的otsu多阈值分割https://blog.csdn.net/u011835903/article/details/108019744(原理一样,只是优化算法是花授粉算法)
花授粉优化的PID参数优化https://blog.csdn.net/u011835903/article/details/109306387(原理一样,只是优化算法是花授粉算法)

上述代码见个人资料介绍

  • 5
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值