本文主要是介绍混合蛙跳算法-Python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
核心思想
混合蛙跳算法(SFLA)是一种受自然生物模仿启示而产生的基于群体的协同搜索方法。
混合蛙跳算法由局部搜索和全局信息交换两部分组成。
湿地的整个虚拟青蛙群被分为不同的memeplex(社群),每个memeplex(社群)进行独立的局部搜索,社群的个体随着社群的进化而进化。当社群进化到一定程度后,这些青蛙被混合并重组形成新的memeplex(社群),来使局部间的模因信息得到全局信息交换。局部搜索和全局信息交换一直持续交替到满足收敛条件为止。
算法描述
所有的算法流程图都是根据该论文 Eusuff, Muzaffar; Lansey, Kevin; Pasha, Fayzul – Shuffled frog-leaping algorithm 实现,流程图有不懂的地方可以参考该论文。
全局搜索
流程图如下所示:
局部搜索
流程图如下所示:
特点解析
优点:
该算法具有概念简单,调整的参数少,计算速度快,全局搜索寻优能力强,易于实现的优点
缺点:
易收敛到局部最优 ,在求解部分函数优化问题时效果不够理想
参数优化:
跟所有的启发式算法一样,参数的选择对SFLA的表现很关键。SFLA有5个参数:
m, n, q, N, S_max
实例&&代码
实例演示
sfla求解Fn5最小值
Python代码实现,github。
这篇关于混合蛙跳算法-Python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!