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

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

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

1.算法原理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.算法结果

算法结果

3.参考文献

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

4.Matlab代码

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容