龙空技术网

优化算法 | 手把手教你改进鲸鱼优化算法(附8个算法创新点)

爱国 79

前言:

当前我们对“计算机优化算法实验报告总结”大体比较着重,我们都需要学习一些“计算机优化算法实验报告总结”的相关文章。那么小编在网摘上汇集了一些对于“计算机优化算法实验报告总结””的相关资讯,希望我们能喜欢,姐妹们一起来学习一下吧!

今天为各位讲解改进鲸鱼优化算法(Improved Whale Optimization Algorithm,IWOA),近两年关于鲸鱼优化算法(WOA)的论文比较多,对WOA算法改进的研究也是层出不穷,今天这篇推文主要针对无约束连续优化问题,提出应用WOA算法求解的改进思路。如果想了解标准WOA算法,可以在优化算法 | 鲸鱼优化算法这篇推文中进行学习,当然,我们也会在本篇推文中对标准WOA算法做一个简短的回顾。

目录

1.标准WOA算法

2.改进WOA算法创新点

3.改进WOA算法流程图

4.改进WOA算法实例验证

1.标准WOA算法

WOA是模仿自然界中鲸鱼捕食行为的新型群体智能优化算法,而鲸鱼的捕食行为主要分为3类:1)包围猎物;2)发泡网攻击;3)搜索捕食。接下来分别对上述3类捕食行为用数学公式进行表示。

1.1 包围猎物

假设在d维空间中,当前最佳鲸鱼个体的X^*位置为\left(X_1^*, X_2^*, \cdots, X_d^*\right),鲸鱼个体的位置X^j为\left(X_1^j, X_2^j, \cdots, X_d^j\right)。则鲸鱼个体X^j在最佳鲸鱼个体X^*的影响下的下一个位置的计算公式如下X^{j_{-} n e w}\left(X_1^{j_{-} n e w}, X_2^{j_{-} n e w}, \cdots, X_d^{j_{-} n e w}\right):

\begin{gathered} X_k^{j_{-} n e w}=X_k^*-A_1 \cdot D_k \quad(1)\\ D_k=\left|C_1 \cdot X_k^*-X_k^j\right| \quad(2)\\ C_1=2 r_2 \quad(3)\\ A_1=2 a \cdot r_1-a \quad(4) \end{gathered} \\

其中X_k^{j_{-} n e w}表示空间坐标的X^{j_{-} n e w}第个分k量。计算公D_k式中的表示求绝|\quad |对值的含义。是a随着迭代次数的增加,从2至0线性递减。r_1和r_2中都是0至1之间的随机数。

1.2 发泡网攻击

发泡网攻击是座头鲸特有的吐气泡捕食行为,为了模拟这种捕食行为,现分别设计两种数学模型表达上述捕食行为。假设在d维空间中,当前最佳鲸鱼个体X^*的位置为\left(X_1^*, X_2^*, \cdots, X_d^*\right),鲸鱼个体X^j的位置为\left(X_1^j, X_2^j, \cdots, X_d^j\right)。

a)收缩包围。这种捕食行为与上述包围猎物行为的数学模型几乎完全相同,区别之处在于A_1的取值范围。因为收缩包围的含义为将当前位置的鲸鱼个体向当前最佳位置的鲸鱼个体靠近,所以A_1的取值范围由原来的[-a,a]调整为[-1,1],其它公式保持不变。

b)螺旋式位置更新。当前鲸鱼个体以螺旋式的方式向当前最佳鲸鱼个体靠近。

\begin{gathered} X_k^{j_{-} \text {new }}=X_k^*+D_k \cdot e^{b l} \cdot \cos (2 \pi l) \quad (5)\\ D_k=\left|X_k^*-X_k^j\right| \quad(6) \end{gathered} \\

其中b为对数螺旋形状常数,l为-1 \sim 1之间的随机数。

座头鲸在围捕猎物时,不仅收缩包围圈,而且以螺旋形式向猎物游走,因此各以50%的概率选择收缩包围圈,或是选择以螺旋形式向猎物游走,数学模型如下:

X_k^{j_{-} \text {new }}=\left\{\begin{array}{cc} X_k^*-A_1 \cdot D_k & p

1.3 搜索捕食

在收缩包围的捕食行为的数学模型中A_1的取值范围限制为[-1,1],但是当A_1的取值不在[-1,1]时,这时当前鲸鱼个体可能不会向当前最佳鲸鱼个体靠近,而是从当前鲸鱼群体中随机选择一条鲸鱼个体靠近,这就是搜索捕食的思想。

搜索捕食虽然可能会使当前鲸鱼个体偏离目标猎物,但是会增强鲸鱼群体的全局搜索能力。假设在d维空间中,当前鲸鱼群体中随机一个鲸鱼个体X^{rand}的位置为\left(X_1^{\text {rand }}, X_2^{\text {rand }}, \cdots, X_d^{\text {rand }}\right),鲸鱼个体X^j的位置为\left(X_1^j, X_2^j, \cdots, X_d^j\right),则搜索捕食行为的数学模型如下:

\begin{gathered} X_k^{j_{-} n e w}=X_k^{\text {rand }}-A_1 \cdot D_k \quad(8) \\ D_k=\left|C_1 \cdot X_k^{\text {rand }}-X_k^j\right| \quad(9)\\ C_1=2 r_2(10) \quad(10)\\ A_1=2 a \cdot r_1-a \quad(11) \end{gathered} \\

2.改进WOA算法创新点2.1 自适应参数

2.1.1 启发式概率p_1

为了平衡标准WOA全局搜索和局部搜索能力,启发式概率p_1计算公式如下:

p_{1}=\left\{\begin{array}{ll} 0.7 & t

其中t为当前迭代次数,maxIter为最大迭代次数。

2.1.2 自适应惯性权重\omega

在迭代过程中,将鲸鱼个体的适应度 f(i)按升序排序,然后分成两半分别求平均适应度 f_{avg1}和 f_{avg2},其中f_{avg1},将当前鲸鱼个体的适应度分与 f_{avg1}和 f_{avg2}比较,将惯性权重分类如下:

(1) f(i)

\omega取值为(0.8,1.2)之间的随机数。

(2)f(i) \geq f_{avg2}

\omega以50%的概率取为(0.3,0.6)或(1.3,1.6)之间的随机数。

(3) f_{avg1}

\omega取值为1。

2.1.3 线性控制参数l

\begin{array}{l} l=\left(a_{2}-1\right) \times \text { rand }+1-2 \times \frac{t}{\text { maxIter }} \quad (13)\\ a_{2}=-1-\frac{t}{\text { maxIter }} \quad (14) \end{array} \\

2.2 全局搜索方法

2.2.1 \text { Lévy }飞行策略

采用\text { Lévy }飞行策略可以增强算法的全局搜索能力。鲸鱼个体X^i采用\text { Lévy }飞行策略更新位置的公式如下:

X_{\text {new }}^{i}=X^{i}+A_{1} \times 0.01 \times \text { step } \oplus\left(X^{i}-C_{1} \times X^{\text {rand }}\right) \quad(15) \\

其中X_{\text {new }}^{i}为鲸鱼个体X^i更新后的位置,A_1和C_1的含义同公式(1)中的A_1和C_1,\oplus表示点乘,X^{\text {rand }}表示当前种群中随机选择的鲸鱼个体,step表示随机步长,由Mantegna方法产生,公式如下。

\operatorname{step}=\frac{u}{|v|^{1 / \beta}} \quad(16) \\

其中u\left(u_{1}, u_{2}, \cdots, u_{d}\right)和v\left(v_{1}, v_{2}, \cdots, v_{d}\right)为d维空间向量,且有\beta=1.5,u和v$的每个分量均服从如下正太分布。

\begin{array}{r} u \sim N\left(0, \sigma_{u}^{2}\right), v \sim N\left(0, \sigma_{v}^{2}\right)\quad(17) \\ \sigma_{u} \sim\left(\frac{\Gamma(1+\beta) \cdot \sin \left(\pi \cdot \frac{\beta}{2}\right)}{\Gamma\left(\frac{1+\beta}{2}\right) \cdot \beta \cdot 2^{\frac{\beta-1}{2}}}\right)^{\frac{1}{\beta}}, \sigma_{v}=1 \quad(18) \end{array} \\

2.2.2 初级知识获取-共享算法

将鲸鱼个体的适应度按升序排序,排序结果如下:

X^{\text {best }}, \cdots, X^{i-1}, X^{i}, X^{i+1}, \cdots, X^{\text {worst }} \\

初级知识获取-共享算法更新个体方法如下:

f\left(X^{r}\right) \\ X^{i}+k_{f} \times\left[\left(X^{i-1}-X^{i+1}\right)+\left(X^{i}-X^{r}\right)\right] & f\left(X^{i}\right) \leq f\left(X^{r}\right) \end{array}\right. \quad(19) \\">X_{\text {new }}^{i}=\left\{\begin{array}{ll} X^{i}+k_{f} \times\left[\left(X^{i-1}-X^{i+1}\right)+\left(X^{r}-X^{i}\right)\right] & f\left(X^{i}\right)>f\left(X^{r}\right) \\ X^{i}+k_{f} \times\left[\left(X^{i-1}-X^{i+1}\right)+\left(X^{i}-X^{r}\right)\right] & f\left(X^{i}\right) \leq f\left(X^{r}\right) \end{array}\right. \quad(19) \\

其中X^i为待更新个体,X_{\text {new }}^{i}为更新后的个体,X^r为随机选择的个体,k_f为知识因素参数,取值为0.5。

2.2.3 模拟退火策略

在更新中种群中的个体时,以一定概率接受劣质个体。概率计算公式如下:

P=e^{-\frac{\left(f\left(X^{j_{-} n e w}\right)-f\left(X^{j}\right)\right) / f\left(X^{j}\right)}{T}} \quad(20) \\

其中T为当前迭代次数时的温度。

2.3 局部搜索方法

2.3.1 修正螺旋位置更新方法

将鲸鱼个体的适应度按升序排序,排序结果为:

X^{1}, \cdots, X^{i-1}, X^{i}, X^{i+1}, \cdots, X^{\text {popSize }} \\

根据适应度值将鲸鱼个体划分为3类:最佳个体类、中等个体类、最差个体类,且这3类集合中

标签: #计算机优化算法实验报告总结