一、算法原理

加入者位置更新:

警觉者位置更新:

二、算法流程

步骤1:初始化种群、迭代次数,初始化捕食者和加入者比例;

步骤2 :计算适应度值,并排序;

步骤3:利用式(3-4)更新捕食者位置;

步骤4:利用式(4)更新加入者位置;

步骤5:利用式(3-6)更新警戒者位置;

步骤6:计算适应度值,并更新麻雀位置;

步骤7:是否满足停止条件,满足则退出,输出结果,否则,重复执行步骤2-6。

三、部分python代码

import numpy as np
from matplotlib import pyplot as plt
import SSA'''适应度函数'''
def fun(X):O=X[0]**2 + X[1]**2return O'''麻雀搜索算法求解x1^2 + x2^2的最小值'''
'''主函数 '''
#设置参数
pop = 50 #种群数量
MaxIter = 100 #最大迭代次数
dim = 2 #维度
lb = -10*np.ones(dim) #下边界
ub = 10*np.ones(dim)#上边界
#适应度函数选择
fobj = fun
GbestScore,GbestPositon,Curve = SSA.SSA(pop,dim,lb,ub,MaxIter,fobj)
print('最优适应度值:',GbestScore)
print('最优解[x1,x2]:',GbestPositon)# 绘制适应度曲线
plt.figure(1)
plt.plot(Curve,'r-',linewidth=2)
plt.xlabel('Iteration',fontsize='medium')
plt.ylabel("Fitness",fontsize='medium')
plt.grid()
plt.title('SSA',fontsize='large')
plt.show()
'''麻雀搜索算法核心代码'''
def SSA(pop,dim,lb,ub,Max_iter,fun):ST = 0.6 #预警值PD = 0.7 #发现者的比列,剩下的是加入者SD = 0.2 #意识到有危险麻雀的比重PDNumber = int(pop*PD) #发现者数量SDNumber = int(pop*SD) #意识到有危险麻雀数量X,lb,ub = initial(pop, dim, ub, lb) #初始化种群fitness = CaculateFitness(X,fun) #计算适应度值fitness,sortIndex = SortFitness(fitness) #对适应度值排序X = SortPosition(X,sortIndex) #种群排序GbestScore = copy.copy(fitness[0])GbestPositon = np.zeros([1,dim])GbestPositon[0,:] = copy.copy(X[0,:])Curve = np.zeros([Max_iter,1])for i in range(Max_iter):BestF = fitness[0]X = PDUpdate(X,PDNumber,ST,Max_iter,dim)#发现者更新X = JDUpdate(X,PDNumber,pop,dim) #加入者更新X = SDUpdate(X,pop,SDNumber,fitness,BestF) #危险更新X = BorderCheck(X,ub,lb,pop,dim) #边界检测fitness = CaculateFitness(X,fun) #计算适应度值fitness,sortIndex = SortFitness(fitness) #对适应度值排序X = SortPosition(X,sortIndex) #种群排序if(fitness[0]<=GbestScore): #更新全局最优GbestScore = copy.copy(fitness[0])GbestPositon[0,:] = copy.copy(X[0,:])Curve[i] = GbestScorereturn GbestScore,GbestPositon,Curve

麻雀搜索算法(SSA)相关推荐

  1. matlab麻雀搜索算法(SSA)优化BP神经网络,权值和阈

    matlab麻雀搜索算法(SSA)优化BP神经网络,权值和阈值,一个压缩包共三个文件,包括有数据和代码,放入自己的数据即可得出仿真图形 ID:296679013048817MATLAB

  2. 麻雀搜索算法SSA(Sparrow Search algorithm)

    文章目录 前言 数学模型 前言 麻雀搜索算法是2020提出的一种新的优化算法,出自东华大学xue和shen的论文:A novel swarm intelligence optimization app ...

  3. 麻雀搜索算法SSA(有matlab代码,复制粘贴即可)

    上代码,少废话.本人亲测,无误.现在我贴出来. clear all; close all; clc;%% 参数设置 N=30; %麻雀个数 dim=2; %评估函数维度 N_discoverer=0. ...

  4. 单目标应用:蜣螂优化算法DBO与麻雀搜索算法SSA求解无人机三维航迹规划(提供Matlab代码)

    一.无人机三维航迹规划 三维航迹规划是无人机在执行任务过程中的非常关键的环节,三维航迹规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路. 1.1路径最短约束 无人 ...

  5. 基于瞬态自适应的麻雀搜索算法

    文章目录 一.理论基础 1.麻雀搜索算法SSA 2.瞬态自适应麻雀搜索算法TASSA (1)瞬态搜索策略 (2)自适应惯性权重 (3)TASSA实现流程 二.仿真实验与结果分析 三.参考文献 一.理论 ...

  6. 融合黄金正弦和曲线自适应的多策略麻雀搜索算法

    文章目录 一.理论基础 1.原始麻雀搜索算法(SSA) 2.融合黄金正弦和曲线自适应的多策略麻雀搜索算法(GCSSA) 2.1 Chebyshev混沌映射策略 2.2 位置更新方式改进 2.2.1 黄 ...

  7. 基于 Sobol 序列和纵横交叉策略的麻雀搜索算法-附代码

    基于 Sobol 序列和纵横交叉策略的麻雀搜索算法 文章目录 基于 Sobol 序列和纵横交叉策略的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 基于 Sobol 序列初始化种群位置 2 ...

  8. 单目标应用:基于麻雀搜索算法优化灰色神经网络(grey neural network)的数据预测(提供MATLAB代码)

    一.麻雀搜索算法 麻雀搜索算法(sparrow search algorithm,SSA)由Jiankai Xue等人于2020年提出,该算法是根据麻雀觅食并逃避捕食者的行为而提出的群智能优化算法.S ...

  9. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

  10. 多目标优化算法:基于非支配排序的麻雀搜索算法(Non-Dominated Sorting Sparrow Search Algorithm,NSSSA)

    一.麻雀搜索算法 麻雀搜索算法(SSA)的原理参考博客:麻雀搜索算法SSA 二.非支配排序麻雀搜索算法NSSSA 将非支配排序麻雀搜索算法(Non-Dominated Sorting Sparrow ...

最新文章

  1. 斯坦福大学Andrew Ng - 机器学习笔记(3) -- 神经网络模型
  2. .NET平台开源项目速览(4).NET文档生成工具ADB及使用
  3. 5.1 HTML5表单的创建
  4. Android Studio的Gradle常用命令配置和依赖管理
  5. 【dfs】家族(jzoj 1985)
  6. HTML如何添加锚点,论程序员成长的正确姿势
  7. c语言二叉树构造与输出,C语言数据结构树状输出二叉树,谁能给详细的解释一下...
  8. 怎么将手机QQ浏览器里面的文章分享给QQ好友
  9. 为什么用openstack_如何为OpenStack贡献力量
  10. Scala学习之Option类
  11. Android反射机制实现与原理
  12. [转] PHP:自己动手制作伪原创程序
  13. 全网最全-Java简历优化-优质项目经历
  14. 小熊派·叔BearPi-HM Micro环境搭建(双系统)
  15. 小滴课堂-独孤求败-架构大课十八式-xiaoecf
  16. win7如何设置wifi热点_Win7家庭版如何给文件夹设置密码?Win7文件夹加密方法
  17. torchvision.datasets.FashionMNIST报错[WinError 10054] 远程主机强迫关闭了一个现有的连接
  18. Excel饼图中既显示百分比
  19. 实验三 配置和实施VLAN
  20. 微信小程序之js 字符串转换成数字的三种方法, 取float型小数点后两位数的方法

热门文章

  1. SpringCloud——Nacos下载
  2. 最小的Excel文档
  3. java monkeyrunner_MonkeyRunner 自动化测试 Android 应用入门示例
  4. Handler用法及解析
  5. 什么是gnome---基本概念介绍(转)
  6. 目标分割算法之连通域分析
  7. [编程题] 寻找三角形
  8. 《黑马程序员》演讲比赛管理系统实战
  9. 谷歌手机连接AirPods Pro 2存在Bug,耳机有Find My功能加持不怕丢
  10. 蓝牙AirTag防丢findmy