当前位置: 首页 > news >正文

高性能算法NGO!北方苍鹰优化算法(Northern Goshawk Optimization,NGO)

北方苍鹰优化(NGO)算法模拟了北方苍鹰在猎物狩猎过程中的行为。这种狩猎策略包括猎物识别和尾巴和追逐过程两个阶段。描述了所提出的NGO算法的各个步骤,然后提出了其数学建模,用于解决优化问题。2022年,Mohammad等人提出了。

Ⅰ、灵感来源

北方苍鹰捕食和捕捉猎物的行为是一个智能过程。上述策略的数学建模是设计所提出的NGO算法的主要灵感。

Ⅱ、算法原理简介

在设计所提出的更新种群成员的NGO算法时,采用了北方苍鹰狩猎策略的模拟。北方苍鹰在该策略中的两种主要行为,包括(1)猎物识别和攻击以及(2)追逐和逃跑操作分两个阶段进行模拟。

2.1 算法初始化过程

x = l b + r a n d ∗ ( u b − l b ) x = lb + rand * (ub - lb) x=lb+rand(ublb)

其中, u b , l b ub, lb ub,lb 分别代表北方苍鹰上下位置边界。

(1)第一阶段:猎物识别(探索)

北方苍鹰在狩猎的第一阶段,随机选择一个猎物,然后快速攻击它。由于在搜索空间中随机选择猎物,这一阶段增加了非政府组织的探索能力。这一阶段导致对搜索空间的全局搜索,目的是确定最佳区域。这一阶段涉及猎物选择和攻击的北方苍鹰行为示意图如图2所示。第一阶段中表达的概念使用(3)到(5)进行数学建模。
P i = X k , i  ⁣ =  ⁣ 1 , 2 ,  ⁣ … , N , k  ⁣ =  ⁣ 1 , 2 ,  ⁣ … , i  ⁣ −  ⁣ 1 , i  ⁣ +  ⁣ 1 ,  ⁣ … , N ,  ⁣ x i , j n e w , P 1 = { x i , j + r ( p i , j − I    x i , j ) , F P i < F i , x i , j + r ( x i , j −    p i , j ) , F P i ≥ F i , X i = { X i n e w , P 1 , F i n e w , P 1 < F i , X i , F i n e w , P 1 ≥ F i , \begin{align*} P_{i}=&X_{k},i\!=\!1,2,\!\ldots,N,k\!=\!1,2,\!\ldots,i\!-\!1,i\!+\!1,\!\ldots,N, \! \\ \tag{3}\\ x_{i,j}^{new,P1}=&\begin{cases} {x_{i,j} +r\left ({{p_{i,j} -I\;x_{i,j}} }\right),} & {F_{P_{i}} < F_{i},} \\ {x_{i,j} +r\left ({{x_{i,j} -\;p_{i,j}} }\right),} & {F_{P_{i}} \ge F_{i},} \\ \end{cases} \tag{4}\\ X_{i}=&\begin{cases} {X_{i}^{new,P1},} & {F_{i}^{new,P1} < F_{i},} \\ {X_{i},} & {F_{i}^{new,P1} \ge F_{i},} \\ \end{cases}\tag{5}\end{align*} Pi=xi,jnew,P1=Xi=Xk,i=1,2,,N,k=1,2,,i1,i+1,,N,{xi,j+r(pi,jIxi,j),xi,j+r(xi,jpi,j),FPi<Fi,FPiFi,{Xinew,P1,Xi,Finew,P1<Fi,Finew,P1Fi,(3)(4)(5)

其中, P i P_i Pi 是第 i i i 只北方苍鹰猎物的位置, F P i F_{P_i} FPi 是其目标函数值, k k k 是区间 [1, N N N] 内的随机自然数, X i n e w , P 1 X_i^{new,P1} Xinew,P1 是第 i i i 个提议解的新状态, x i , j n e w , P 1 x_{i,j}^{new,P1} xi,jnew,P1 是其第 j j j 维, F i n e w , P 1 F_i^{new,P1} Finew,P1 是基于 NGO 第一阶段的目标函数值, r r r 是区间 [0, 1] 内的随机数, I I I 是可以是 1 或 2 的随机数。参数 r r r I I I 是用于生成搜索和更新中随机 NGO 行为的随机数。
图2

(2)第二阶段:追逐和逃逸操作(开发)

北方苍鹰攻击猎物后,猎物试图逃脱。因此,在尾随和追逐过程中,北方苍鹰继续追逐猎物。由于北方苍鹰的高速度,它们几乎可以在任何情况下追逐它们的猎物并最终捕猎。模拟这种行为增加了算法对搜索空间局部搜索的利用能力。在提出的 NGO 算法中,假设这种狩猎接近于半径为 ( R ) 的攻击位置。北方苍鹰和猎物之间的追逐过程如图 3 所示。第二阶段表达的概念使用公式 (6) 到 (8) 进行数学建模。

x i , j n e w , P 2 = x i , j + R ( 2 r − 1    ) x i , j , R = 0.02 ( 1 − t T ) , X i = { X i n e w , P 2 , F i n e w , P 2 < F i , X i , F i n e w , P 2 ≥ F i . \begin{align*} x_{i,j}^{new,P2}=&x_{i,j} +R \left ({{2r-1\;} }\right) x_{i,j}, \tag{6}\\ R=&0.02 \left ({{1-\frac {t}{T}} }\right), \tag{7}\\ X_{i}=&\begin{cases} X_{i}^{new,P2}, & {F_{i}^{new,P2} < F_{i},} \\ X_{i}, & F_{i}^{new,P2} \ge F_{i}. \end{cases}\tag{8}\end{align*} xi,jnew,P2=R=Xi=xi,j+R(2r1)xi,j,0.02(1Tt),{Xinew,P2,Xi,Finew,P2<Fi,Finew,P2Fi.(6)(7)(8)

其中t 是迭代计数器,T 是最大迭代次数, X i n e w , P 2 X_i^{new,P2} Xinew,P2是第i个提议解的新状态, x i , j n e w , P 2 x_{i,j}^{new,P2} xi,jnew,P2 是其第j 维, F i n e w , P 2 F_i^{new,P2} Finew,P2 是基于 NGO 第二阶段的目标函数值。

Ⅲ、完整代码

Dehghani M, Hubálovský Š, Trojovský P. Northern goshawk optimization: a new swarm-based algorithm for solving optimization problems[J]. Ieee Access, 2021, 9: 162059-162080. doi: 10.1109/ACCESS.2021.3133286

% 北方苍鹰优化算法
function [Best_pos, Best_fitness, Iter_curve] = NGO(pop, maxIter, lb, ub, dim,fobj)

	X_new=[];
	fit=[];
	fit_new=[];
	Iter_curve=zeros(1,maxIter);
	%% 初始化种群
	X = zeros(pop, dim);
	for i = 1:pop
	    for j = 1:dim
	        X(i,j) = (ub(j) - lb(j)) * rand() + lb(j);
	    end
	end
	%% 计算适应度
	for i =1:pop
	    L=X(i,:);
	    fit(i)=fobj(L);                  
	end
	%% 迭代
	for t=1:maxIter
	    [best , blocation]=min(fit);
	    
	    if t==1
	        xbest=X(blocation,:);                                          
	        fbest=best;                                          
	    elseif best<fbest
	        fbest=best;
	        xbest=X(blocation,:);
	    end
	        
	    for i=1:pop
	        %% 识别与攻击
	        I=round(1+rand);
	        k=randperm(pop,1);
	        P=X(k,:); % Eq. (3)
	        F_P=fit(k);
	        
	        if fit(i)> F_P
	            X_new(i,:)=X(i,:)+rand(1,dim) .* (P-I.*X(i,:)); % Eq. (4)
	        else
	            X_new(i,:)=X(i,:)+rand(1,dim) .* (X(i,:)-P); % Eq. (4)
	        end
	        % 边界约束
	        X_new(i,:) = max(X_new(i,:),lb);
	        X_new(i,:) = min(X_new(i,:),ub);
	        
	        % Eq (5)
	        L=X_new(i,:);
	        fit_new(i)=fobj(L);
	        if(fit_new(i)<fit(i))
	            X(i,:) = X_new(i,:);
	            fit(i) = fit_new(i);
	        end
	        
	        % 追逐和逃避
	        R=0.02*(1-t/maxIter);% Eq.(6)
	        X_new(i,:)= X(i,:)+ (-R+2*R*rand(1,dim)).*X(i,:);% Eq.(7)
	        
	        X_new(i,:) = max(X_new(i,:),lb);X_new(i,:) = min(X_new(i,:),ub);
	        
	        % update position based on Eq (8)
	        L=X_new(i,:);
	        fit_new(i)=fobj(L);
	        if(fit_new(i)<fit(i))
	            X(i,:) = X_new(i,:);
	            fit(i) = fit_new(i);
	        end
	    end
	
	    best_so_far(t)=fbest;
	    average(t) = mean (fit);
	    Best_fitness=fbest;
	    Best_pos=xbest;
	    Iter_curve(t)=Best_fitness;
	end
end

相关文章:

  • 解决JDK 序列化导致的 Redis Key 非预期编码问题
  • 手写简易Tomcat核心实现:深入理解Servlet容器原理
  • 萌新学 Python 之面向对象的下划线控制权限访问
  • PHP:phpstudy无法启动MySQL服务问题解决
  • Java基础面试题全集
  • 快速使用MASR V3版不能语音识别框架
  • 动态规划完全背包系列一>完全背包
  • 动态规划详解(二):从暴力递归到动态规划的完整优化之路
  • 使用OpenCV和MediaPipe库——驼背检测(姿态监控)
  • 深度神经网络架构设计与工程实践 ——从理论到产业落地的全方位解析
  • leetcode 95.不同的二叉搜索树 Ⅱ
  • 设计AI芯片架构的入门 研究生入行数字芯片设计、验证的项目 opentitan
  • RISC-V汇编学习(三)—— RV指令集
  • MySQL 5.7.40 主从同步配置教程
  • kettle工具使用从入门到精通(一)
  • 高效计算新篇章:探秘稀疏注意力如何颠覆传统Transformer
  • 从0开始,手搓Tomcat
  • 【Docker】通过 Docker 拉取 Python 镜像并设置远程连接(SSH)
  • 在K8S中,svc底层是如何实现的?
  • 基于SpringBoot的“文物管理系统”的设计与实现(源码+数据库+文档+PPT)
  • 如果熊掌号做的不好会不会影响网站/百度竞价开户公司
  • 素材网站/360识图
  • 做网站简单吗/百度账号客服
  • 管理咨询网站建设/郑州网站制作公司哪家好
  • 网站建设装修/关键词优化seo公司
  • 天汇大厦网站建设公司/免费seo搜索优化