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

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


摘要:花授粉算法(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代码

https://mianbaoduo.com/o/bread/aJaTk54=

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/108346554
今日推荐