2025最新智能优化算法:鹰鱼优化算法(HawkFish Optimization Algorithm,HFOA)求解23个经典函数测试集,MATLAB

一、 鹰鱼优化算法

鹰鱼优化算法(HawkFish Optimization Algorithm,HFOA)是2025年提出的一种新颖的元启发式优化算法,灵感来源于鹰鱼的性别转换行为。该算法通过引入双适应度函数、动态聚类和视觉范围调整等机制,有效平衡了搜索空间的探索和开发,避免了局部最优解的陷入,提高了优化效率和解的质量。算法在解决复杂优化问题时表现出色,优于其他传统优化算法。

数学模型

鹰鱼优化算法的数学模型主要基于鹰鱼的性别转换行为和觅食行为。算法中,每个个体(人工鱼)的位置、适应度值、移动方式等都通过数学公式进行描述。

性别转换模型

设 p ( t ) p(t) p(t)表示在时间 t t t时种群中雌性的比例, q ( t ) q(t) q(t)表示雄性的比例:

p ( t ) + q ( t ) = 1 p(t) + q(t) = 1 p(t)+q(t)=1

初始时,假设所有鹰鱼都是雌性,因此 p ( 0 ) = 1 p(0) = 1 p(0)=1且 q ( 0 ) = 0 q(0) = 0 q(0)=0。

设 d ( t ) d(t) d(t)表示在时间 t t t时的食物可用性,其中 d ( t ) > 0 d(t) > 0 d(t)>0表示食物充足, d ( t ) = 0 d(t) = 0 d(t)=0表示没有食物。

雌性比例的变化率可以表示为:

d p d t = − a × p × ( 1 − d ( t ) ) \frac{dp}{dt} = -a \times p \times (1 - d(t)) dtdp=−a×p×(1−d(t))

其中, a a a是一个表示性别变化率的常数。

雄性比例的变化率可以表示为:

d q d t = a × p × ( 1 − d ( t ) ) \frac{dq}{dt} = a \times p \times (1 - d(t)) dtdq=a×p×(1−d(t))

适应度函数

在优化问题中,适应度函数用于评估个体的优劣。对于最小化问题,适应度函数可以定义为:

f i t n e s s ( x ) = f ( x ) fitness(x) = f(x) fitness(x)=f(x)

个体移动模型

每个个体的移动由以下公式决定:

x ( i , j ) = x ( i , j ) + s ( i , j ) × d ( i , j ) x(i,j) = x(i,j) + s(i,j) \times d(i,j) x(i,j)=x(i,j)+s(i,j)×d(i,j)

其中, x ( i , j ) x(i,j) x(i,j)是第 i i i条鱼的第 j j j个位置元素, s ( i , j ) s(i,j) s(i,j)是第 i i i条鱼的步长, d ( i , j ) d(i,j) d(i,j)是第 i i i条鱼的方向向量元素。

动态聚类

计算种群中个体之间的距离矩阵 D D D,其中 D ( i , j ) D(i,j) D(i,j)表示第 i i i条鱼和第 j j j条鱼之间的距离。然后使用基于欧几里得距离的聚类算法将种群划分为 k k k个聚类 C 1 , C 2 , ... , C k C_1, C_2, \ldots, C_k C1,C2,...,Ck。

学习机制

每个个体在子种群内向邻居学习,更新位置的公式为:

x ( i , j ) = x ( i , j ) + w × ( x ( j b e s t , j ) − x ( i , j ) ) x(i,j) = x(i,j) + w \times (x(j_{best},j) - x(i,j)) x(i,j)=x(i,j)+w×(x(jbest,j)−x(i,j))

其中, x ( j b e s t , j ) x(j_{best},j) x(jbest,j)是子种群中最佳个体的第 j j j个位置元素, w w w是学习系数。

步长和方向向量更新

步长和方向向量的更新公式为:

s ( i , j ) = s ( i , j ) + α × r × ( x g l o b a l ( j ) − x ( i , j ) ) s(i,j) = s(i,j) + \alpha \times r \times (x_{global}(j) - x(i,j)) s(i,j)=s(i,j)+α×r×(xglobal(j)−x(i,j))

d ( i , j ) = d ( i , j ) + β × r × ( x ( i , j ) − x l o c a l ( j ) ) d(i,j) = d(i,j) + \beta \times r \times (x(i,j) - x_{local}(j)) d(i,j)=d(i,j)+β×r×(x(i,j)−xlocal(j))

其中, α \alpha α和 β \beta β是学习系数, r r r是0到1之间的随机数, x g l o b a l ( j ) x_{global}(j) xglobal(j)是全局最佳个体的第 j j j个位置元素, x l o c a l ( j ) x_{local}(j) xlocal(j)是局部最佳个体的第 j j j个位置元素。

算法流程

  1. 初始化参数:种群大小 N N N、维度 n n n、子种群数 k k k、全局学习系数 α \alpha α、局部学习系数 β \beta β、子种群学习系数 w w w、最大迭代次数 m a x _ i t e r a t i o n s max\_iterations max_iterations。
  2. 在搜索空间中随机初始化人工鱼种群。
  3. 对于每次迭代:
    • 使用两个适应度函数 f 1 ( x ) f_1(x) f1(x)和 f 2 ( x ) f_2(x) f2(x)评估每条鱼的适应度。
    • 根据适应度更新每条鱼的位置。
    • 移动后重新评估每条鱼的适应度。
    • 将种群聚类成 k k k个子种群以增加多样性。
    • 在每个子种群内执行鱼学习。
    • 更新每条鱼的步长和方向向量。
  4. 返回找到的全局最佳解。

算法描述

鹰鱼优化算法是一种受鹰鱼性别转换行为启发的元启发式优化算法。算法通过模拟鹰鱼的觅食行为和性别转换,动态调整种群中的个体角色和搜索策略,以平衡探索和开发,避免局部最优,提高优化效率。

动态性别转换策略

根据食物可用性 F F F与预定义阈值 F t h r e s h o l d F_{threshold} Fthreshold的比较,动态改变每条鱼的性别。如果 F > F t h r e s h o l d F > F_{threshold} F>Fthreshold,则改变鱼的性别(例如,雄性变为雌性,反之亦然)。

视觉范围调整

为雄性和雌性子种群分配独特的视觉范围 V m a l e V_{male} Vmale和 V f e m a l e V_{female} Vfemale。在评估适应度和更新位置时,每条鱼仅考虑其对应视觉范围内的其他鱼。

位置更新

使用以下公式更新每条鱼的位置:

x f ( t + 1 ) = x f ( t ) + s t e p _ s i z e × ( x c e n t e r − x f ( t ) ) x_f(t+1) = x_f(t) + step\size \times (x{center} - x_f(t)) xf(t+1)=xf(t)+step_size×(xcenter−xf(t))

其中, x f ( t ) x_f(t) xf(t)是鱼 f f f在迭代 t t t时的位置, s t e p _ s i z e step\size step_size是预定义参数, x c e n t e r x{center} xcenter是对应子种群的中心位置。

中心位置计算

子种群 P m a l e P_{male} Pmale或 P f e m a l e P_{female} Pfemale的中心位置计算公式为:

x c e n t e r = 1 ∥ P m a l e ∥ 或 ∥ P f e m a l e ∥ × ∑ x j x_{center} = \frac{1}{\|P_{male}\| \text{或} \|P_{female}\|} \times \sum x_j xcenter=∥Pmale∥或∥Pfemale∥1×∑xj

其中, x j x_j xj是相应子种群中第 j j j条鱼的位置。

邻居搜索

在视觉范围内寻找邻居鱼 N f N_f Nf,并根据最佳邻居鱼 x n b e s t x_{nbest} xnbest更新鱼 f f f的位置:

x f ( t + 1 ) = x f ( t ) + s t e p _ s i z e × ( x n b e s t − x f ( t ) ) x_f(t+1) = x_f(t) + step\size \times (x{nbest} - x_f(t)) xf(t+1)=xf(t)+step_size×(xnbest−xf(t))


二、23个函数介绍

参考文献:

1 Yao X, Liu Y, Lin G M. Evolutionary programming made fasterJ. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

三、部分代码及结果

dart 复制代码
clear;
clc;
close all;
warning off all;

SearchAgents_no=50;    %Number of search solutions
Max_iteration=500;    %Maximum number of iterations

Func_name='F1'; % Name of the test function

% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_F(Func_name); 

tic;
[Best_score,Best_pos,cg_curve]=(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); 
tend=toc;

% figure('Position',[500 500 901 345])
%Draw search space
subplot(1,2,1);
func_plot(Func_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Func_name,'( x_1 , x_2 )'])

%Draw objective space
subplot(1,2,2);
semilogy(cg_curve,'Color','m',LineWidth=2.5)
title(Func_name)

% title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');

axis tight
grid on
box on
legend('')

display(['The running time is:', num2str(tend)]);
display(['The best fitness is:', num2str(Best_score)]);
display(['The best position is: ', num2str(Best_pos)]);



四、完整MATLAB代码见下方名片

相关推荐
江畔柳前堤15 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术15 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客15 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术16 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO17 小时前
GEO技术服务选型指南
大数据·人工智能·python
普通攻击往后拉17 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
阿里云大数据AI技术17 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架17 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab17 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI17 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算