凡是机械、电子、计算机这一块,搞科研的小伙伴应该都知道,一个好的算法往往是科研论文的主要创新点。每年都会有许多层出不穷的算法,算法的相互融合和吸收各自的优点已不再是新鲜事!那么今天我就向大家推荐一种算法思路,目前还没有研究人员想到,哪怕用不到,也非常值得你收藏借鉴!
具体细节请看正文部分:
该算法来源于此篇博客(请点击此处:「智能算法研学社(Jack旭)」的原创文章),具体如下:
黑寡妇蜘蛛种群初始化与其他智能优化算法一致,在边界范围内随机初始化种群。
黑寡妇蜘蛛在网格内按照线性和螺旋的方式进行运动,位置更新可见公(1)。
信息素在蜘蛛的求偶过程中起着非常重要的作用。蜘蛛的饮食和影响蛛丝质量和数量的信息素信号的变化之间的联系被显示出来。 换句话说,吃得好的雌性蜘蛛比饥饿的雌性蜘蛛产的丝更多。雄性蜘蛛对营养充足的雌性蜘蛛分泌的性信息素更敏感,因为它们能提供更高的生育能力,但主要是为了避免与可能饥饿的雌性同类进行冒险交配的代价。 雄性黑寡妇蜘蛛宁愿避免同类相食,也不愿寻找生育能力更强的雌性蜘蛛。 仅性信息素就能洞察雌性的近期进食史,可能会降低雄性在田间表达选择的成本。 因此,雄性蜘蛛不喜欢信息素含量低的雌性蜘蛛。
黑寡妇蜘蛛的信息素率值可按公式(2)计算:
步骤1:初始化种群评估适应度函数值。
步骤2:随机生成参数m和β。
步骤3:生成随机数rand并更新黑寡妇位置由式(1)。
步骤4:计算信息素根据式(2).
步骤5:根据式(3)更新低信息数水平的黑寡妇位置。
步骤6:重新评估适应度函数值,并更新最优黑寡妇的位置及最优解。
步骤7:判断是否满足最大迭代次数,若满足,则输出最优黑寡妇位置和全局最优解,否则,返回步骤2重新迭代计算。
[1] Adrián F. Pea-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.
该算法来源于此篇博客([请点击此处:「智能算法研学社(Jack旭)」的原创文章])
灰狼属于犬科动物,被认为是顶级的掠食者,它们处于生物圈食物链的顶端。灰狼大多喜欢群居,每个群体中平均有5-12只狼。特别令人感兴趣的是,它们具有非常严格的社会等级层次制度,如图1所示。金字塔第一层为种群中的领导者,称为 α 。在狼群中 α 是具有管理能力的个体,主要负责关于狩猎、睡觉的时间和地方、食物分配等群体中各项决策的事务。金字塔第二层是 α 的智囊团队,称为 β 。 β 主要负责协助α 进行决策。当整个狼群的 α 出现空缺时,β 将接替 α 的位置。 β 在狼群中的支配权仅次于 α,它将 α 的命令下达给其他成员,并将其他成员的执行情况反馈给 α 起着桥梁的作用。金字塔第三层是 δ ,δ 听从 α 和 β 的决策命令,主要负责侦查、放哨、看护等事务。适应度不好的 α 和 β 也会降为 δ 。金字塔最底层是 ω ,主要负责种群内部关系的平衡。
下图是灰狼的社会等级制度
此外,集体狩猎是灰狼的另一个迷人的社会行为。灰狼的社会等级在群体狩猎过程中发挥着重要的作用,捕食的过程在 α 的带领下完成。灰狼的狩猎包括以下 3个主要部分:
1)跟踪、追逐和接近猎物;
2)追捕、包围和骚扰猎物,直到它停止移动;
3)攻击猎物
灰狼能够识别猎物的位置并包围它们。当灰狼识别出猎物的位置后,β 和 δ 在 α 的带领下指导狼群包围猎物。在优化问题的决策空间中,我们对最佳解决方案(猎物的位置)并不了解。因此,为了模拟灰狼的狩猎行为,我们假设 α ,β 和 δ 更了解猎物的潜在位置。我们保存迄今为止取得的3个最优解决方案,并利用这三者的位置来判断猎物所在的位置,同时强迫其他灰狼个体(包括 ω )依据最优灰狼个体的位置来更新其位置,逐渐逼近猎物。狼群内个体跟踪猎物位置的机制如下图所示。
该算法来源于此篇博客(请点击此处:CSDN博主「jiehaoxiang」的原创文章])
蜂群算法简介
蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简单的个体所组成的群体却表现出极其复杂的行为。真实的蜜蜂种群能够在任何环境下,以极高的效率从食物源(花朵)中采集花蜜;同时,它们能适应环境的改变。
蜂群产生群体智慧的最小搜索模型包含基本的三个组成要素:食物源、被雇佣的蜜蜂和未被雇佣的蜜蜂。两种最基本的行为模型:为食物源招募蜜蜂食物源招募蜜蜂和放弃某个食物源。
(1) 食物源
食物源的价值由多方面因素决定,如:离蜂巢的远近、包含花蜜的丰富程度和获得花蜜的难易程度。使用单一的参数,食物源的“收益率”来代表以上各个因素。
(2) 被雇佣的蜜蜂
也称引领蜂,其与所采集的食物源一一对应。引领蜂储存有食物源的相关信息(相对与蜂巢的距离、方向和食物源的丰富程度等)并把这些信息以一定的概率与其他蜜蜂分享。
(3) 未被雇佣的蜜蜂
其主要任务是寻找和开采食物源。有两种未被雇佣的蜜蜂:侦查蜂和跟随蜂。侦查蜂搜索附近的新食物源;跟随蜂等在蜂巢里面并通过与引领蜂分享相关信息找到食物源。一般情况下,侦查蜂的数量是蜂群的5%–20%
在群体智慧形成过程中,蜜蜂间交换信息是最重要的一环。舞蹈区是蜂巢中最为重要的信息交换地。蜜蜂的舞蹈也叫摇摆舞。食物源的信息在舞蹈区通过摇摆舞的形式与其他蜜蜂共享,引领蜂通过摇摆舞的持续时间等来表现食物源的收益率,故跟随蜂可以观察到大量的舞蹈并依据收益率来选择到哪个食物源采蜜。收益率与食物源被选择的可能性成正比。因而,蜜蜂被招募到一个食物源的概率与食物源的收益率成正比。
初始时刻,蜜蜂以侦查蜂的方式搜索。其搜索可以由系统的先验知识决定,也可以完全随机。经过一轮侦查后,若蜜蜂找到食物源,蜜蜂利用它本身的存储能力记录位置信息并开始采蜜。此时,蜜蜂将称为“被雇佣者”。
蜜蜂在食物源采蜜后回到蜂巢卸下蜂蜜,然后将有如下选择:
对于非雇佣蜂有如下选择:
在基本ABC算法中,人工蜂群包含三种个体:雇佣蜂、观察蜂和侦查蜂
每个雇佣蜂对应一个确定的蜜源(解向量),并在迭代中对蜜源的领域进行搜索。
根据蜜源的丰富程度(适应值的大小)采用轮盘赌的方式雇佣观察蜂采蜜(搜索新蜜源)
如果蜜源多次更新没有改进,则放弃该蜜源,雇佣蜂转为侦查蜂随机搜索新蜜源。
(1) 蜜源初始化
初始化时,随机生成SN个可行解(等于雇佣蜂的数量)并计算适应度函数值。随机产生可行解的公式如下:
(2) 新蜜源的更新搜索公式
(3) 观察蜂选择雇佣蜂的概率
(4) 侦查蜂的产生
为了防止算法陷入局部最优,当蜜源迭代limit次没有改进时,便放弃该蜜源,并且将该蜜源记录在禁忌表中,同时该蜜源对应的雇佣蜂转变为侦查蜂按式(1)随机产生一个新的位置代替原蜜源。
基本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
(1) 新蜜源的搜索领域(2)式的改进(如:其他拓扑邻域)
(2) 观察蜂选择雇佣蜂的概率(3)式的改进(如:动态的)
所谓混合式指的就是将三种算法各自的优点结合起来,每种算法各提取一些寻优步骤,但是这种方式的难度最大,不易实现。
所谓并行式指的就是同时进行三种算法的搜索,如果是求极大值问题,最后就找出这三种算法中求出的最大的值所对应的解。
所谓串行式指的就是,先执行某种算法、后执行另外一种算法,最后再执行某种算法、这种算法要求必须给出谁先谁后(要有理可循),比方说全局最优解和局部最优解,懂的都懂。
以上三种方法归结起来都可以称之为蛛母狼马蜂算法,该算法和珠穆朗玛峰有谐音的关系,这样命名是寓意该算法有朝一日成为世界第一算法,你会是那个成功登顶的人吗?期待!!!
最后,如果本文内容对你有所帮助或者启发的话,希望能点赞收藏支持一下,非常感谢,你的鼓励是对我最大的支持!