当前位置:文档之家› 1鲸鱼群算法详细流程

1鲸鱼群算法详细流程

.2 鲸鱼群算法为了开发用来解决函数优化问题的鲸鱼群算法,我们对鲸鱼的一些行为进行了假设。

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

1)迭代公式无线电波和光波都是电磁波,它们可以在没有任何介质的情况下传播。

如果在水中传播,由于水具有强大的导电性,它们的强度会快速衰减。

声波是一种需要通过介质传播的机械波,介质可以是水、空气、木材和金属等。

超声波属于声波,其传输速度和距离很大程度上取决于介质的属性,例如,超声波在水中的传播速度约1450m/s ,这比在空气中的传播速度(约340m/s )更快。

另外,一些具有预先指定强度的超声波在空气中只能传播2米,但是在水下可以传播约100米,这是因为机械波的强度会通过介质分子连续地衰减,并且超声波在空气中传播的强度比在水中衰减得更快。

距离波源d 的超声波强度ρ可以由如下公式表示[29]:0de ηρρ-⋅=⋅ (1)其中ρ0指超声波源的强度,e 为自然对数,η为衰减系数,它取决于介质的物理化学性质和超声波本身的属性(例如超声波频率)[29]。

如公式1所示,当η恒定时,ρ随着d 的增加呈指数减小,这意味着当超声波的传播距离变得相当远时,鲸鱼传送的超声波所携带的消息很有可能失真。

所以,当一条鲸鱼接收到来自相当远的鲸鱼的信息时,它不确定自己理解是否正确,这时,我们假设鲸鱼将消极地朝着离自己相当远的“较优且最近”的鲸鱼随机移动。

根据上述可以知道,在捕食的时候,如果距离“较优且最近”的鲸鱼较近,鲸鱼将积极地向它随机移动;如果距离较远,鲸鱼会消极地向其随机移动。

因此,经过一段时间,就会形成一些独立的种群。

这种基于超声波衰减的随机移动规则启发了我们获得一种新的位置迭代公式,该公式使得算法不会过早陷入局部最优,并且能够增强种群多样性和全局搜索能力,也有助于求解多个全局最优解。

鲸鱼X 在它的“较优且最近”的鲸鱼Y 引导下的随机移动可以由如下公式表示:()(),+10rand 0,d t t tt i i i i x x e y x ηρ-⋅=+⋅*-X Y (2)其中,t i x 和+1t ix 分别指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 终止条件不满足do6:for i=1 to |Ω| do7:寻找Ωi的“较优且最近”的鲸鱼Y;8:if Y存在then9:Ωi在Y的引导下根据公式(2)进行移动;10:评价Ωi;11:end if12:end for13:end while14:返回全局最优解;15:结束图3 WSA的总体框架寻找“较优且最近”的鲸鱼的伪代码输入:鲸鱼群Ω,鲸鱼Ωu。

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

1:开始2:定义整型(int)变量v并初始化为0;3:定义浮点型(float)变量temp并初始化为+∞;4:for i=1 to |Ω| do5:if f(Ωi)<f(Ωu) then6:if dist(Ωi, Ωu)<temp then7:v=i;8:temp=dist(Ωi, Ωu);9:end if10:end if11:end for12:返回Ωv;13:结束图4 寻找“较优且最近”的鲸鱼的伪代码FJSP 的编码机制FJSP 问题包含机器分配和工序排序两个子问题,因此每个个体可采用基于随机键的两段式编码,其中各段长度相等,且分别对应机器分配方案和工序排序方案,假设个体位置向量长度为2l ,则克表示为X={x(1),x(2),...x(2l)},各元素均在[-ε,ε]内任意取值。

假设车间内包含3个工件,每个工件包含两道工序,则个体位置向量的总长度为12,各元素[-3,3]中任意取值(注意此处ε为取值为工件的个数),并按照一定的顺序储存,如图1所示。

此处大家把那个文献的图画一下。

鲸鱼群算法的求解步骤整理:1 鲸鱼群算法的参数初始化的设置,此处02ρ=,ma x d =L i x 与U i x 分别表示第i 个变量的下限与上限值,比如混合灰狼算法里面的(-3,3)进而将dmax 的值带入()max 20ln 0.25η=-⋅,得到η的值,然后就可以进行求解了。

2 鲸鱼群算法的种群随机初始化,例如初始化种群规模为10,3 计算每个个体对应的适应度值,也就是目标函数值,并保留最优个体X*;4 判断是否满足算法终止条件,达到设定的最大迭代次数,不满足则执行步骤5;满足则执行步骤6.5 对剩余9个个体进行鲸鱼群算法的迭代操作5.1 定义两只鲸鱼之间的距离计算方法,5.2 如果存在的话,对每一个鲸鱼寻找“较优且最近”的个体;以Xi 为例如下,如果不存在的话则保持不动。

5.2.1 找到所有适应度值大于Xi 的个体如Y1,Y2,Y3。

5.2.2计算每一个适应度值大于大于Xi 的个体Y1,Y2,Y3与Xi 之间的距离D1,D2,D3.5.2.3 对D1,D2,D3排序,选择最小的如D3,则D3所对应的个体Y3即为Xi 的“较优且最近”的个体;5.4 将Xi 和Y3的值,以及初始化的参数带入迭代公式(2)更新剩余的9个个体,返回步骤3,计算连同X*在内的10个个体的适应度值,并选择最优的X*;6 输出最优的X*,以及对应的最佳调度方案和目标函数值,总的流程时间等。

FJSP的编码机制FJSP问题包含机器分配和工序排序两个子问题,因此每个个体可采用基于随机键的两段式编码,其中各段长度相等,且分别对应机器分配方案和工序排序方案,假设个体位置向量长度为2l,则克表示为X={x(1),x(2),...x(2l)},各元素均在[-ε,ε]内任意取值。

假设车间内包含3个工件,每个工件包含两道工序,则个体位置向量的总长度为12,各元素[-3,3]中任意取值(注意此处ε为取值为工件的个数),并按照一定的顺序储存,如图1所示。

此处大家把那个文献的图画一下。

鲸鱼群算法的求解柔性作业车间调度问题(FJSP)步骤整理:1 鲸鱼群算法的参数初始化的设置,此处02ρ=,max=+d∞,此处大家把参数补充一下2 鲸鱼群算法的种群随机初始化,按照FJSP的编码方式,随机生成初始种群;例如初始化种群规模为10,3 计算每个个体对应的适应度值,也就是目标函数值,并保留最优个体X*;4 判断是否满足算法终止条件,达到设定的最大迭代次数,不满足则执行步骤5;满足则执行步骤6.5 对剩余9个个体进行鲸鱼群算法的迭代操作5.1执行调度方案向个体位置向量的转换方式生成对应的初始化鲸鱼个体种群为95.2 定义两只鲸鱼之间的距离计算方法,5.3 如果存在的话,对每一个鲸鱼寻找“较优且最近”的个体;以Xi为例如下,如果不存在的话则保持不动。

5.3.1 找到所有适应度值大于Xi 的个体如Y1,Y2,Y3。

5.3.2计算每一个适应度值大于大于Xi 的个体Y1,Y2,Y3与Xi之间的距离D1,D2,D3.5.3.3 对D1,D2,D3排序,选择最小的如D3,则D3所对应的个体Y3即为Xi的“较优且最近”的个体;5.4 将Xi和Y3的值,以及初始化的参数带入迭代公式(2)更新剩余的9个个体,执行个体位置向量向调度方案的转换方式生成对应的更新之后的9个调度方案,返回步骤3,计算连同X*在内的10个个体的适应度值,并选择最优的X*;6 输出最优的X*,以及对应的最佳调度方案和目标函数值,总的流程时间等。

相关主题