基于随机游走改进的麻雀搜索算法
1.随机游走策略
随机游走的过程在数学上可以表示为:
式中:为随机游走的步数集; 为计算累加和; 为随机游走的步数(本文取最大迭代次数);为一个随机函数,定义为
式中:为[0,1]的随机数。
由于可行域存在边界,不能直接用式(1)更新蚂蚁的位置。为确保行走在可行域范围内随机游走,需根据式(3)对其进行归一化
式中: 为第$ i$ 维变量随机游走的最小值; 为第 维变量随机游走的最大值;为第维变量再第次迭代的最小值;为第 维变量在第$ t$ 次迭代最大值。
2.基于随机策略的麻雀搜索算法
基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
该改进主要是在麻雀搜索后,利用随机游走对最优麻雀进行扰动,提高其搜索性,在开始迭代之初,随机游走边界较大,有利于提高全局搜索性,在迭代多次后,游走边界变小,提高算法的最优位置局部搜索性。
算法流程
Step1: 初始化种群,迭代次数,初始化捕食者和加入者比列。
Step2:计算适应度值,并排序。
Step3:麻雀更新捕食者位置。
Step4:麻雀更新加入者位置。
Step5:麻雀更新警戒者位置。
Step6:计算适应度值并更新麻雀位置。
Step7. 利用随机游走更新最优麻雀
Step8.计算适应度值并更新麻雀位置。
Step9:是否满足停止条件,满足则退出,输出结果,否则,重复执行Step2-8;
3.算法结果:
4.Matlab
5.Python
文章出处登录后可见!
已经登录?立即刷新