【智能算法改进】改进的麻雀搜索算法及其求解旅行商问题

news/2024/8/26 3:52:02 标签: TSP, 论文复现, 智能算法改进

目录

    • 1.算法原理
    • 2.改进点
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.算法原理

【智能算法】麻雀搜索算法(SSA)原理及实现

2.改进点

改进发现者更新位置

为了使 SSA 算法能够避开向原点收敛的弊端, 将算法向最优位置跳跃的操作转换为向最优位置的移动:
X i , j t + 1 = { X i , j t ⋅ ( Q + 1 ) , R 2 < S T X i , j t + Q , R 2 ⩾ S T (1) \left.X_{i,j}^{t+1}=\left\{\begin{array}{ll}X_{i,j}^{t}\cdot(Q+1),&R_2<S T\\\\X_{i,j}^{t}+Q,&R_2\geqslant S T\end{array}\right.\right.\tag{1} Xi,jt+1= Xi,jt(Q+1),Xi,jt+Q,R2<STR2ST(1)

改进预警者更新位置

为了让预警者发现危险后能够逃离到最优的安全位置, 提高算法的全局搜索能力:
X i , j t + 1 = { X i , j t ⋅ β ⋅ ( X i , j t − X b e s t t ) , f i = f g X i , j t + β ⋅ ( X w o r s t t − X b e s t t ) , f i ≠ f g (2) \left.X_{i,j}^{t+1}=\left\{\begin{array}{ll}X_{i,j}^{t}\cdot\beta\cdot(X_{i,j}^{t}-X_{\mathrm{best}}^{t}),&f_{i}=f_{g}\\X_{i,j}^{t}+\beta\cdot(X_{\mathrm{worst}}^{t}-X_{\mathrm{best}}^{t}),&f_{i}\neq f_{g}\end{array}\right.\right.\tag{2} Xi,jt+1={Xi,jtβ(Xi,jtXbestt),Xi,jt+β(XworsttXbestt),fi=fgfi=fg(2)

高斯变异策略

引入高斯变异算子对每次迭代得到的全局最优解进行扰动, 避免算法陷入局部最优, 出现早熟现象的缺点, 同时也能够维持种群个体的多样性:
X g a u s s t + 1 = X g b e s t t ⋅ ( 1 + G a u s s i a n ( α ) ) (3) X_{\mathrm{gauss}}^{t+1}=X_{\mathrm{gbest}}^{t}\cdot(1+Gaussian(\alpha))\tag{3} Xgausst+1=Xgbestt(1+Gaussian(α))(3)

3.结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TSP应用
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] 张月栋,莫愿斌.改进的麻雀搜索算法及其求解旅行商问题.计算机系统应用,2022,31(2):200-206

5.代码获取

【资源清单】代码资源清单导航~


http://www.niftyadmin.cn/n/5557910.html

相关文章

Zookeeper之CAP理论及分布式一致性算法

CAP理论 CAP理论告诉我们&#xff0c;一个分布式系统不可能同时满足以下三种 一致性&#xff08;C:consistency&#xff09;可用性&#xff08;A:Available&#xff09;分区容错性&#xff08;P:Partition Tolerance&#xff09; 这三个基本要求&#xff0c;最多只能同时满足…

在 PostgreSQL 里如何处理数据的存储优化和查询复杂度的平衡?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何处理数据的存储优化和查询复杂度的平衡&#xff1f;一、理解数据存储优化和查询复…

探索Laravel的视图组件与插槽:构建动态且可复用的UI

探索Laravel的视图组件与插槽&#xff1a;构建动态且可复用的UI 引言 Laravel作为一个现代化的PHP框架&#xff0c;提供了许多强大的功能来帮助开发者构建高性能和可维护的Web应用。其中&#xff0c;视图组件&#xff08;View Components&#xff09;和插槽&#xff08;Slots…

C语言——局部变量和全局变量

在C语言中&#xff0c;变量可以根据其作用域&#xff08;即变量在程序中的可访问范围&#xff09;和存储期&#xff08;即变量的生命周期&#xff09;被分为不同的类型。其中&#xff0c;局部变量和全局变量是两种基本且重要的分类。 局部变量&#xff08;Local Variables&…

Visual Studio 2022 安装及使用

目录 一、下载及安装 二、VS的使用 1.创建项目 2.创建源文件 3.写代码 三、其他 1.字体和颜色设置 2.scanf报错 3.无法解析的外部符号 4.注释快捷键 5.调试与监视 参考 一、下载及安装 VS 官网&#xff1a;Visual Studio: IDE and Code Editor for Software Devel…

硬盘HDD:AI时代的战略金矿?

在这个AI如火如荼的时代&#xff0c;你可能以为硬盘HDD已经像那些过时的诺基亚手机一样&#xff0c;被闪存和云存储淘汰到历史的尘埃里。但&#xff0c;别急着给HDD们举行退休派对&#xff0c;因为根据Finis Conner这位硬盘界的传奇人物的说法&#xff0c;它们非但没退场&#…

Android Developers使用tips

​​​​​​Android系统所有版本的列表&#xff1a; https://developer.android.com/about/versions 点击你想要适配的版本&#xff1a;例如Android 12 点击Get Start之后&#xff0c;拉到最底部&#xff0c;你将会看到More information Behavior changes that affect all …

DNS是什么

《对 DNS 的理解》 一 什么是dns DNS 可以被看作是互联网的电话簿。就像我们在需要联系某人时会查找电话簿以获取他们的电话号码一样&#xff0c;当我们的计算机需要访问一个特定的网站时&#xff0c;它会查询 DNS 以获取该网站服务器的 IP 地址。 从技术层面来讲&#xff…