章鱼优化算法(Octopus Optimization Algorithm, OOA)是一种受自然启发的元启发式优化算法,由 Song 等人于 2025 年提出。该算法模拟章鱼在海洋环境中的捕食行为与运动模式,将种群划分为猎人(Hunter)与侦察兵(Scout)两类角色,分别执行局部精细搜索与全局探索。

1 生物灵感与算法框架
章鱼(Octopus)属于头足纲软体动物,其神经系统高度发达:约 500 亿神经元中,约 2/5 位于头部,3/5 分布于八条腕足。这种分布赋予腕足一定程度的自主决策能力,允许其在无需大脑直接干预的情况下完成局部运动与感知。OOA 借鉴这一生物学特性,构建了分层协同搜索机制。
算法将种群分为以下两类角色:
- 猎人(Hunter):模拟章鱼在海底用腕足爬行捕食的行为,负责局部开发。每只猎人由一个头部(head)和八条腕足(tentacles)构成,头部记录该猎人当前最优腕足的位置,腕足独立探索解空间。
- 侦察兵(Scout):模拟章鱼通过喷水推进快速游动的行为,负责全局探索。侦察兵从猎人群体中选取位置,并执行大范围跳跃式搜索。
种群中总个体数 NNN 满足下式:
N=Nh×9+Ns, N = N_h \times 9 + N_s, N=Nh×9+Ns,
其中 NhN_hNh 为猎人数量,NsN_sNs 为侦察兵数量。
2 数学模型与更新公式
2.1 参数定义与初始化
- DDD:问题维度
- UBj,LBjUB_j, LB_jUBj,LBj:第 jjj 维搜索上、下界
- TTT:最大迭代次数,ttt:当前迭代次数
- vr=3vr = 3vr=3:视野范围(field of view)
- ll=0.8ll = 0.8ll=0.8:抓取阈值(grasping threshold)
- p∈[0.7,0.9]p \in [0.7, 0.9]p∈[0.7,0.9]:猎人比例控制参数(原文取 p=0.8p=0.8p=0.8)
初始种群位置均匀随机生成:
Xi,j=LBj+r⋅(UBj−LBj),r∼U(0,1). X_{i,j} = LB_j + r \cdot (UB_j - LB_j), \quad r \sim U(0,1). Xi,j=LBj+r⋅(UBj−LBj),r∼U(0,1).
依据下式计算猎人数量与侦察兵数量:
Nh=⌊N⋅p9⌋,Ns=N−Nh. N_h = \left\lfloor \frac{N \cdot p}{9} \right\rfloor, \quad N_s = N - N_h. Nh=⌊9N⋅p⌋,Ns=N−Nh.
2.2 捕食距离与抓取判断
定义迭代依赖的有效距离 ldldld 与随机变换量 transtranstrans:
ld=vr⋅(1−tT),(10) ld = vr \cdot \left(1 - \frac{t}{T}\right), \tag{10} ld=vr⋅(1−Tt),(10)
trans=(2⋅rand−1)⋅ld,rand∼U(0,1).(11) trans = (2 \cdot \text{rand} - 1) \cdot ld, \quad \text{rand} \sim U(0,1). \tag{11} trans=(2⋅rand−1)⋅ld,rand∼U(0,1).(11)
判断规则:
- 若 trans<lltrans < lltrans<ll,则认为猎物(当前全局最优解)位于腕足可触及范围内,执行抓取模式更新;
- 若 trans≥lltrans \ge lltrans≥ll,则执行头部引导模式更新。
2.3 腕足更新
记第 iii 只猎人的第 jjj 条腕足的位置为 Ti,j\mathbf{T}_{i,j}Ti,j,头部位置为 Hi\mathbf{H}iHi,当前全局最优位置为 Pprey\mathbf{P}{\text{prey}}Pprey。
2.3.1 抓取模式(trans<lltrans < lltrans<ll)
选取距离猎物最近的腕足索引 idx=argminj∥Ti,j−Pprey∥\text{idx} = \arg\min_j \|\mathbf{T}{i,j} - \mathbf{P}{\text{prey}}\|idx=argminj∥Ti,j−Pprey∥,则所有腕足向该腕足与猎物的方向移动:
Ti,j:=Ti,j+rand⋅(Pprey−Ti,idx)⊙LF(D),(12) \mathbf{T}{i,j} := \mathbf{T}{i,j} + \text{rand} \cdot \left(\mathbf{P}{\text{prey}} - \mathbf{T}{i,\text{idx}}\right) \odot \mathbf{LF}(D), \tag{12} Ti,j:=Ti,j+rand⋅(Pprey−Ti,idx)⊙LF(D),(12)
其中 ⊙\odot⊙ 表示逐元素乘法,LF(D)\mathbf{LF}(D)LF(D) 为 Lévy 飞行向量。
2.3.2 头部引导模式(trans≥lltrans \ge lltrans≥ll)
腕足向本猎人的头部位置收缩:
Ti,j:=Hi+rand⋅(Hi−Ti,j)⊙LF(D).(15) \mathbf{T}_{i,j} := \mathbf{H}_i + \text{rand} \cdot \left(\mathbf{H}i - \mathbf{T}{i,j}\right) \odot \mathbf{LF}(D). \tag{15} Ti,j:=Hi+rand⋅(Hi−Ti,j)⊙LF(D).(15)
2.4 Lévy 飞行
Lévy 飞行用于增强搜索的随机性与长程跳跃能力,其生成方式如下:
LF(D)=0.01⋅u⊙σ∣v∣1/β,(13) \mathbf{LF}(D) = 0.01 \cdot \frac{\mathbf{u} \odot \boldsymbol{\sigma}}{|\mathbf{v}|^{1/\beta}}, \tag{13} LF(D)=0.01⋅∣v∣1/βu⊙σ,(13)
σ=(Γ(1+β)⋅sin(πβ2)Γ(1+β2)⋅β⋅2(β−1)/2)1/β,(14) \boldsymbol{\sigma} = \left( \frac{\Gamma(1+\beta) \cdot \sin(\frac{\pi\beta}{2})}{\Gamma(\frac{1+\beta}{2}) \cdot \beta \cdot 2^{(\beta-1)/2}} \right)^{1/\beta}, \tag{14} σ=(Γ(21+β)⋅β⋅2(β−1)/2Γ(1+β)⋅sin(2πβ))1/β,(14)
其中:
- u,v∈RD\mathbf{u}, \mathbf{v} \in \mathbb{R}^Du,v∈RD,各分量独立服从标准正态分布 N(0,1)\mathcal{N}(0,1)N(0,1);
- β=1.5\beta = 1.5β=1.5 为常数;
- Γ(⋅)\Gamma(\cdot)Γ(⋅) 为伽马函数。
2.5 猎人头部更新
每轮腕足更新后,猎人头部更新为其八条腕足中适应度最优(最小化目标 fff)的位置:
Hi:=argminj∈{1,...,8}f(Ti,j).(隐含) \mathbf{H}i := \arg\min{j \in \{1,\dots,8\}} f(\mathbf{T}_{i,j}). \tag{隐含} Hi:=argj∈{1,...,8}minf(Ti,j).(隐含)
2.6 侦察兵生成与角色转换
从所有猎人的头部集合中选取 NsN_sNs 个位置,具体包括:
- 全局最优头部 Hbest\mathbf{H}_{\text{best}}Hbest;
- 全局最差头部 Hworst\mathbf{H}_{\text{worst}}Hworst;
- 随机选取的 Ns−2N_s-2Ns−2 个不同头部(不含上述两者)。
第 zzz 个侦察兵的位置 Sz\mathbf{S}_zSz 由对应的猎人头部 Hz\mathbf{H}_zHz 生成:
Sz=Hz+rand⋅ld⋅(UB+LB−2Hz).(16) \mathbf{S}_z = \mathbf{H}_z + \text{rand} \cdot ld \cdot \left( \mathbf{UB} + \mathbf{LB} - 2 \mathbf{H}_z \right). \tag{16} Sz=Hz+rand⋅ld⋅(UB+LB−2Hz).(16)
若 f(Sz)<f(Hz)f(\mathbf{S}_z) < f(\mathbf{H}_z)f(Sz)<f(Hz),则侦察兵转化为新猎人,更新头部并重新初始化八条腕足:
Hz:=Sz,(17) \mathbf{H}_z := \mathbf{S}z, \tag{17} Hz:=Sz,(17)
Tz,i:=rand⋅(Sz+ll)−(Sz−ll),i=1,...,8.(18) \mathbf{T}{z,i} := \text{rand} \cdot (\mathbf{S}_z + ll) - (\mathbf{S}_z - ll), \quad i=1,\dots,8. \tag{18} Tz,i:=rand⋅(Sz+ll)−(Sz−ll),i=1,...,8.(18)
3 算法步骤

| 步骤 | 描述 |
|---|---|
| 1 | 初始化参数 T,N,D,vr,ll,pT, N, D, vr, ll, pT,N,D,vr,ll,p。 |
| 2 | 随机生成初始种群 X∈RN×D\mathbf{X} \in \mathbb{R}^{N \times D}X∈RN×D。 |
| 3 | 根据 Nh=⌊Np/9⌋N_h = \lfloor N p / 9 \rfloorNh=⌊Np/9⌋,Ns=N−NhN_s = N - N_hNs=N−Nh 划分猎人/侦察兵,构建猎人结构(每个猎人包含头部与8条腕足)。 |
| 4 | 计算所有个体的适应度,确定全局最优 Pprey\mathbf{P}_{\text{prey}}Pprey。 |
| 5 | for t=1t = 1t=1 to TTT do |
| 6 | ld=vr⋅(1−t/T)\quad ld = vr \cdot (1 - t/T)ld=vr⋅(1−t/T)。 |
| 7 | \quad for 每只猎人 i=1i = 1i=1 to NhN_hNh do |
| 8 | trans=(2⋅rand−1)⋅ld\qquad trans = (2 \cdot \text{rand} - 1) \cdot ldtrans=(2⋅rand−1)⋅ld。 |
| 9 | \qquad if trans<lltrans < lltrans<ll then |
| 10 | \qquad\quad 按公式 (12) 更新该猎人的所有腕足。 |
| 11 | \qquad else |
| 12 | \qquad\quad 按公式 (15) 更新该猎人的所有腕足。 |
| 13 | \qquad end if |
| 14 | \qquad 更新该猎人头部为八条腕足中的最优位置。 |
| 15 | \quad end for |
| 16 | \quad 从猎人头部集合中选择 Hbest,Hworst\mathbf{H}{\text{best}}, \mathbf{H}{\text{worst}}Hbest,Hworst 及 Ns−2N_s-2Ns−2 个随机头部。 |
| 17 | \quad for 每个侦察兵 z=1z = 1z=1 to NsN_sNs do |
| 18 | \qquad 按公式 (16) 生成 Sz\mathbf{S}_zSz。 |
| 19 | \qquad if f(Sz)<f(Hz)f(\mathbf{S}_z) < f(\mathbf{H}_z)f(Sz)<f(Hz) then |
| 20 | \qquad\quad 按公式 (17)-(18) 将侦察兵转化为猎人。 |
| 21 | \qquad end if |
| 22 | \quad end for |
| 23 | \quad 更新全局最优 Pprey\mathbf{P}_{\text{prey}}Pprey。 |
| 24 | end for |
| 25 | 输出 Pprey\mathbf{P}_{\text{prey}}Pprey。 |
4、性能评估

clear;
clc;
close all;
warning off all;
SearchAgents_no=30; %Number of search solutions
Max_iteration=100; %Maximum number of iterations
Function_name='F7'; % Name of the test function
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_F(Function_name);
tic;
[Best_score,Best_pos,cg_curve,search_history,ave_fit,x_1st]=OOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
tend=toc
Best_score
%% plot
figure(1);
set(gcf, 'Position', [150, 350, 1500, 300]);




5、参考文献
-
Song M, Lin J, Liu X, et al. Octopus optimization algorithm: a novel single- and multi-objective optimization algorithm for optimization problems [J]. Cluster Computing, 2025, 28(8): 484.
-
Wang K, Abualigah L, Smerat A, et al. A nature recoil mechanism-based Octopus optimization algorithm for solving the global and constraint optimization from engineering structural design problems [J]. Journal of Computational Design and Engineering, 2025, qwaf139. DOI: 10.1093/jcde/qwaf139