精华内容
下载资源
问答
  • 鲸鱼优化算法

    2018-07-06 19:33:23
    新型群智能优化算法,鲸鱼优化算法。新型群智能优化算法,鲸鱼优化算法
  • 本文介绍该领域一种近年来的新兴起的优化算法鲸鱼优化算法。在介绍其生物机制的基础上,论述了其捕食、攻击过程的数学模型。最后给出了其与其它优化算法的仿真结果比较。1.背景介绍在流程工业自动化与信息化中,无论...

    a066dafbce0f2b8635598bb402488ad0.gif

    摘要:群体智能优化算法由于其易实现性及其高效性,已成为最优化方法的研究热点。本文介绍该领域一种近年来的新兴起的优化算法鲸鱼优化算法。在介绍其生物机制的基础上,论述了其捕食、攻击过程的数学模型。最后给出了其与其它优化算法的仿真结果比较。

    1. 背景介绍

    在流程工业自动化与信息化中,无论操作优化、最优控制,还是生产调度、供应链优化及资源规划等,其实现的理论依据都是最优化方法,因此最优化方法在工业生产起着非常重要的理论基石作用。最优化方法中的启发式优化算法因为它们依赖于相当简单的概念,易于实现,且不需要梯度资料,可以绕过局部最优,可用于涉及不同学科的广泛问题,因此在工程应用中越来越受欢迎。自然启发式优化算法通过模仿生物或物理现象来解决优化问题,又可以分为三大类:基于进化的方法、基于物理的方法和基于群体的方法,本文重点介绍的基于群体智能的优化方法是模仿动物群体社会行为的一种理论。目前该类优化方法包括粒子群算法(PSO)、人工蜂群算法(ABC)、蚁群算法(ACO)、布谷鸟算法(CS)、萤火虫算法等。这类优化算法无论其性质如何,都具有一个共同的特征,即搜索过程分为探索和开发两个阶段。在探索阶段,优化器必须包含操作符来全局探索可搜索空间,移动(即设计变量的扰动)应该尽可能随机化。后续展开的开发阶段,可以定义为对搜索空间中有希望的区域进行详细调查的过程。因此,开发是对在探索阶段发现的设计空间的有希望区域的局部搜索能力。由于优化过程的随机性,如何在探索和开发之间找到合适的平衡点是任何一种启发式算法开发中最具挑战性的任务。本文介绍一种新的模拟座头鲸狩猎行为的群体智能优化算法(鲸鱼优化算法,WOA),采用随机或最佳搜索代理来模拟捕猎行为,并使用螺旋来模拟座头鲸的泡泡网攻击机制。2.  鲸鱼优化算法2.1. 鲸鱼优化算法的生物机制

    7b8b3886dfe54457573f1bbcbe5e4e2b.png

    图1 座头鲸的泡泡捕食示意图

    据研究,鲸鱼大脑的某些区域有与人类相似的梭形细胞,而这些细胞负责人类的判断、情感和社会行为。鲸鱼的这种细胞数量是成年人类的两倍,这是它们聪明的主要原因。事实证明,鲸能像人类一样思考、学习、判断、交流,甚至变得情绪化,但显然它的智能水平要低得多。

    据观察,鲸鱼(主要是虎鲸)也能发展自己的方言。而座头鲸最有趣的地方是它们特殊的捕猎方法。这种觅食行为被称为泡泡网觅食法。座头鲸喜欢在接近海面的地方捕食磷虾或小鱼。据观察,这种觅食是通过沿着一个圆圈或“9”形路径创造独特的气泡来完成的,如图1所示。在2011年之前,这一行为仅仅是基于在地表的观察进行研究。后来利用传感器展开了更深入的研究,他们捕获了9头座头鲸的300个标签衍生的泡泡网进食事件。他们发现了两个与气泡有关的动作,并将它们命名为“向上螺旋”和“双环”。在前一种策略中,座头鲸会向下潜水12米,然后开始在猎物周围制造一个螺旋形的气泡,再游向水面。值得一提的是,泡泡网捕食是一种独特的行为,只能在座头鲸身上观察到。本文介绍如何利用螺旋泡沫网捕食机制进行数学建模,以达到优化的目的。

    2.2. 数学模型与优化算法

    1)对猎物的环绕座头鲸能够识别猎物的位置并将其包围。由于优化设计在搜索空间中的位置不是先验已知的,因此WOA算法假设当前的最佳候选解是目标猎物或接近最优解。在定义了最佳搜索个体之后,其他搜索个体将尝试向最佳搜索个体更新它们的位置。这一行为由以下方程表示:

    1f7ae558db0aec2ad452083e416cdbe1.png(1)

    e5bd98047fed1ac371c8bb0571b8d4de.png(2)

    其中t表示当前迭代,4fc012be9477e9dbcac95be9083ba224.pngbebcf6f1127bc7df8a9fb3051f3ad7aa.png是系数向量,X*是目前得到的最佳解的位置向量,69094caff6ece706e9e3051865db9e13.png为位置向量,| |为绝对值,•为逐元素乘法。这里值得一提的是,如果存在更好的解决方案,那么应该在每次迭代中更新X。

    向量b13822969c85280e8ce34e1ab77091f1.pnga553367adf595e1224fff2990554fd95.png计算方法如下:

    baa6ddce1ba57467de5750db479f06d0.png(3)

    7e63b83d4a8033cd275f7725e804d3cd.png(4)

    这里8f0b8703e7ab96bc9cdb0702314e9017.png在迭代过程中(勘探和开发阶段)从2到0是线性递减的,0377832e1f5347858fd530fc0559d973.png是[0,1]中的一个随机向量。

    b30e7753ca224c6abf452d83bd6fc15c.png

    图2  二维和三维位置向量及其可能的下一个位置 (其中X*是目前获得的最佳解决方案)图2(a)结合一个二维问题说明了公式(2)背后的原理。搜索个体的位置(X,Y)可以根据当前最佳记录的位置(X*,Y*)进行更新。围绕最佳个体的不同位置可以通过调整d81d26c9102dade5ed26cde2575ba1cc.png00297b6c78c13acace826cec49d87d93.png向量来得到。图2(b)还描述了搜索在三维空间中可能的更新位置。需要注意的是,通过定义随机向量,可以到达图2所示关键点之间的搜索空间中的任意位置。因此式2允许任何搜索个体更新其在当前最佳解附近的位置,并模拟包围猎物。同样的概念可以扩展到n维的搜索空间,搜索个体将在超立方体中移动,以获得迄今为止最好的解决方案。

    2)泡泡网攻击方法

    为了建立座头鲸泡泡网行为的数学模型,设计了下面两种方法:(1)  收缩包围机制:这种行为是通过减少式(3)中的34227722ed853b54e21a775db14de9a1.png来实现,a284554a0d6679d96db99b3f633b045a.png也因此变成(-a, a)之间的一个随机量,a在迭代过程中从2减到0。设置随机值b8df172f26ca6b550ae9461debb9e9fa.png在[- 1,1]中,搜索个体的新位置可以定义为介于原个体位置和当前最佳个体位置之间的任何位置。图3(a)显示了在二维空间中0≤a≤1可以实现从(X,Y)变到(X*,Y*)的可能位置。(2)   螺旋更新位置:如图3(b)所示,这种方法首先计算位于(X,Y)的鲸鱼和位于(X,Y,Y)的猎物之间的距离。然后在鲸鱼和猎物的位置之间建立一个螺旋方程,模拟座头鲸的螺旋形运动如式(5):d60886d1625baba403e0461b1cfbc4bd.png(5)这里dd03bebbde58dfc9360356200213eba4.png表示第i条鲸到猎物的距离(目前得到的最佳解),b为对数螺旋形状的常数,l为[- 1,1]中的随机数, 是一个元素对元素的乘法。

    e3b2854a7606f8ed603747caea871c8d.png

    图3 bubbly -net搜索机制在WOA中实现(X是目前获得的最佳解决方案)

    (a)收缩环绕机制    (b)螺旋更新位置座头鲸在一个逐步缩小的圆圈内绕着猎物游动,同时沿着螺旋形的路径游动。为了模拟这种同时发生的行为,我们假设有50%的概率可以在缩小的包围机制和螺旋模型之间做出选择,以更新鲸鱼的位置。模型如下:febf45837e11e423145afd42a76805cc.png(6)其中1715d2b522b47ad389c672e5c628d620.png是一个随机数。3)搜寻猎物(勘探阶段)座头鲸是根据彼此的位置随机搜索的。随机计算出的28bd69481e63bbb93ac4823097d59d40.png比-1小或比1大时,将强迫搜索个体远离参考鲸鱼。相对于开发阶段,我们根据随机选择的搜索个体来更新搜索代理在探索阶段的位置,而不是根据找到的最佳搜索个体,这一机制将使WOA可进行全局搜索。此时的数学模型为:7170a795ac377a0924e4c9882146f55b.png(7)45a4a85c9c3d45c4faeb245b8fc6e008.png(8)这里e897ad37625201b857fc90837291c154.png是随机一头鲸对应的随机位置,图4画出了aa88ea2d51154155b5bf201c7d94eb10.png时特殊解的一些可能位置。

    8e30b0e9a337007aaa5c5ee892df1968.png

    图4WOA算法中的勘探机制(X*是随机值)WOA算法从一组随机解开始。在每次迭代中,搜索个体根据随机选择的搜索个体或者获得的最佳解更新其位置,将a参数由2逐步减为为0,以支持勘探和开发。当14118169e55bea7421120c07dffcfd71.png时,将选择一个随机的搜索个体;4ec0af721d7ba39f45a12bad5c2d1bcd.png时,将选择最优解作为搜索个体。

    根据p的值,WOA可以在螺旋运动和圆形运动之间进行切换,当满足终止准则时终止WOA算法。

    3. 算法的比较效果说明

    原文中在29个标准测试函数上对该WOA算法进行了测试,结果揭示了所提出的WOA算法的不同特点。WOA具有较高的勘探能力,这是由于式(8)对鲸鱼进行位置更新的机制所致。这个等式要求鲸鱼在迭代的初始步骤中彼此随机移动。而在后续的迭代中,强调高的开发和收敛性,这源于式(6)。这个方程式可以让鲸鱼快速地调整自己的位置,或者沿着螺旋形的路径移动,以获得迄今为止所获得的最佳解。由于这两个阶段是分别完成的,并且几乎在每个迭代的一半中,WOA在迭代过程中同时显示出较高的局部最优避免和收敛速度。然而,PSO和GSA没有操作符来将特定的迭代用于勘探或开发。换句话说,PSO和GSA(以及任何其他类似算法)使用一个公式来更新搜索代理的位置,这增加了局部优化中停滞的可能性。仿真结果见表1和表2。

    表1  经典基准函数上的优化结果比较

    183c6692bc2a935f9aa34875c90a3817.png

    表2  综合函数上的优化结果比较

    0e4bb1899aa72c7689a17d7258fe03f5.png

    为了进一步验证该方法在应用中的性能,原文还对6个结构工程问题(即张力/压缩弹簧的设计、焊接梁的设计、压力容器的设计、15杆桁架的设计、25杆桁架的设计和52杆桁架的设计)和其他优化算法展开了应用比较,最终证实优于传统的优化技术。

    参考文献

    [1]Mirjalili S, Lewis A. The Whale Optimization Algorithm[J]. Advances inEngineering Software, 2016, Vol. 95, p51-67.

    [2]Kaur G , Arora S . Chaotic Whale Optimization Algorithm[J]. Journal ofComputational Design and Engineering, 2018,Vol. 5 (3), p275-284.

    [3]Mafarja M M , Mirjalili S . Hybrid Whale Optimization Algorithm with simulatedannealing for feature selection[J]. Neurocomputing, 2017, Vol. 260, p302-312.

    407766a927885416e3ed1924e9a943de.png

    展开全文
  • 智能算法:鲸鱼优化算法-附代码 文章目录智能算法:鲸鱼优化算法-附代码1.算法原理1.1包围猎物1.2 狩猎行为1.3 搜索猎物1.4 算法流程2. 算法结果:参考文献: 摘要:鲸鱼优化算法 (whale optimization algorithm,WOA...

    智能优化算法:鲸鱼优化算法-附代码


    摘要:鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提出的一种新的群体智能优化算法,其优点在于操作简单,调整的参数少以及跳出局部
    最优的能力强。

    1.算法原理

    鲸鱼优化算法(whale optimization algorithm,WOA)是模仿座头鲸的狩猎行为进而提出的一种新型启发式优化算法。在 WOA 算法中,每只座头鲸的位置代表一个可行解。在海洋活动中,座头鲸有
    着一种特殊的狩猎方法,这种觅食行为称为bubble-net 捕食策略 [27] ,其狩猎行为如图 1 所示。
    在这里插入图片描述

    图1.座头鲸狩猎行为

    1.1包围猎物

    座头鲸在狩猎时要包围猎物,为了描述这种行为,Mirjalili 提出了下面的数学模型:
    D=CX(t)X(t)X(t+1)=X(t)AD D=|CX^{*}(t)-X(t)|\\ X(t+1)=X^{*}(t)-AD
    式中:tt是当前迭代次数; AACC为表示系数,X(t)X^{*}(t)表示目前为止最好的鲸鱼位置向量,X(t)X(t)
    表示当前鲸鱼的位置向量,$A $和 CC 由下式可得到
    A=2ar1aC=2r2a=22tTmax A=2ar_{1}-a\\ C=2r_{2}\\ a=2-\frac {2t}{T_{max}}

    其中,r1r_{1}r2r_{2}是(0,1)中的随机数,a 的值从 2到 0 线性下降,tt 表示当前的迭代次数,TmaxT_{max} 为最大迭代次数。

    1.2 狩猎行为

    根据座头鲸的狩猎行为,它是以螺旋运动游向猎物,故狩猎行为的数学模型如下:
    X(t+1)=X(t)+Dpeblcos(2πl) X(t+1)=X^{*}(t)+D_{p}e^{bl}cos(2\pi l)
    其中,Dp=X(t)X(t)D_{p} =|X^{*} (t)−X(t)|表示鲸鱼和猎物之间的距离,X(t)X^{*}(t)表示目前为止最好的位置向量,bb 是一个常数,用来定义螺线的形状,ll 是(−1,1)中的随机数。值得注意的是,鲸鱼以螺旋形状游向猎物的同时还要收缩包围圈。因此,在这种同步行为模型中,假设有 PiP_{i} 的概率选择收缩包围机制和 1Pi1−P_{i}的概率选择螺旋模型来更新鲸鱼的位置,其数学模型如下:
    X(t+1)={X(t)AD,p<PiX(t)=X(t)+Dpeblcos(2πl) X(t+1)=\begin{cases} X^{*}(t)-AD, p<P_{i}\\ X(t)=X^{*}(t)+D_{p}e^{bl}cos(2\pi l) \end{cases}
    攻击猎物时,在数学模型上靠近猎物设定了减小 aa 的值,这样 AA 的波动范围也随$ a$ 下降。在迭代过程中当aa的值从2到0下降时,AA是在[a,a][−a,a]内的随机值,当 AA 的值在[−1,1]内时,鲸鱼的下一个位置可以是它现在的位置和猎物的位置之间的任意位置,算法设定当 A<1A<1 时,鲸鱼向猎物发起攻击。

    1.3 搜索猎物

    在搜索猎物时,其数学模型如下:
    D=CXrandXtX(t+1)=XrandAD D=|CX_{rand}-X{t}|\\ X(t+1)=X_{rand}-AD
    其中,XrandX_{rand} 是随机选择的鲸鱼位置向量,算法设定当 A1A≥1 时,随机选择一个搜索代理,根据随机选择的鲸鱼位置来更新其他鲸鱼的位置,迫使鲸鱼偏离猎物,借此找到一个更合适的猎物,这样可以加强算法的勘探能力使 WOA 算法能够进行全局
    搜索。

    1.4 算法流程

    (1)初始化参数:即鲸鱼种群规模大小 SNSN,最大迭代次数 TmaxT_{max}
    (2)算法初始化鲸鱼种群的位置;
    (3)计算每一头鲸鱼相应的适应度值,根据适应度值的大小排序,并选取 SNSN 个作为初始种群;
    (4)计算出 SNSN个个体适应度值的大小,找出适应度值最小的个体位置作为最优位置;
    (5)更新下一代的位置;
    (6)若达到终止条件,则输出最优个体,即算法找到的最优解;否则,返回步骤(4)。

    2. 算法结果:

    在这里插入图片描述

    Matalb代码地址:

    https://mianbaoduo.com/o/bread/Z5WYlJk=

    文献复现:混合策略改进鲸鱼优化算法(IWOA)
    [1]徐航,张达敏,王依柔,宋婷婷,樊英.混合策略改进鲸鱼优化算法[J].计算机工程与设计,2020,41(12):3397-3404.

    文献复现:基于高斯映射和小孔成像学习策略的鲸鱼优化算法(IWOA)
    [1]徐航,张达敏,王依柔,宋婷婷,王栎桥.基于高斯映射和小孔成像学习策略的鲸鱼优化算法[J].计算机应用研究,2020,37(11):3271-3275.

    文献复现:一种非线性权重的自适应鲸鱼优化算法(NWAWOA)
    [1]赵传武,黄宝柱,阎跃观,代文晨,张建.一种非线性权重的自适应鲸鱼优化算法[J].计算机技术与发展,2020,30(10):7-13.

    文献复现:一种基于精英反向和纵横交叉的鲸鱼优化算法(ECWOA)
    [1]刘琨,赵露露,王辉.一种基于精英反向和纵横交叉的鲸鱼优化算法[J].小型微型计算机系统,2020,41(10):2092-2097.

    Python代码地址:

    https://mianbaoduo.com/o/bread/aZuUl5Y=

    参考文献:

    [1]Seyedali Mirjalili,Andrew Lewis. The Whale Optimization Algorithm[J]. Advances in Engineering Software,2016,95.

    展开全文
  • 鲸鱼优化算法(WOA)是根据鲸鱼围捕猎物的行为而提出的算法。鲸鱼是一种群居的哺乳动物,在捕猎时它们也会相互合作对猎物进行驱赶和围捕。鲸鱼算法提出时间并不长,也是一个新兴的优化算法,研究应用案例不多。
  • 惯性权重的鲸鱼优化算法
  • WOA.rar 群智能算法之鲸鱼优化算法 压缩文件 有对应的pdf文件和图片 matlab源码。
  • 基于改进鲸鱼优化算法的WSN覆盖优化.pdf
  • 文章目录鲸鱼优化算法(Whale Optimization Algorithm,WOA)1.1 灵感1.2 数学建模和优化算法1.2.1 包围捕食(Encircling prey)1.2.2 气泡网攻击方式(Bubble-net attacking method)(利用阶段)1.2.3搜索猎物...

    在这里插入图片描述
    获取更多资讯,赶快关注上面的公众号吧!

    鲸鱼优化算法(Whale Optimization Algorithm,WOA)

      本文将介绍一种新的受自然启发的元启发式优化算法——鲸鱼优化算法(WOA),该算法模拟了座头鲸的社会行为,并引入了气泡网狩猎策略。点击“这里”,可以下载MATLAB源码。

    1.1 灵感

      鲸鱼被认为是世界上最大的哺乳动物。一头成年鲸可以长达 30 米,重 180 吨。这种巨型哺乳动物有 7 种不同的主要物种,如虎鲸,小须鲸,鳁鲸,座头鲸,露脊鲸,长须鲸和蓝鲸等。鲸通常被认为是食肉动物,它们从不睡觉,因为它们必须到海洋表面进行呼吸,但事实上,鲸鱼有一半的大脑都处于睡眠状态。

      鲸鱼在大脑的某些区域有与人类相似的细胞,这些细胞被称为纺锤形细胞(spindle cells)。这些细胞负责人类的判断、情感和社会行为。换句话说,纺锤形细胞使我们人类有别于其他生物。鲸鱼的这些细胞数量是成年人的两倍,这是它们具有高度智慧和更富情感的主要原因。已经证明,鲸鱼可以像人类一样思考、学习、判断、交流,甚至变得情绪化,但显然,这都只是在一个很低的智能水平上。据观察,鲸鱼(主要是虎鲸)也能发展自己的方言。

      另一个有趣的点是关于鲸鱼的社会行为,它们可独居也可群居,但我们观察到的大多数仍然是群居。它们中的一些物种(例如虎鲸)可以在整个生命周期中生活在一个家族中。最大的须鲸之一是座头鲸,一头成年座头鲸几乎和一辆校车一样大。它们最喜欢的猎物是磷虾和小鱼群。图1显示的就是这种哺乳动物。

    图1 座头鲸的气泡网进食行为

      关于座头鲸最有趣的事情是它们特殊的捕猎方法了。这种觅食行为被称为气泡网觅食法(bubble-net feeding method)。座头鲸喜欢在接近海面的地方捕食磷虾或小鱼。据观察,这种觅食是通过在圆形或类似数字“9”形路径上制造独特的气泡来完成的,如图 1 所示。在 2011 年之前,这一行为仅仅是基于海面观测的。然而,有研究者利用标签传感器研究了这种行为。他们捕获了9头座头鲸身上300个由标签得到的气泡网进食事件。他们发现了两种与气泡有关的策略,并将它们命名为上升螺旋(upward-spirals)双螺旋(doubleloops)。在前一种策略中,座头鲸会潜到水下 12 米左右,然后开始在猎物周围制造一个螺旋形的泡泡,并游向水面;后一种策略包括三个不同的阶段:珊瑚循环,用尾叶拍打水面以及捕获循环。这里不展开详细描述。

      但是气泡网捕食是只有座头鲸独有的一种特殊行为,而鲸鱼优化算法就是模拟了螺旋气泡网进食策略达到优化的目的。

    1.2 数学建模和优化算法

    1.2.1 包围捕食(Encircling prey)

      座头鲸可以识别猎物的位置并将其包围。由于最优设计在搜索空间中的位置不是先验已知的,WOA 算法假设当前的最佳候选解是目标猎物或接近最优解。在定义了最佳搜索代理之后,其他搜索代理将因此尝试向最佳搜索代理更新它们的位置。这种行为由下列方程表示:

    D=CX(t)X(t)(1)\vec{D}=\left|\vec{C} \vec{X}^{*}(t)-\vec{X}(t)\right|\tag{1}
    X(t+1)=X(t)AD(2)\vec{X}(t+1)=\vec{X}^{*}(t)-\vec{A} \cdot \vec{D}\tag{2}

    其中t为当前迭代,A\vec{A}C\vec{C} 为系数向量,XX^{*} 是当前最优解的位置向量,X\vec{X} 是当前解的位置向量,||表示绝对值操作,.表示元素相乘。每次迭代过程中有更优解出现时就需要更新 XX^{*}A\vec{A}C\vec{C} 计算如下:
    A=2ara(3)\vec{A}=2 \vec{a} \cdot \vec{r}-\vec{a}\tag{3}
    C=2r(4)\vec{C}=2 \cdot \vec{r}\tag{4}

    其中 a\vec{a} 在迭代过程中从2线性地下降至0(探索和利用阶段均如此)。r\vec{r} 为[0,1]之间的随机向量。

      图 2a 描述了等式(2)针对2D问题的基本原理,搜索代理的位置(X,Y)(X,Y)可以根据当前最优解的位置(X,Y)(X^{*},Y^{*})进行更新,通过调整向量 A\vec{A}C\vec{C} 的值,可以找到相对于当前位置下一时刻最优代理附近的不同地方。在 3D 空间中搜索代理可能的更新位置如图 2b。通过定义随机向量 r\vec{r},可以到达图 2 中所示关键点之间的搜索空间内任何位置,因此等式(2)允许任何搜索代理在当前最优解的邻域内更新其位置,从而模拟了鲸鱼的包围捕食。

      相似的概念也可以扩展到 n 维搜索空间。

      注意图2中的两幅图均是在a=1和C=1情况下的。

    a

    b
    图2 2D和3D位置向量及其可能的下一个位置

    1.2.2 气泡网攻击方式(Bubble-net attacking method)(利用阶段)

      共设计了两种方法来对座头鲸的气泡网行为进行建模:

    1. 收缩包围机制:通过降低式(3)中 a\vec{a} 的值实现。注意 A\vec{A} 的波动范围也通过 a\vec{a} 降低,换句话说,A\vec{A} 是一个区间[-a,a]内的随机值,a 随着迭代进行从 2 降为 0。设置 A\vec{A} 中的随机值在[-1,1]之间,搜索代理的新位置可以定义为代理原始位置与当前最优代理位置之间的任意位置。图 3a 显示了 2D 空间中当 0A10 \leq A \leq 1 时从 (X,Y)(X,Y) 靠近 (X,Y)(X^{*},Y^{*}) 所有可能的位置。这种机制本质上就是包围捕食
    2. 螺旋更新位置。如图 3b,该方法首先计算鲸鱼位置 (X,Y)(X,Y) 与猎物位置 (X,Y)(X^{*},Y^{*}) 之间的距离,然后在鲸鱼与猎物位置之间创建一个螺旋等式,来模仿座头鲸的螺旋状移动:
      X(t+1)=Deblcos(2πl)+X(t)(5)\vec{X}(t+1)=\overrightarrow{D^{\prime}} \cdot e^{b l} \cdot \cos (2 \pi l)+\overrightarrow{X^{*}}(t)\tag{5}
      其中 D=X(t)X(t)\overrightarrow{D^{\prime}}=|\overrightarrow{X^{*}}(t)-\vec{X}(t)|,表示第i头鲸鱼与猎物(当前最优解)之间的距离,b为常数,定义了对数螺线的形状,l是[-1,1]之间的随机数,符号“.”表示元素相乘。
    (a)收缩包围机制

    (b)螺旋更新位置
    图3 WOA中实现的气泡网搜索机制

      值得注意的是,座头鲸在一个不断缩小的圆圈内绕着猎物游动,同时沿着螺旋形路径游动。为了对这种同时发生的行为进行建模,假设有 50%的可能性在收缩包围机制和螺旋模型之间进行选择,以便在优化过程中更新鲸鱼的位置,数学模型如下:
    X(t+1)={X(t)AD if p<0.5Deblcos(2πl)+X(t) if p0.5(6)\vec{X}(t+1)=\left\{\begin{array}{ll} \vec{X}^{*}(t)-\vec{A} \cdot \vec{D} & \text { if } p<0.5 \\ \overrightarrow{D^{\prime}} \cdot e^{b l} \cdot \cos (2 \pi l)+\overrightarrow{X^{*}}(t) & \text { if } p \geq 0.5 \end{array}\right.\tag{6}

    其中 pp 为[0,1]之间的随机数。

    1.2.3搜索猎物(Search for prey)(exploration phase)

      除了泡泡网方法,座头鲸还会随机寻找猎物,同样基于可变 A\vec{A} 向量,事实上,座头鲸会根据彼此的位置进行随机搜索,因此使用随机值大于1或小于-1的 A\vec{A} 来迫使搜索代理远离参考鲸鱼。与利用阶段相反,这里将根据随机选择的搜索代理来更新搜索代理在探索阶段的位置,而不是根据目前为止最优的搜索代理。该机制和 A>1|\vec{A}|>1 强调了探索,并允许WOA算法执行全局搜索。数学模型如下:
    D=CXrandX(7)\vec{D}=|\vec{C} \cdot {\overrightarrow X_{r a n d}}-\vec{X}|\tag{7}
    X(t+1)=Xrand AD(8)\vec{X}(t+1)={\overrightarrow X_{\text {rand }}}-\vec{A} \cdot \vec{D}\tag{8}

    其中 Xrand\overrightarrow X_{r a n d} 为从当前种群中选择的随机位置向量(表示一头随机鲸鱼)。

      特定解附近满足 A>1\vec{A}>1 的一些可能解如图 4 所示。

    图4 WOA中的探索机制(X*是一个随机选择的搜索代理)

      WOA算法首先随机初始化一组解,在每次迭代中,搜索代理根据随机选择的搜索代理或到目前为止获得的最优解更新它们的位置。将 aa 参数由 2 随迭代次数降为 0,从而由探索逐步到利用。当 A>1|\vec{A}|>1 时选择随机搜索代理,A<1|\vec{A}|<1 时选择最优解更新搜索代理位置。根据 pp 的值,WOA可以在螺旋运动和圆环运动之间进行切换。最后,通过满足终止准则来终止WOA算法。WOA算法的伪代码如图5所示。

    图5 WOA算法伪代码

    1.3 代码分析

      只要明白了原理的基本流程,其实代码就没有说明困难了,咱们主要介绍一下如何实现上述分析的几个重要原理,所要优化的问题的是三十个数的平方和最小((x2)\sum(x^2)

    1. 参数初始化。初始时主要设置代理数量和最大迭代次数即可,其他算法相关的参数因为和当前迭代次数相关,需要在迭代中设置。
    SearchAgents_no=30; % 搜索代理数量
    Max_iteration=500; % 最大迭代次数
    
    1. 种群初始化。随机初始化所有代理各个维度上的位置值,需要保证在取值范围内。
    Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;
    
    1. 种群评估。评估种群中每个代理的目标值,如有某个代理由于当前最优解,则将其设为最优解。
    for i=1:size(Positions,1)
        % 计算每个代理的目标值
        fitness=fobj(Positions(i,:));
        % 更新最优解
        if fitness<Leader_score % 如果是最大化问题,这里就是">"
            Leader_score=fitness; 
            Leader_pos=Positions(i,:);
        end
    end
    
    1. 设置和迭代次数相关的算法参数
    a=2-t*((2)/Max_iter); % 等式(3)中a随迭代次数从2线性下降至0 
    %a2从-1线性下降至-2,计算l时会用到
    a2=-1+t*((-1)/Max_iter);
    
    1. 对每个代理的每一维度进行位置更新
    % Update the Position of search agents 
    for i=1:size(Positions,1)
        r1=rand(); % r1为[0,1]之间的随机数
        r2=rand(); % r2为[0,1]之间的随机数
    
        A=2*a*r1-a;  % 等式(3)
        C=2*r2;      % 等式(4)
    
        b=1;               %  等式(5)中的常数b
        l=(a2-1)*rand+1;   %  等式(5)中的随机数l
        p = rand();        %  等式(6)中的概率p
        for j=1:size(Positions,2)
            if p<0.5   
                if abs(A)>=1
                    rand_leader_index = floor(SearchAgents_no*rand()+1);
                    X_rand = Positions(rand_leader_index, :);
                    D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % 等式(7)
                    Positions(i,j)=X_rand(j)-A*D_X_rand;      % 等式(8)
    
                elseif abs(A)<1
                    D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % 等式(1)
                    Positions(i,j)=Leader_pos(j)-A*D_Leader;      % 等式(2)
                end
            elseif p>=0.5
    
                distance2Leader=abs(Leader_pos(j)-Positions(i,j));
                % 等式(5)
                Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);
            end
        end
    end
    
    1. 重复执行步骤3~步骤5
      程序运行结果如下:
    图6 优化结果

      可以看出对于一个30维度的单峰优化问题,算法可以很快的找到最优值值,感兴趣的读者也可以在源码上运行自己想要的目标函数,这里不再展示其他结果。

    展开全文
  • 针对鲸鱼优化算法存在探索和开发能力难以协调、易陷入局部最优的不足,提出一种基于混沌搜索策略的鲸鱼优化算法(CWOA).首先,采用混沌反向学习策略产生初始种群,为全局搜索多样性奠定基础;其次,设计收敛因子和惯性权重...
  • 一种随机调整控制参数的鲸鱼优化算法
  • 通过对初始化种群位置、局部搜索过程和扰动产生新解的改进,提出了改进鲸鱼优化算法,该算法可显著提高WSN节点部署的覆盖率。
  • 鲸鱼优化算法原理及其matlab实现

    千次阅读 2020-12-01 20:02:55
    鲸鱼优化算法(WOA)是解决优化问题的一种新的优化技术。该算法包括三个算子,模拟了座头鲸的猎物搜索,包围猎物和泡泡网觅食行为。 提出了一种新的自然启发的元启发式优化算法Whale optimization algorithm(WOA)...

    鲸鱼优化算法(WOA)是解决优化问题的一种新的优化技术。该算法包括三个算子,模拟了座头鲸的猎物搜索,包围猎物和泡泡网觅食行为。

    提出了一种新的自然启发的元启发式优化算法Whale optimization algorithm(WOA),它模仿了座头鲸的社会行为。该算法受泡泡网搜索策略的启发。用29个数学优化问题和6个结构设计问题对WOA进行了测试。优化结果表明,与现有的元启发式算法以及传统方法相比,WOA算法具有很强的竞争力。

    完整资料和代码获取

    展开全文
  • 为了克服基本鲸鱼优化算法(WOA)在解决作业车间调度问题时存在收敛精度低、容易陷入局部最优的缺陷,利用量子计算与优化思想提出了一种量子鲸鱼优化算法(QWOA),并对其进行了计算复杂度分析、全局收敛性证明及...
  • 一种全局搜索策略的鲸鱼优化算法_刘磊.pdf
  • 论文研究-求解大规模优化问题的改进鲸鱼优化算法.pdf, 提出一种基于非线性收敛因子的改进鲸鱼优化算法(简记为IWOA)用于求解大规模复杂优化问题.为算法全局搜索奠定...
  • 针对基本鲸鱼优化算法(Whale optimization algorithm,WOA)在求解最优解不在原点附近的目标函数时存在收敛精度低、易陷入局部最优解的缺陷,提出一种基于余弦控制因子和多项式变异的鲸鱼优化算法(CPWOA).所提算法中...
  • 此资源是在Seyedali Mirjalili鲸鱼优化算法matlab源代码上增加详细中文注释,方便阅读和学习
  • WOA鲸鱼优化算法

    千次阅读 2021-02-23 16:23:24
    鲸鱼算法提出时间并不长,也是一个新兴的优化算法,研究应用案例不多。 鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;另...
  • python版本的鲸鱼优化算法WOA实现函数极小值寻优,直接运行woa_main.py即可,fitness用的是sphere函数 需要的可以改成其他函数极值寻优
  • 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili等提出的一种新的群体智能优化算法,其优点在于操作简单、参数少以及跳出局部最优的能力强。 图1 座头鲸的狩猎摄食...
  • 入门必看~~~~~群智能算法之鲸鱼优化算法(WOA)

    万次阅读 多人点赞 2019-07-21 22:28:51
    鲸鱼优化算法(WOA)也是一种元启发式优化算法。一种新的模拟座头鲸狩猎行为的元启发式优化算法(鲸鱼优化算法,WOA)。目前的工作与其他群优化算法相比的主要区别在于,采用随机或最佳搜索代理来模拟捕猎行为,并使用...
  • 文章目录一、理论基础1、WSN节点覆盖模型2、基本鲸鱼算法3、改进鲸鱼优化算法(1)量子位Bloch球面初始化(2)改进搜索猎物过程(3)莱维飞行扰动策略二、算法流程三、仿真实验与分析1、实验环境2、实验结果(1)与...
  • 鲸鱼优化(Whale Optimization Algorithm, WOA)算法是澳大利亚格里菲斯大学的Mirjalili 等于2016年提出的一种新型的群体智能优化方法,它的思想来源于海洋中座头鲸独有的特殊捕食行为,算法通过鲸鱼包围、气泡攻击...
  • 鲸鱼优化算法的旁瓣抑制和零向操纵的宽边线性非周期阵列的合成。
  • 鲸鱼优化算法WOA

    千次阅读 2020-08-01 15:32:40
    元启发式优化算法在工程应用中越来越受欢迎。 基于群体的元启发式优化算法不论其性质如何,都具有一个共同的特征。搜索过程分为e xploration和exploitation。 座头鲸的捕猎觅食行为被称为泡网取食法,座头鲸喜欢...
  • 国外一个优化性能很强的新算法,受鲸鱼的生物习性启发开发,在多种测试函数上测试效果不错!
  • 鲸鱼算法提出时间并不长,也是一个新兴的优化算法,研究应用案例不多。  鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;...
  • 针对基本鲸鱼优化(WOA)算法容易陷入局部最优解和收敛速度慢的缺点,提出一种正余混沌双弦鲸鱼优化(CSCWOA)算法。为鲸鱼的觅食加入信息交流强化机制,并在捕食引入正余混沌双弦机制,通过正弦全局搜索减少寻优...
  • 前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,...

空空如也

空空如也

1 2 3 4
收藏数 71
精华内容 28
关键字:

鲸鱼优化算法