智能优化算法:花授粉算法
摘要:花授粉算法(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 p>rand 条件成立,按式(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(g∗−Xit)(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 p<rand 条件成立,按式(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+∈(Xjt−Xkt)(3)
其中:∈是[0,1]上服从均匀分布的随机数, X j t 、 X k t X^t_j 、X^t_k Xjt、Xkt 是相同植物
种类的不同花朵的花粉。
e) 计算 c)或者 d)得到的新解对应的适应度值,若新解的适应度值优,则用新解和新解对应的适应度值分别替换当前解和当前适应度值,否则保留当前解和当前适应度值。
f) 如果新解对应的适应度值比全局最优值优,则更新全局最优解和全局最优值。
g)判断结束条件,若满足,退出程序并输出最优值及最优
解,否则,转 c)
2.算法结果
3.参考文献
[1]肖辉辉,万常选,段艳明.一种改进的新型元启发式花朵授粉算法[J].计算机应用研究,2016,33(01):126-131.