草庐IT

2022年最新优化算法---蛛母狼马蜂算法(论文创新点)

枫恋蝶 2023-04-22 原文

前言

凡是机械、电子、计算机这一块,搞科研的小伙伴应该都知道,一个好的算法往往是科研论文的主要创新点。每年都会有许多层出不穷的算法,算法的相互融合和吸收各自的优点已不再是新鲜事!那么今天我就向大家推荐一种算法思路,目前还没有研究人员想到,哪怕用不到,也非常值得你收藏借鉴
具体细节请看正文部分

文章目录

1、智能优化算法:黑寡妇算法(蛛)

该算法来源于此篇博客➡(请点击此处:「智能算法研学社(Jack旭)」的原创文章),具体如下:

1.1算法原理

1.1.1 初始化种群

黑寡妇蜘蛛种群初始化与其他智能优化算法一致,在边界范围内随机初始化种群。

1.1.2 蜘蛛运动

黑寡妇蜘蛛在网格内按照线性和螺旋的方式进行运动,位置更新可见公(1)。

1.1.3 信息素

信息素在蜘蛛的求偶过程中起着非常重要的作用。蜘蛛的饮食和影响蛛丝质量和数量的信息素信号的变化之间的联系被显示出来。 换句话说,吃得好的雌性蜘蛛比饥饿的雌性蜘蛛产的丝更多。雄性蜘蛛对营养充足的雌性蜘蛛分泌的性信息素更敏感,因为它们能提供更高的生育能力,但主要是为了避免与可能饥饿的雌性同类进行冒险交配的代价。 雄性黑寡妇蜘蛛宁愿避免同类相食,也不愿寻找生育能力更强的雌性蜘蛛。 仅性信息素就能洞察雌性的近期进食史,可能会降低雄性在田间表达选择的成本。 因此,雄性蜘蛛不喜欢信息素含量低的雌性蜘蛛。
黑寡妇蜘蛛的信息素率值可按公式(2)计算:

1.2 算法流程

步骤1:初始化种群评估适应度函数值。

步骤2:随机生成参数m和β。

步骤3:生成随机数rand并更新黑寡妇位置由式(1)。

步骤4:计算信息素根据式(2).

步骤5:根据式(3)更新低信息数水平的黑寡妇位置。

步骤6:重新评估适应度函数值,并更新最优黑寡妇的位置及最优解。

步骤7:判断是否满足最大迭代次数,若满足,则输出最优黑寡妇位置和全局最优解,否则,返回步骤2重新迭代计算。

1.3 参考文献

[1] Adrián F. Peña-Delgado et al. A Novel Bio-Inspired Algorithm Applied to Selective Harmonic Elimination in a Three-Phase Eleven-Level Inverter[J]. Mathematical Problems in Engineering, Vol. 2020, Article ID 8856040, 10 pages.


2、智能优化算法:灰狼优化算法(母狼)

该算法来源于此篇博客➡([请点击此处:「智能算法研学社(Jack旭)」的原创文章]

2.1 算法原理

灰狼属于犬科动物,被认为是顶级的掠食者,它们处于生物圈食物链的顶端。灰狼大多喜欢群居,每个群体中平均有5-12只狼。特别令人感兴趣的是,它们具有非常严格的社会等级层次制度,如图1所示。金字塔第一层为种群中的领导者,称为 α 。在狼群中 α 是具有管理能力的个体,主要负责关于狩猎、睡觉的时间和地方、食物分配等群体中各项决策的事务。金字塔第二层是 α 的智囊团队,称为 β 。 β 主要负责协助α 进行决策。当整个狼群的 α 出现空缺时,β 将接替 α 的位置。 β 在狼群中的支配权仅次于 α,它将 α 的命令下达给其他成员,并将其他成员的执行情况反馈给 α 起着桥梁的作用。金字塔第三层是 δ ,δ 听从 α 和 β 的决策命令,主要负责侦查、放哨、看护等事务。适应度不好的 α 和 β 也会降为 δ 。金字塔最底层是 ω ,主要负责种群内部关系的平衡。
下图是灰狼的社会等级制度

此外,集体狩猎是灰狼的另一个迷人的社会行为。灰狼的社会等级在群体狩猎过程中发挥着重要的作用,捕食的过程在 α 的带领下完成。灰狼的狩猎包括以下 3个主要部分:
1)跟踪、追逐和接近猎物;
2)追捕、包围和骚扰猎物,直到它停止移动;
3)攻击猎物

2.1.1 包围猎物

在狩猎过程中,将灰狼围捕猎物的行为定义如下:

2.1.2 狩猎

灰狼能够识别猎物的位置并包围它们。当灰狼识别出猎物的位置后,β 和 δ 在 α 的带领下指导狼群包围猎物。在优化问题的决策空间中,我们对最佳解决方案(猎物的位置)并不了解。因此,为了模拟灰狼的狩猎行为,我们假设 α ,β 和 δ 更了解猎物的潜在位置。我们保存迄今为止取得的3个最优解决方案,并利用这三者的位置来判断猎物所在的位置,同时强迫其他灰狼个体(包括 ω )依据最优灰狼个体的位置来更新其位置,逐渐逼近猎物。狼群内个体跟踪猎物位置的机制如下图所示。


2.1.3 攻击猎物(开发)

2.1.4 搜索猎物(勘探)

2.2算法流程图

3、智能优化算法:人工蜂群算法(马蜂)

该算法来源于此篇博客➡(请点击此处:CSDN博主「jiehaoxiang」的原创文章]

蜂群算法简介

  • 人工蜂群算法是模仿蜜蜂行为所提出的一种优化方法,是集群体智能思想的一个具体应用。
  • 主要特点是不需要了解问题的特殊信息而只需要对问题进行优劣比较,通过每个人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着比较快的收敛速度。
  • 为了解决多变量函数优化问题,Karaboga在2005年提出了人工蜂群算法ABC模型。

3.1 蜜蜂采蜜机理

蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简单的个体所组成的群体却表现出极其复杂的行为。真实的蜜蜂种群能够在任何环境下,以极高的效率从食物源(花朵)中采集花蜜;同时,它们能适应环境的改变。
蜂群产生群体智慧的最小搜索模型包含基本的三个组成要素:食物源被雇佣的蜜蜂未被雇佣的蜜蜂。两种最基本的行为模型:为食物源招募蜜蜂食物源招募蜜蜂和放弃某个食物源

(1) 食物源
食物源的价值由多方面因素决定,如:离蜂巢的远近、包含花蜜的丰富程度和获得花蜜的难易程度。使用单一的参数,食物源的“收益率”来代表以上各个因素。

(2) 被雇佣的蜜蜂
也称引领蜂,其与所采集的食物源一一对应。引领蜂储存有食物源的相关信息(相对与蜂巢的距离、方向和食物源的丰富程度等)并把这些信息以一定的概率与其他蜜蜂分享。

(3) 未被雇佣的蜜蜂
其主要任务是寻找和开采食物源。有两种未被雇佣的蜜蜂:侦查蜂和跟随蜂。侦查蜂搜索附近的新食物源;跟随蜂等在蜂巢里面并通过与引领蜂分享相关信息找到食物源。一般情况下,侦查蜂的数量是蜂群的5%–20%

在群体智慧形成过程中,蜜蜂间交换信息是最重要的一环。舞蹈区是蜂巢中最为重要的信息交换地。蜜蜂的舞蹈也叫摇摆舞。食物源的信息在舞蹈区通过摇摆舞的形式与其他蜜蜂共享,引领蜂通过摇摆舞的持续时间等来表现食物源的收益率,故跟随蜂可以观察到大量的舞蹈并依据收益率来选择到哪个食物源采蜜。收益率与食物源被选择的可能性成正比。因而,蜜蜂被招募到一个食物源的概率与食物源的收益率成正比。

初始时刻,蜜蜂以侦查蜂的方式搜索。其搜索可以由系统的先验知识决定,也可以完全随机。经过一轮侦查后,若蜜蜂找到食物源,蜜蜂利用它本身的存储能力记录位置信息并开始采蜜。此时,蜜蜂将称为“被雇佣者”。
蜜蜂在食物源采蜜后回到蜂巢卸下蜂蜜,然后将有如下选择:

  1. 放弃食物源而成为非雇佣蜂;
  2. 跳摇摆舞为所对应的食物源招募更多的蜜蜂,然后回到食物源采蜜;
  3. 继续在食物源采蜜而不进行招募。

对于非雇佣蜂有如下选择:

  1. 转变为侦查蜂并搜索蜂巢附近的食物源,其搜索可以由先验知识决定也可以完全随机;
  2. 在观察完摇摆舞以后,被雇佣成为跟随蜂,开始搜索对应食物源领域并采蜜。

3.2 ABC算法原理

在基本ABC算法中,人工蜂群包含三种个体:雇佣蜂、观察蜂和侦查蜂

每个雇佣蜂对应一个确定的蜜源(解向量),并在迭代中对蜜源的领域进行搜索。

根据蜜源的丰富程度(适应值的大小)采用轮盘赌的方式雇佣观察蜂采蜜(搜索新蜜源)

如果蜜源多次更新没有改进,则放弃该蜜源,雇佣蜂转为侦查蜂随机搜索新蜜源。

(1) 蜜源初始化
初始化时,随机生成SN个可行解(等于雇佣蜂的数量)并计算适应度函数值。随机产生可行解的公式如下:
(2) 新蜜源的更新搜索公式

(3) 观察蜂选择雇佣蜂的概率


(4) 侦查蜂的产生
为了防止算法陷入局部最优,当蜜源迭代limit次没有改进时,便放弃该蜜源,并且将该蜜源记录在禁忌表中,同时该蜜源对应的雇佣蜂转变为侦查蜂按式(1)随机产生一个新的位置代替原蜜源。

3.3 控制参数

  1. 蜜源的个数(与雇佣蜂或观察蜂相等)SN
  2. 算法终止的最大进化数(maximum evaluation number)MEN

基本ABC算法的流程:

(1) 根据式(1)初始化种群解xi,i=1,2,…,SN;

(2) 计算种群中各蜜蜂的适应值

(3) cycle=1

(4) repeat

(5) 雇佣蜂根据(2)产生新的解vi并计算适应值

(6) 雇佣蜂根据贪心策略选择蜜源

(7) 根据(3)式计算选择蜜源xi的概率pi

(8) 观察蜂根据概率pi选择蜜源xi,根据(2)式在该蜜源附近产生新的蜜源vi,并计算新蜜源vi的适应值

(9) 观察蜂根据贪心算法选择蜜源

(10) 决定是否存在需要放弃的蜜源,如果存在,根据(1)式随机产生一个蜜源代替它

(11) 记录最优解

(12) cycle = cycle + 1

(13) until cycle=MCN

3.4 算法可能的改进方式

(1) 新蜜源的搜索领域(2)式的改进(如:其他拓扑邻域)

(2) 观察蜂选择雇佣蜂的概率(3)式的改进(如:动态的)

重点:创新点融合

方法1(混合式)

所谓混合式指的就是将三种算法各自的优点结合起来,每种算法各提取一些寻优步骤,但是这种方式的难度最大,不易实现。

方法2(并行式)

所谓并行式指的就是同时进行三种算法的搜索,如果是求极大值问题,最后就找出这三种算法中求出的最大的值所对应的解。

方法3(串行式)

所谓串行式指的就是,先执行某种算法、后执行另外一种算法,最后再执行某种算法、这种算法要求必须给出谁先谁后(要有理可循),比方说全局最优解和局部最优解,懂的都懂。

总结

以上三种方法归结起来都可以称之为蛛母狼马蜂算法,该算法和珠穆朗玛峰有谐音的关系,这样命名是寓意该算法有朝一日成为世界第一算法,你会是那个成功登顶的人吗?期待!!!


最后,如果本文内容对你有所帮助或者启发的话,希望能点赞收藏支持一下,非常感谢,你的鼓励是对我最大的支持!

有关2022年最新优化算法---蛛母狼马蜂算法(论文创新点)的更多相关文章

  1. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  2. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  3. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  4. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  5. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  6. ruby - 在 Ruby 中实现 Luhn 算法 - 2

    我一直在尝试用Ruby实现Luhn算法。我一直在执行以下步骤:该公式根据其包含的校验位验证数字,该校验位通常附加到部分帐号以生成完整帐号。此帐号必须通过以下测试:从最右边的校验位开始向左移动,每第二个数字的值加倍。将乘积的数字(例如,10=1+0=1、14=1+4=5)与原始数字的未加倍数字相加。如果总模10等于0(如果总和以零结尾),则根据Luhn公式该数字有效;否则无效。http://en.wikipedia.org/wiki/Luhn_algorithm这是我想出的:defvalidCreditCard(cardNumber)sum=0nums=cardNumber.to_s.s

  7. Ruby 斐波那契算法 - 2

    下面是我写的一个计算斐波那契数列中的值的方法:deffib(n)ifn==0return0endifn==1return1endifn>=2returnfib(n-1)+(fib(n-2))endend它工作到n=14,但在那之后我收到一条消息说程序响应时间太长(我正在使用repl.it)。有人知道为什么会这样吗? 最佳答案 Naivefibonacci进行了大量的重复计算-在fib(14)fib(4)中计算了很多次。您可以将内存添加到您的算法中以使其更快:deffib(n,memo={})ifn==0||n==1returnnen

  8. Ruby 缺少常量表达式优化? - 2

    我希望Ruby的解析器会进行这种微不足道的优化,但似乎并没有(谈到YARV实现,Ruby1.9.x、2.0.0):require'benchmark'deffib1a,b=0,1whileb由于这两种方法除了在第二种方法中使用预定义常量而不是常量表达式外是相同的,因此Ruby解释器似乎在每个循环中一次又一次地计算幂常数。是否有一些Material说明为什么Ruby根本不进行这种基本优化或只在某些特定情况下进行? 最佳答案 很抱歉给出了另一个答案,但我不想删除或编辑我之前的答案,因为它下面有有趣的讨论。正如JörgWMittag所说,

  9. ruby-on-rails - Rails add_index 算法 : :concurrently still causes database lock up during migration - 2

    为了防止在迁移到生产站点期间出现数据库事务错误,我们遵循了https://github.com/LendingHome/zero_downtime_migrations中列出的建议。(具体由https://robots.thoughtbot.com/how-to-create-postgres-indexes-concurrently-in概述),但在特别大的表上创建索引期间,即使是索引创建的“并发”方法也会锁定表并导致该表上的任何ActiveRecord创建或更新导致各自的事务失败有PG::InFailedSqlTransaction异常。下面是我们运行Rails4.2(使用Acti

  10. ruby-on-rails - 优化读取数据库和写入csv文件 - 2

    我正在尝试从数据库中读取大量单元格(超过100.000个)并将它们写入VPSUbuntu服务器上的csv文件。碰巧服务器没有足够的内存。我正在考虑一次读取5000行并将它们写入文件,然后再读取5000行,等等。我应该如何重构我当前的代码以使内存不会被完全消耗?这是我的代码:defwrite_rows(emails)File.open(file_path,"w+")do|f|f该函数由sidekiqworker调用:write_rows(user.emails)感谢您的帮助! 最佳答案 这里的问题是,当您调用emails.each时,

随机推荐