目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
1.背景
2003年,MM Eusuff等人受到青蛙觅食行为启发,提出了混合蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)。
2.算法原理
2.1算法思想
SFLA模拟了湿地中的青蛙群体利用石头跳跃寻找食物丰富的地点。每只青蛙携带独特信息,群体分为不同组进行局部搜索。随着搜索进行,组间信息交流促进了局部搜索的深入。当局部搜索达到一定程度时,不同组的青蛙进行混合,实现群体内信息的整合与更新。
2.2算法过程
划分族群
通过计算种群内青蛙的适应度值, 根据该值对青蛙进行降序排列; 并将种群划分为 m 个族群, 每个族群包含 n 个青蛙, 其中 N=m×n。
局部搜索
基于局部最优解的族群内个体更新策略,将第 i个族群中最优解和最劣解分别标记为Xib ,Xiw, D为跳跃步长:
D = r a n d ∗ ( X i b − X i w ) X i w ′ = X i w + D , D min ≤ D ≤ D max (1) D=rand*(X_{ib}-X_{iw})\\X_{iw}^{\prime}=X_{iw}+D, D_{\min}\leq D\leq D_{\max}\tag{1} D=rand∗(Xib−Xiw)Xiw′=Xiw+D,Dmin≤D≤Dmax(1)
基于全局最优解的族群内个体更新策略,将种群中适应度最好的解xb:
D = r a n d ∗ ( X g − X i w ) X i w ′ = X i w + D , D min ≤ D ≤ D max (2) D=rand*(X_{g}-X_{iw})\\X_{iw}^{\prime}=X_{iw}+D, D_{\min}\leq D\leq D_{\max}\tag{2} D=rand∗(Xg−Xiw)Xiw′=Xiw+D,Dmin≤D≤Dmax(2)
随机生成新个体更新策略:
X i w ′ = r a n d ∗ D max (3) X_{iw}'=rand*D_{\max}\tag{3} Xiw′=rand∗Dmax(3)
全局混合
将完成局部搜索后的族群个体重新混合并排序,再次分组和进行族群内部更新。
3.结果展示
4.参考文献
[1] Eusuff M M, Lansey K E. Optimization of water distribution network design using the shuffled frog leaping algorithm[J]. Journal of Water Resources planning and management, 2003, 129(3): 210-225.