【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用

【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用

鲸鱼优化算法(Whale Optimization Algorithm)详解与应用

文章目录

[鲸鱼优化算法(Whale Optimization Algorithm)详解与应用](#鲸鱼优化算法(Whale Optimization Algorithm)详解与应用)

[1. 引言](#1. 引言)

[2. 算法原理](#2. 算法原理)

[2.1 生物学基础](#2.1 生物学基础)

[2.2 数学模型[^3]](#2.2 数学模型[^3])

[1. 包围猎物阶段](#1. 包围猎物阶段)

[2. 气泡网攻击(螺旋更新)](#2. 气泡网攻击(螺旋更新))

[3. 随机搜索猎物(全局探索)](#3. 随机搜索猎物(全局探索))

完整算法伪代码

关键参数说明表

[2.3 改进方向中的数学扩展](#2.3 改进方向中的数学扩展)

[3. 算法实现步骤](#3. 算法实现步骤)

[4. 算法优势与特点](#4. 算法优势与特点)

[5. 应用领域](#5. 应用领域)

[6. 算法变体与改进](#6. 算法变体与改进)

[7. 代码实现示例](#7. 代码实现示例)

[8. 与其他优化算法的比较](#8. 与其他优化算法的比较)

[9. 总结与展望](#9. 总结与展望)

参考资料

1. 引言

鲸鱼优化算法 (Whale Optimization Algorithm, WOA)是一种基于生物行为的全局优化算法,由Mirjalili等人在2016年首次提出。该算法的灵感来源于座头鲸群体捕食的策略,特别是它们独特的泡泡网捕食行为。[1](#1)

作为一种新型的群体智能 优化算法,WOA在许多领域展现出了优越的性能,甚至在某些应用场景中表现出远超传统算法的优势。随着人工智能和优化算法的不断发展,鲸鱼优化算法已成为研究热点之一。[2](#2)

2. 算法原理

2.1 生物学基础

鲸鱼优化算法模拟了座头鲸的捕食行为。座头鲸在捕食时会包围猎物,并沿着螺旋路径形成独特的气泡网 来完成捕食。这种行为是算法设计的核心灵感来源。[3](#3)

2.2 数学模型^[4](#2.2 数学模型4)^

鲸鱼优化算法主要包含三种行为模式的数学建模:

1. 包围猎物阶段

鲸鱼通过以下公式更新位置来包围猎物:

{ D = ∣ C ⋅ X ∗ ( t ) − X ( t ) ∣ X ( t + 1 ) = X ∗ ( t ) − A ⋅ D \begin{cases} D = |C \cdot X^*(t) - X(t)| \\ X(t+1) = X^*(t) - A \cdot D \end{cases} {D=∣C⋅X∗(t)−X(t)∣X(t+1)=X∗(t)−A⋅D

其中:

X ( t ) X(t) X(t) 是当前个体位置

X ∗ ( t ) X^*(t) X∗(t) 是当前最优个体位置

A A A 和 C C C 是系数向量,计算方式为:

A = 2 a ⋅ r 1 − a C = 2 ⋅ r 2 A = 2a \cdot r_1 - a \\ C = 2 \cdot r_2 A=2a⋅r1−aC=2⋅r2

a a a 从2线性递减到0(迭代控制参数):

a = 2 − t ⋅ ( 2 T max ) a = 2 - t \cdot \left(\frac{2}{T_{\text{max}}}\right) a=2−t⋅(Tmax2)

r 1 , r 2 r_1, r_2 r1,r2 是[0,1]内的随机向量

2. 气泡网攻击(螺旋更新)

鲸鱼以螺旋路径逼近猎物:

X ( t + 1 ) = D ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) + X ∗ ( t ) X(t+1) = D' \cdot e^{bl} \cdot \cos(2\pi l) + X^*(t) X(t+1)=D′⋅ebl⋅cos(2πl)+X∗(t)

其中:

D ′ = ∣ X ∗ ( t ) − X ( t ) ∣ D' = |X^*(t) - X(t)| D′=∣X∗(t)−X(t)∣ 表示个体与最优解的距离

b b b 是定义螺旋形状的常数(通常设为1)

l l l 是[-1,1]间的随机数

实际实现中,包围和螺旋行为以50%概率切换:

X ( t + 1 ) = { X ∗ ( t ) − A ⋅ D if p < 0.5 D ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) + X ∗ ( t ) if p ≥ 0.5 X(t+1) = \begin{cases} X^*(t) - A \cdot D & \text{if } p < 0.5 \\ D' \cdot e^{bl} \cdot \cos(2\pi l) + X^*(t) & \text{if } p \geq 0.5 \end{cases} X(t+1)={X∗(t)−A⋅DD′⋅ebl⋅cos(2πl)+X∗(t)if p<0.5if p≥0.5

3. 随机搜索猎物(全局探索)

当 ∣ A ∣ ≥ 1 |A| \geq 1 ∣A∣≥1时,个体随机搜索:

{ D = ∣ C ⋅ X rand − X ( t ) ∣ X ( t + 1 ) = X rand − A ⋅ D \begin{cases} D = |C \cdot X_{\text{rand}} - X(t)| \\ X(t+1) = X_{\text{rand}} - A \cdot D \end{cases} {D=∣C⋅Xrand−X(t)∣X(t+1)=Xrand−A⋅D

其中 X rand X_{\text{rand}} Xrand是当前种群中的随机个体位置。

完整算法伪代码

复制代码

1. 初始化鲸鱼种群Xi (i=1,2,...,n)

2. 计算每个个体的适应度

3. X* = 当前最优个体

4. while (t < 最大迭代次数) do

5. for 每个个体 do

6. 更新a, A, C, l, p

7. if (p < 0.5) then

8. if (|A| < 1) then

9. 按公式(1)更新位置(包围猎物)

10. else

11. 随机选择X_rand

12. 按公式(3)更新位置(随机搜索)

13. end if

14. else

15. 按公式(2)更新位置(气泡网攻击)

16. end if

17. 检查边界并计算新适应度

18. 更新X*(如果找到更优解)

19. end for

20. t = t + 1

21. end while

22. return X*

关键参数说明表

参数

数学表示

作用

典型取值/范围

种群大小

n

影响算法全局搜索能力

30-50

迭代次数

T_max

控制算法运行时间

问题相关

收敛因子

a

平衡探索与开发

2→0线性递减

螺旋形状常数

b

控制螺旋形状

1(常数)

随机概率

p

选择更新策略

[0,1]均匀随机

随机系数

l

螺旋运动参数

[-1,1]均匀随机

2.3 改进方向中的数学扩展

自适应参数改进 :

a = 2 ( 1 − t T max ) k ( k > 1 时为非线性递减 ) a = 2(1 - \frac{t}{T_{\text{max}}})^k \quad (k>1时为非线性递减) a=2(1−Tmaxt)k(k>1时为非线性递减)

混合算法改进 :

X new = w ⋅ X WOA + ( 1 − w ) ⋅ X OtherAlgorithm X_{\text{new}} = w \cdot X_{\text{WOA}} + (1-w) \cdot X_{\text{OtherAlgorithm}} Xnew=w⋅XWOA+(1−w)⋅XOtherAlgorithm

多目标优化扩展 :

Minimize [ f 1 ( x ) , f 2 ( x ) , . . . , f k ( x ) ] \text{Minimize } [f_1(x), f_2(x), ..., f_k(x)] Minimize [f1(x),f2(x),...,fk(x)]

采用Pareto支配关系更新最优解集

3. 算法实现步骤

初始化:随机生成鲸鱼种群位置

适应度评估:计算每个个体的适应度值

更新最优解:找到当前种群中的最优解

位置更新 :

根据概率 p p p选择更新策略

若 p < 0.5 p<0.5 p<0.5,根据 ∣ A ∣ |A| ∣A∣的值决定是执行包围猎物 还是搜索猎物

若 p ≥ 0.5 p≥0.5 p≥0.5,执行气泡网攻击策略

迭代:重复步骤2-4直到满足终止条件

输出 :返回最优解[3](#3)

4. 算法优势与特点

鲸鱼优化算法具有以下几个显著特点:

全局搜索能力强:通过模拟鲸鱼的随机搜索行为,算法具有较强的全局搜索能力

局部开发能力优秀:螺旋更新机制使算法在找到潜在最优解后能够进行精细的局部搜索

参数设置简单:相比其他元启发式算法,WOA的参数较少且易于调整

收敛速度快 :在多数测试函数上表现出较快的收敛速度[4](#4) [2](#2)

5. 应用领域

鲸鱼优化算法已在多个领域得到广泛应用:

工程优化问题:如结构设计优化、参数优化等

机器学习:特征选择、分类器优化、神经网络训练

能源系统:电力系统优化、可再生能源调度

图像处理:图像分割、目标识别

调度问题 :作业调度、资源分配[1](#1) [2](#2)

6. 算法变体与改进

随着研究的深入,研究人员提出了多种鲸鱼优化算法的变体和改进版本:

二进制鲸鱼优化算法:用于解决离散优化问题

多目标鲸鱼优化算法:处理具有多个冲突目标的优化问题

混合鲸鱼优化算法:与其他算法(如粒子群、遗传算法等)结合,取长补短

自适应鲸鱼优化算法 :通过动态调整参数提高算法性能[4](#4) [2](#2)

7. 代码实现示例

以下是Python版本的鲸鱼优化算法基本框架:

python

复制代码

import numpy as np

import matplotlib.pyplot as plt

def WOA(objective_function, dim, lb, ub, max_iter, search_agents_no):

# 初始化种群

positions = np.random.uniform(lb, ub, (search_agents_no, dim))

# 初始化最优解

fitness = np.zeros(search_agents_no)

for i in range(search_agents_no):

fitness[i] = objective_function(positions[i])

leader_pos = positions[np.argmin(fitness)].copy()

leader_score = np.min(fitness)

# 迭代优化

convergence_curve = np.zeros(max_iter)

for t in range(max_iter):

a = 2 - t * (2 / max_iter) # a从2线性递减到0

for i in range(search_agents_no):

r1 = np.random.random()

r2 = np.random.random()

A = 2 * a * r1 - a

C = 2 * r2

p = np.random.random()

if p < 0.5:

if abs(A) < 1:

# 包围猎物

D = abs(C * leader_pos - positions[i])

positions[i] = leader_pos - A * D

else:

# 搜索猎物

rand_leader_index = np.random.randint(0, search_agents_no)

X_rand = positions[rand_leader_index]

D = abs(C * X_rand - positions[i])

positions[i] = X_rand - A * D

else:

# 气泡网攻击

distance_to_leader = abs(leader_pos - positions[i])

b = 1 # 定义螺旋形状

l = np.random.random() * 2 - 1

positions[i] = distance_to_leader * np.exp(b * l) * np.cos(2 * np.pi * l) + leader_pos

# 边界处理

positions[i] = np.clip(positions[i], lb, ub)

# 更新适应度

new_fitness = objective_function(positions[i])

# 更新领导者

if new_fitness < leader_score:

leader_score = new_fitness

leader_pos = positions[i].copy()

convergence_curve[t] = leader_score

return leader_pos, leader_score, convergence_curve

[3](#3)

8. 与其他优化算法的比较

与其他常见的群体智能优化算法相比,鲸鱼优化算法具有一定的优势:

相比粒子群算法(PSO):WOA具有更强的全局搜索能力,不易陷入局部最优

相比遗传算法(GA):WOA参数更少,实现更简单,且在许多测试函数上收敛速度更快

相比蚁群算法(ACO):WOA在连续优化问题上表现更好

相比人工蜂群算法(ABC) :WOA在平衡全局搜索和局部开发方面有更好的机制[4](#4) [2](#2)

9. 总结与展望

鲸鱼优化算法作为一种新兴的群体智能优化算法,凭借其简单高效的特点,在众多领域展现出良好的应用前景。随着研究的深入,算法的改进和应用范围还将进一步扩展。

未来研究方向可能包括:

算法理论基础的深入研究

参数自适应调整机制的优化

与深度学习等技术的结合

在更多实际工程问题中的应用验证[1](#1) [2](#2)

参考资料

鲸鱼优化算法(Whale Optimization Algorithm,WOA). CSDN博客. https://blog.csdn.net/qq_39297053/article/details/137440233 ↩︎ ↩︎ ↩︎

鲸鱼优化算法研究综述. 自动化学报. https://www.arocmag.cn/abs/2022.06.0347 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

超详细| 鲸鱼优化算法原理及其实现(Matlab/Python). CSDN博客. https://blog.csdn.net/sfejojno/article/details/133624149 ↩︎ ↩︎ ↩︎

智能优化算法|鲸鱼优化算法. 知乎专栏. https://zhuanlan.zhihu.com/p/690046477 ↩︎ ↩︎ ↩︎ ↩︎

相关推荐