1鲸鱼群算法详细流程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.2 鲸鱼群算法

为了开发用来解决函数优化问题的鲸鱼群算法,我们对鲸鱼的一些行为进行了假设。为了简便地描述鲸鱼群算法,我们假设以下四个理想化规则:1)所有鲸鱼在搜索区域中通过超声波进行交流;2)每条鲸鱼能够计算出自身与其它鲸鱼的距离;3)每条鲸鱼发现的食物的优劣程度通过适应度值表示;4)鲸鱼的移动由比它好(由适应度值判断)的鲸鱼中离它最近的鲸鱼进行引导,这种引导鲸鱼在本文中被称为“较优且最近”的鲸鱼。

1)迭代公式

无线电波和光波都是电磁波,它们可以在没有任何介质的情况下传播。如果在水中传播,由于水具有强大的导电性,它们的强度会快速衰减。声波是一种需要通过介质传播的机械波,介质可以是水、空气、木材和金属等。超声波属于声波,其传输速度和距离很大程度上取决于介质的属性,例如,超声波在水中的传播速度约1450m/s ,这比在空气中的传播速度(约340m/s )更快。另外,一些具有预先指定强度的超声波在空气中只能传播2米,但是在水下可以传播约100米,这是因为机械波的强度会通过介质分子连续地衰减,并且超声波在空气中传播的强度比在水中衰减得更快。距离波源d 的超声波强度ρ可以由如下公式表示

[29]:

0d

e ηρρ-⋅=⋅ (1)

其中ρ0指超声波源的强度,e 为自然对数,η为衰减系数,它取决于介质的物理化学性质和超声波本身的属性(例如超声波频率)[29]。

如公式1所示,当η恒定时,ρ随着d 的增加呈指数减小,这意味着当超声波的传播距离变得相当远时,鲸鱼传送的超声波所携带的消息很有可能失真。所以,当一条鲸鱼接收到来自相当远的鲸鱼的信息时,它不确定自己理解是否正确,这时,我们假设鲸鱼将消极地朝着离自己相当远的“较优且最近”的鲸鱼随机移动。

根据上述可以知道,在捕食的时候,如果距离“较优且最近”的鲸鱼较近,鲸鱼将积极地向它随机移动;如果距离较远,鲸鱼会消极地向其随机移动。因此,经过一段时间,就会形成一些独立的种群。这种基于超声波衰减的随机移动规则启发了我们获得一种新的位置迭代公式,该公式使得算法不会过早陷入局部最优,并且能够增强种群多样性和全局搜索能力,也有助于求解多个全局最优解。鲸鱼X 在它的“较优且最近”的鲸鱼Y 引导下的随机移动可以由如下公式表示:

()(),+10rand 0,d t t t

t i i i i x x e y x ηρ-⋅=+⋅*-X Y (2)

其中,t i x 和+1t i

x 分别指X 的第i 个元素在t 步与t +1步迭代的位置;t i y 指Y 的第i 个元素在t 步迭代的位置;,d X Y 指X 与Y 之间的距离;(),0rand 0,d e

ηρ-⋅⋅X Y 表示0到,0d e ηρ-⋅⋅X Y 之间产生的随机数,根据大量实验的结果,对于几乎所有的实例,

ρ0都可以设置为2。 衰减系数η取决于介质的物理化学性质和超声波本身的属性。对于函数优化问题,影响η的因素与目标函数的特征相关,包括函数的维数、定义域和峰值分布。因此,需要针对不同的目标函数设置适当的η值。根据大量的实验结果,为了方便工程师应用鲸鱼群算法,我们可以按照如下方法设置η的初始近似值。首先,令()max 2000.5d e ηρ-⋅⋅=,即()max 2020.5d e η-⋅⋅=,max d 指在搜索区域内两只鲸鱼之间

可能的最大距离,可由

ma x d =其中n 为目标函数的维数,L i x 与U i x 分别表示第i 个变量的下限与上限。这个公式表示如果鲸鱼X 与其“较优且

最近”的鲸鱼Y 之间的距离是max 20d 时,,0d e

ηρ-⋅⋅X Y 应设置为0.5,它影响着鲸鱼X 的移动范围。因此()

max 20ln 0.25d η=-⋅

,基于该近似初始值,很容易将η

调整

为最优值或近似最优值。

X

,0 1.6e ρ⋅=X Y ,00.5e ρ⋅=X Y

图2 由“较优且最近”的鲸鱼引导的随机移动示意图

根据公式2可知,如果一条鲸鱼与它的“较优且最近”的鲸鱼之间的距离很小,该条鲸鱼将会积极地朝其“较优且最近”的鲸鱼随机移动;否则,它将消极地朝着其“较优且最近”的鲸鱼随机移动,正如图2所示。图2中的目标函数维数为2,红色五角星表示全局最优解,圆圈表示鲸鱼,用虚线标记的矩形区域是当前迭代中鲸鱼的可达区域。

2)WSA 总体框架

基于上述规则,WSA 的总体框架如图3所示。其中,第6行中的|Ω|表示鲸鱼群Ω中的个体数,即种群大小;第7行中的Ωi 是Ω中的第i 条鲸鱼。从图3可以看出,与其它大多数元启发式算法类似,迭代计算之前的步骤是一些初始化步骤,包括参数的初始化配置、初始化个体的位置以及对每个个体的评价。这里,

所有的鲸鱼个体的位置是采用随机初始化的方式。WSA的核心步骤是鲸鱼的移动(第5-13行),每条鲸鱼通过与群体中其它鲸鱼合作向更好的位置移动。首先,鲸鱼需要确定它的“较优且最近”的鲸鱼(第7行)。如果它的“较优且最近”的鲸鱼存在,那么它将根据公式2向其“较优且最近”的鲸鱼移动(第9行);否则,它将保持原地不动。寻找“较优且最近”的鲸鱼的伪代码如图4所示,其中,f(Ωi)表示鲸鱼Ωi的适应度值,dist(Ωi, Ωu)表示Ωi与Ωu之间的距离。

WSA的总体框架

输入:适应度函数,鲸鱼群Ω。

输出:全局最优解。

1:开始

2:初始化参数;

3:初始化鲸鱼位置;

4:评价鲸鱼(计算其适应度值);

5:while 终止条件不满足do

6:for i=1 to |Ω| do

7:寻找Ωi的“较优且最近”的鲸鱼Y;

8:if Y存在then

9:Ωi在Y的引导下根据公式(2)进行移动;

10:评价Ωi;

11:end if

12:end for

13:end while

14:返回全局最优解;

15:结束

图3 WSA的总体框架

寻找“较优且最近”的鲸鱼的伪代码

输入:鲸鱼群Ω,鲸鱼Ωu。

输出:鲸鱼Ωu的“较优且最近”的鲸鱼。

1:开始

2:定义整型(int)变量v并初始化为0;

3:定义浮点型(float)变量temp并初始化为+∞;

4:for i=1 to |Ω| do

5:if f(Ωi)

6:if dist(Ωi, Ωu)

7:v=i;

8:temp=dist(Ωi, Ωu);

9:end if

10:end if

11:end for

12:返回Ωv;

13:结束

图4 寻找“较优且最近”的鲸鱼的伪代码

相关文档
最新文档