【智能算法】鸭群算法(DSA)原理及实现

在这里插入图片描述

目录

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


1.背景

2021年,Zhang等人受到自然界鸭群觅食行为启发,提出了鸭群算法(Duck Swarm Algorithm, DSA)。

2.算法原理

2.1算法思想

DSA基于自然界鸭群觅食过程,主要分为两个阶段:寻找食物(探索阶段)和群体觅食(开发阶段)。DSA需要遵循两条规则

  • 寻找食物时,搜索能力强的鸭子会靠近食物来源的中心,这样会吸引其他个体靠近,更新后的位置也会受到附近个体的影响 (领导者-跟随者类型)
  • 觅食时,所有个体都接近食物,下一个位置受到邻近个体和食物位置或领导鸭的影响

在这里插入图片描述

2.2算法过程

寻找食物

鸭群逐渐分散并开始寻找食物:
X i t + 1 = { X i t + μ ⋅ X i t ⋅ s i g n ( r − 0.5 ) , P > r a n d X i t + C F 1 ⋅ ( X l e a d e r t − X i t ) + C F 2 ⋅ ( X j t − X i t ) , P < r a n d (1) \boldsymbol{X}_i^{t+1}=\begin{cases}\boldsymbol{X}_i^t+\mu\cdot\boldsymbol{X}_i^t\cdot sign(r-0.5),P>rand\\\boldsymbol{X}_i^t+CF_1\cdot(\boldsymbol{X}_{leader}^t-\boldsymbol{X}_i^t)+CF_2\cdot(\boldsymbol{X}_j^t-\boldsymbol{X}_i^t),P<rand\end{cases}\tag{1} Xit+1={Xit+μXitsign(r0.5),P>randXit+CF1(XleadertXit)+CF2(XjtXit),P<rand(1)
在这里插入图片描述

其中,sign函数表示对寻找食物的方向。整体来看(1)式可以看作个体周围扰动(P>rand),领域个体和最优个体引导(P<rand),平衡因子为:
μ = K ⋅ ( 1 − t / t max ⁡ ) K = sin ⁡ ( 2 ⋅ r a n d ) + 1 (2) \mu=K\cdot(1-t / t_{\max} )\\K=\sin(2\cdot rand )+1\tag{2} μ=K(1t/tmax)K=sin(2rand)+1(2)
在这里插入图片描述

平衡因子通过参数K控制,整体呈线性递减。PS:这里可以改进为非线性因子

群体觅食

鸭群寻找食物后,即有足够的食物可以满足鸭群的觅食:
X i t + 1 = { X i t + μ ⋅ ( X l e a d e r t − X i t ) , f ( X i t ) > f ( X i t + 1 ) X i t + K F 1 ⋅ ( X l e a d e r t − X i t ) + K F 2 ⋅ ( X k t − X j t ) , e l s e (3) \boldsymbol{X}_i^{t+1}=\begin{cases}\boldsymbol{X}_i^t+\mu\cdot(\boldsymbol{X}_{leader}^t-\boldsymbol{X}_i^t),f(X_i^t)>f(X_i^{t+1})\\\boldsymbol{X}_i^t+KF_1\cdot(\boldsymbol{X}_{leader}^t-\boldsymbol{X}_i^t)+KF_2\cdot(\boldsymbol{X}_k^t-\boldsymbol{X}_j^t),else\end{cases}\tag{3} Xit+1={Xit+μ(XleadertXit),f(Xit)>f(Xit+1)Xit+KF1(XleadertXit)+KF2(XktXjt),else(3)
参数可以表述为:
C F i o r K F i ← 1 F P ⋅ r a n d ( 0 , 1 ) ( i = 1 , 2 ) (4) CF_i\mathrm{~or~}KF_i\leftarrow\frac1{FP}\cdot rand(0,1)(i=1,2)\tag{4} CFi or KFiFP1rand(0,1)(i=1,2)(4)
其中,FP为常数0.618。
在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试DSA性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2005-F7
在这里插入图片描述

Frieddamn检验

在这里插入图片描述

探索与开发

在这里插入图片描述

种群空间搜索图

在这里插入图片描述

4.参考文献

[1] Zhang M, Wen G, Yang J. Duck swarm algorithm: A novel swarm intelligence algorithm. arXiv 2021[J]. arXiv preprint arXiv:2112.13508.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Adobe AE(After Effects)2019下载地址及安装教程

Adobe After Effects是一款专业级别的视觉效果和动态图形处理软件&#xff0c;由Adobe Systems开发。它被广泛用于电影、电视节目、广告和其他多媒体项目的制作。 After Effects提供了强大的合成和特效功能&#xff0c;可以让用户创建出令人惊艳的动态图形和视觉效果。用户可以…

【机器学习300问】71、神经网络中前向传播和反向传播是什么?

我之前写了一篇有关计算图如何帮助人们理解反向传播的文章&#xff0c;那为什么我还要写这篇文章呢&#xff1f;是因为我又学习了一个新的方法来可视化前向传播和反向传播&#xff0c;我想把两种方法总结在一起&#xff0c;方便我自己后续的复习。对了顺便附上往期文章的链接方…

从汇编代码理解数组越界访问漏洞

数组越界访问漏洞是 C/C 语言中常见的缺陷&#xff0c;它发生在程序尝试访问数组元素时未正确验证索引是否在有效范围内。通常情况下&#xff0c;数组的索引从0开始&#xff0c;到数组长度减1结束。如果程序尝试访问小于0或大于等于数组长度的索引位置&#xff0c;就会导致数组…

停车资产数字化运营管理方案内容包括哪些?

随着新兴信息技术的蓬勃发展&#xff0c;如大数据、云服务、机器学习以及数字孪生等&#xff0c;停车行业正经历着前所未有的变革。这些技术的应用不仅推动了智慧停车领域的迅猛扩张&#xff0c;而且已成为全球各地数字化城市构建和城市治理现代化的关键驱动力。在数字化、平台…

代码随想录——双指针(一)

一.移动零 解法一&#xff1a;模拟 func moveZeroes(nums []int) {n:len(nums)l,r:0,1for r<n&&l<n{if nums[r]0{if nums[l]!0{lr}else{r}}else if nums[l]0{nums[l],nums[r]nums[r],nums[l]lr}else{lr}} }二.双指针 func moveZeroes(nums []int) {n:len(num…

Jackson 2.x 系列【28】Spring Boot 集成之 Long 精度损失

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 问题场景2. 原因分析3. 解决方案4. 案例演示4.…

计算机考研408真的很难吗?

408难&#xff01;科软有人四战没上岸&#xff0c;就是408拖的后腿&#xff01; 这位同学数二144英二81&#xff0c;真的太可惜了&#xff01; 是因为择校的问题吗&#xff1f; 看了他的备战经历后&#xff0c;我们发现&#xff0c;还真不是择校问题&#xff01; 是典型的备…

Jmeter03:直连数据库

1 Jmete组件&#xff1a;直连数据库 1.1 是什么&#xff1f; 让Jmeter直接和数据库交互 1.2 为什么&#xff1f; 之前是通过接口操作数据库&#xff0c;可能出现的问题&#xff1a;比如查询可能有漏查误查的情况&#xff0c;解决方案是人工对不&#xff0c;效率低且有安全隐患…

【笔记】ASP.NET Core 2.2 Web API —— 学习笔记

当年刚接触 ASP.NET Core 2.2 时&#xff0c;留下的学习笔记。现在把它挪到 CSDN&#xff0c;也是对过去学习 ASP.NET Core 痕迹进行记录。 VS 2019 ASP.NET Core 2.2 sqlSugarCore (ORM) 1. 仓储模式 服务 抽象接口 1.1 新建asp.net core 2.2 WebApi项目 nmmking.Core.…

还有同学开题报告没写吗?

引言 作为一名在软件技术领域深耕多年的专业人士&#xff0c;我不仅在软件开发和项目部署方面积累了丰富的实践经验&#xff0c;更以卓越的技术实力获得了&#x1f3c5;30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定&#xff0c;也是对我的创新精神和专业承诺…

微信小程序全局配置

全局配置文件及常用的配置项 小程序根目录下的 app.json 文件是小程序的全局配置文件。常用的配置项如下&#xff1a; ① pages 记录当前小程序所有页面的存放路径 ② window 全局设置小程序窗口的外观 ③ tabBar 设置小程序底部的 tabBar 效果 ④ style 是否启用新版的组件样…

uniapp--登录和注册页面-- login

目录 1.效果展示 2.源代码展示 测试登录 login.js 测试请求 request.js 测试首页index.js 1.效果展示 2.源代码展示 <template><view><f-navbar title"登录" navbarType"4"></f-navbar><view class"tips"><…