【智能算法】蛇优化算法(SO)原理及实现

news2025/1/8 5:05:18

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


1.背景

2022年,FA Hashim等人受到蛇特殊交配行为启发,提出了蛇优化算法(Snake Optimizer, SO)。

2.算法原理

2.1算法思想

SO算法模拟蛇类的战斗与交配模式来实现全局优化。在战斗模式中,雄性为了得到最佳雌性而竞争,而每个雌性则选择最佳雄性。在交配模式中,雌雄之间交配受食物可用性影响。若交配发生在搜索阶段内,雌蛇可能产卵,孵化新后代。

2.2算法过程

初始化
SO 算法首先生成一个均匀分布的随机群体,并假设蛇群中雌性与雄性占比均为50% , 群体分为雄性种群和雌性种群。

SO算法寻优过程分为探索阶段和开发阶段。 其中探索阶段模拟蛇群在无食物情况下蛇类的行为模式, 开发阶段模拟食物存在时蛇类的行为模式, 蛇类行为模式通过实物总量Q和温度 Temp控制。
探索阶段
如果Q<ThresholdQ(0.25) , 蛇通过选择任意随机位置来寻找食物, 并更新它们的位置。 位置更新公式如下:
X i , m ( t + 1 ) = X r a n d , m ( t ) ± X X = c 2 × A m × ( ( X max ⁡ − X min ⁡ ) × r a n d + X min ⁡ ) (1) \begin{aligned}X_{i,m}\left(t+1\right)&=X_{rand,m}\left(t\right)\pm X\\X&=c_2\times A_m\times((X_{\max}-X_{\min})\times rand+X_{\min})\end{aligned}\tag{1} Xi,m(t+1)X=Xrand,m(t)±X=c2×Am×((XmaxXmin)×rand+Xmin)(1)
其中,Xi,m表示第 i 只雄性位置,Xrand,m表示随机雄性的位置;Am表示雄性蛇个体的捕食能力。
开发阶段
在 Q>ThresholdQ 时,如果 Temp>ThresholdT(0.6) , 蛇只会向食物移动, 蛇个体的移动公式如下:
X i , j ( t + 1 ) = X f o o d ± X X = c 3 × T e m p × r a n d × ( X f o o d − X i , j ( t ) ) (2) \begin{gathered}X_{i,j}(t+1)=X_{\mathrm{food}}\pm X\\X=c_3\times Temp\times rand\times(X_{\mathrm{food}}-X_{i,j}(t))\end{gathered}\tag{2} Xi,j(t+1)=Xfood±XX=c3×Temp×rand×(XfoodXi,j(t))(2)
Xi,j是个体i的位置,Xfood是最佳个体的位置。
如果 Temp<ThresholdT(0.6) , 蛇将处于战斗模式或交配模式, 蛇个体处于战斗模式下的移动公式如下:
X i , m ( t + 1 ) = X i , m ( t ) + X X = c 3 × F M × r a n d × ( Q × X b e s t , f − X i , m ( t ) ) (3) X_{i,m}\left(t+1\right)=X_{i,m}\left(t\right)+X\\X=c_3\times FM\times rand\times\left(Q\times X_{best,f}-X_{i,m}\left(t\right)\right)\tag{3} Xi,m(t+1)=Xi,m(t)+XX=c3×FM×rand×(Q×Xbest,fXi,m(t))(3)
Xi,m为雄性个体i的位置,Xbest,f为雌性群体中最佳位置,FM为雄性战斗力。
在 Temp<ThresholdT(0.6) 时, 蛇个体处于交配模式下的移动公式如下:
X i , m ( t + 1 ) = X i , m ( t ) + X X = c 3 × M m × r a n d × ( Q × X i , f ( t ) − X i , m ( t ) ) (4) X_{i,m}\left(t+1\right)=X_{i,m}\left(t\right)+X\\X=c_3\times M_m\times rand\times(Q\times X_{i,f}(t)-X_{i,m}(t))\tag{4} Xi,m(t+1)=Xi,m(t)+XX=c3×Mm×rand×(Q×Xi,f(t)Xi,m(t))(4)

伪代码
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Hashim F A, Hussien A G. Snake Optimizer: A novel meta-heuristic optimization algorithm[J]. Knowledge-Based Systems, 2022, 242: 108320.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1546978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

社会实践 | 暑期社会实践投稿攻略,凤凰网等(央媒/官媒)投稿入口,不同频道发稿详细报价

作为媒体行业的从业者&#xff0c;我们都清楚凤凰网等央媒/官媒的影响力和号召力。如果能在这些平台上发表文章&#xff0c;不仅可以增加个人影响力&#xff0c;还有利于传播自己的观点和思想。然而&#xff0c;很多人可能不知道如何才能在这些媒体上投稿。今天&#xff0c;我要…

错误记录

Packet for query is too large 错误原因 一般是没有修改Mysql允许传输的最大数据包大小&#xff0c;使用 SHOW VARIABLES LIKE %max_allowed_packet%;可以看到默认的大小&#xff0c;一般默认为1M。 处理方法 暂时修改&#xff1a;重启mysql后失效 --修改为10M set global…

鸿蒙开发实例:【demo-搜索历史记录】

图片演示效果&#xff1a; 鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术鸿蒙技术文档开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。或mau123789学习&#xff0c;是v喔 代码演示&#xff1a; // 注&#xff1a;当前代码基于宽度为…

开箱即用的中后台管理模版,建议收藏!

公众号&#xff1a;程序员白特&#xff0c;欢迎一起交流学习~ 原文作者&#xff1a;前端充电宝 大家好&#xff0c;我是白特。 今天来推荐几款开箱即用的中后台管理模版&#xff01; Vue Element Admin vue-element-admin 是一个后台前端解决方案&#xff0c;它基于 vue 和 …

C++ 迭代器与反向迭代器

目录 一&#xff0c;什么是迭代器 1&#xff0c;定义 2&#xff0c;迭代器的设计思维 3&#xff0c;迭代器种类 二&#xff0c;迭代器与容器 1&#xff0c;容器中的迭代器 2&#xff0c;迭代器失效问题 三&#xff0c;迭代器的类型萃取&#xff08;traits&#xff09; …

稀碎从零算法笔记Day28-LeetCode:零钱兑换

前言&#xff1a;鸽了好多天了哈哈哈&#xff0c;虽然C站没更但是LC还是坚持刷的&#xff0c;任重道远啊&#xff01;(可恶的寝室熄灯) 题型&#xff1a;动态规划 链接&#xff1a;322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述…

城市内涝排水系统最新模型:慧天【HTWATER】与SWMM完美耦合

查看原文>>> 城市内涝水文水动力模型&#xff1a;慧天【HTWATER】 【城市内涝水文水动力模型介绍】 慧天排水数字化分析平台针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存…

静态资源动态访问的细节补充import()与new URL

教学视频的补充 静态资源的动态访问【渡一教育】_哔哩哔哩_bilibili import里若用引号拼接,那么打包结果不会有图片 细节1:得用es6的反单引号才可以 细节2:不能以变量结尾 var p 12 //错误import(./assets/ p .jpg).then(res > {console.log(res, res);}) //正确var p…

201812 CSP认证 | CIDR合并

CIDR合并 难是真的不难但是也写了我几个小时服了 这道题在有计网的基础上就很好理解了&#xff0c;没有在格式上有任何刁难你的。这里不讲背景了 官网提交结果以及满分代码如下&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; typedef…

Qt Design Studio 软件怎么用(详细+通俗+有趣)

建议&#xff1a;本文长期更新&#xff0c;建议点赞/收藏&#xff01; 1. 啥是Qt Design Studio&#xff1f; Qt Design Studio 是一个用于设计和开发用户界面的工具&#xff0c;特别适合开发跨平台应用程序。它结合了UI设计和开发的工作流程&#xff0c;使得设计师和开发者可…

​奶茶店小程序有哪些功能

​奶茶店作为饮品行业的一种热门经营模式&#xff0c;拥有自己的小程序可以带来诸多便利和增长机会。在这篇文章中&#xff0c;我们将探讨奶茶店小程序应该具备的功能&#xff0c;以满足消费者的需求&#xff0c;提升店铺的运营效率和用户体验。 1. **在线订购功能**&#xff…

linux文本三剑客 --- grep、sed、awk

1、grep grep&#xff1a;使用正则表达式搜索文本&#xff0c;将匹配的行打印出来&#xff08;匹配到的标红&#xff09; 命令格式&#xff1a;grep [option] pattern file <1> 命令参数 -A<显示行数>&#xff1a;除了显示符合范本样式的那一列之外&#xff0c;并…

Windows/Mac 上的 7 个顶级数据恢复软件榜单

数据恢复软件可帮助您从众多存储设备中恢复损坏或删除的数据。该文件恢复软件可以恢复文件、文档、视频、照片等。这些应用程序支持许多标准文件格式&#xff0c;如 PNG、RTF、PDF、HTML、JPG、MP3 等。以下是具有流行功能的顶级数据恢复软件列表和网站链接。磁盘恢复软件列表包…

【Python系列】Python 中 YAML 文件与字典合并的实用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

真假难辨:凯特王妃最新视频疑似AI合成,公众哗然!

会议之眼 快讯 北京时间3月23日凌晨&#xff0c;英国的凯特王妃发布了一段震撼人心的视频声明&#xff0c;坦诚自己正在面临一场艰难的挑战——患上了癌症。她坦言目前正在接受预防性化疗&#xff0c;并处于治疗的“早期阶段”&#xff0c;这一消息是在她暂时退出公众生活两个多…

智慧城市一屏统览,数字孪生综合治理

现代城市作为一个复杂系统&#xff0c;牵一发而动全身&#xff0c;城市化进程中产生新的矛盾和社会问题都会影响整个城市系统的正常运转。智慧城市是应对这些问题的策略之一。城市工作要树立系统思维&#xff0c;从构成城市诸多要素、结构、功能等方面入手&#xff0c;系统推进…

力扣Lc21--- 389. 找不同(java版)-2024年3月26日

1.题目描述 2.知识点 &#xff08;1&#xff09;在这段代码中&#xff1a; // 统计字符串s中每个字符的出现次数for (int i 0; i < s.length(); i) {count[s.charAt(i) - a];}对于字符串s “abcd”&#xff1a; 当 i 0&#xff0c;s.charAt(i) ‘a’&#xff0c;ASCII…

Kali开启远程服务

一&#xff0c;先切换root账户 二、kali开启远程服务 1&#xff0c;修改远程登录的配置文件 vim /etc/ssh/sshd_config &#xff08;用文本编辑器打开此文件) 在文件的普通模式下&#xff0c;使用/PermitRootLogin&#xff0c;回车&#xff0c;查找到该行&#xff0c;i&#…

鸿蒙OS开发实例:【demo选择列表限定数量】

效果图&#xff1a; 示例代码 // 使用 DevEco Studio 3.1.1 Release 及以上版本&#xff0c;API 版本为 api 9 及以上。 // 主要功能及注意事项&#xff1a; // 该组件展示了一个乘客选择列表。列表中的每个项目包含一个复选框和对应的乘客姓名&#xff0c; // 用户点击任意一…

Redis如何应对缓存穿透问题——Java全栈知识(9)

我们在正常使用缓存的时候的流程大概就是这样的&#xff1a; 请求访问缓存&#xff0c;缓存有数据就返回&#xff0c;缓存无数据就去数据库里面查数据写入到缓存中。 1、缓存穿透问题 但是如果由恶意请求&#xff0c;短时间内大量的访问不存在的数据&#xff0c;这时每个请求…