一、麻雀算法及BP神经网络简介1

1 SSA的基本原理
SSA算法是一种模拟麻雀觅食行为和反捕食行为的新型群体智能优化算法,其基本原理如下:
在SSA中,每只麻雀位置对应其中的一个解。麻雀在觅食过程中有3种行为:①作为发现者寻找食物;②作为加入者跟随发现者觅食;③作为警戒者决定种群是否继续觅食。其中,发现者和加入者两者的身份是动态变化的,可相互转换,但两者比例保持恒定。发现者作为种群觅食的引导者,拥有更高的适应度值,可以获得更加广阔的搜索区域。而加入者为获取更高的适应度值跟随发现者进行觅食,同时一些加入者可能会不断地监控发现者并夺取食物资源来提高自身的捕食率。种群会随机选取一部分麻雀作为警戒者进行监视和预警,这些麻雀大概占整个种群的10%~20%,当种群边缘的麻雀在觅食过程中察觉到危险时,会迅速提醒整个种群做出反捕食行为。

发现者位置更新描述如下:
【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_优化算法
【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_神经网络_02
【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_参考文献_03
图2 SSA优化BP网络流程

2 基于SSA优化BP神经网络的预测模型
(1)初始化参数。
(2)计算每只麻雀的适应度值,找出当前最优适应度值和最差适应度值,以及相对应的位置。
(3)根据式(1)、式(2)、式(3)依次更新发现者、加入者、警戒者位置。
(4)输出最优麻雀位置,即得到BP神经网络的相关最优参数,见图2。
(5)使用最优参数对农村公路测试集进行仿真预测,经过反归一化处理后,输出农村公路造价预测值。

二、部分源代码

【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_参考文献_04

1. 代码注释清楚。
2. 提供代码使用教程,可以换用个人数据,以及运行得到SSA-BP相关图像与对指定数据的预测结果。
3. 如有问题,请私信我。

三、运行结果

【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_神经网络_05
【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_算法_06
【优化预测】基于matlab麻雀算法优化BP神经网络预测【含Matlab源码 F002期】_优化算法_07

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]王首绪,曾明.基于SSA优化BP神经网络的农村公路造价预测研究[J].工程经济. 2021,31(08)