【群智能算法】猎人猎物优化算法 HPO算法【Matlab代码#48】

文章目录

    • 【`获取资源`请见文章第4节:资源获取】
    • 1. 猎人猎物优化算法(HPO)
    • 2. 部分代码展示
    • 3. 仿真结果展示
    • 4. 资源获取说明


获取资源请见文章第4节:资源获取】


1. 猎人猎物优化算法(HPO)

猎人猎物优化算法(Hunter-Prey Optimization, HPO)是2022年Naruei等人提出的一种新型智能优化算法。该算法的思想来自于对动物狩猎过程的模拟,它具有收敛速度快、寻优能力强等优点。

HPO算法首先会随机初始化种群在解空间中的位置,种群初始化公式如下所示:
在这里插入图片描述
其中, x i x_{i} xi表示第 i i i个猎人或者猎物的位置, i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N N N N表示种群数量; l b lb lb u b ub ub分别表示搜索空间的上下限; r a n d ( 1 , d ) rand(1,d) rand(1,d)表示0-1之间的随机数, d = 1 , 2 , . . . , D d=1,2,...,D d=1,2,...,D D D D表示搜索空间的维数。

猎人通过如下公式来进行位置更新:
在这里插入图片描述
其中, x ( t ) x(t) x(t) x ( t + 1 ) x(t+1) x(t+1)表示猎人当前迭代和下一次迭代的位置; P p o s P_{pos} Ppos表示猎物的位置; μ \mu μ表示所有位置的平均值; Z Z Z是一个自适应参数,公式如下:
在这里插入图片描述
其中, r 1 r_{1} r1 r 3 r_{3} r3是0-1之间的随机数构成的向量; P P P为0或者1构成的向量; r 2 r_{2} r2表示0-1之间的随机数; I D X IDX IDX表示向量 r 1 r_{1} r1中满足条件 P = = 0 P==0 P==0的索引值构成的向量; C C C为平衡算法开发和探索行为的参数,它的值在迭代过程中由1递减到0.02。

距离平均位置 μ \mu μ最远的个体被视为猎物 P p o s P_{pos} Ppos
在这里插入图片描述
在实际捕猎过程中,如果猎人捕获到了猎物,猎人会移动到新的猎物位置。这种机制可以被描述如下:
在这里插入图片描述
n n n表示种群的数量。在算法的初始阶段, k b e s t = N kbest=N kbest=N。在算法的迭代过程中,猎人会选择离平均位置最远的个体作为猎物然后攻击它, k b e s t kbest kbest会逐渐下降。在算法的末了阶段, k b e s t kbest kbest会等于距离最短的第一个个体。
在这里插入图片描述
当猎物被攻击时,它会试图逃离局部最优位置,它可能会有较大的逃生机会,此时猎人会选择其他猎物。猎物的更新公式如下:
在这里插入图片描述
其中, x ( t ) x(t) x(t) x ( t + 1 ) x(t+1) x(t+1)分别表示当前迭代和下一次迭代中猎物的位置; T p o s 是全局最优位置 T_{pos}是全局最优位置 Tpos是全局最优位置 r 4 r_{4} r4是-1到1之间的随机数。

综合上面的公式,猎人或者猎物的更新公式可以被描述为:
在这里插入图片描述
其中, r 5 r_{5} r5是0-1之间的随机数。

2. 部分代码展示

clear;clc;close all

Search_no=30;   % Number of search agent
F_name='F12';    % Name of the test function F1-f23
M_Iter=1000;    % Maximum number of iterations
 
[lb,ub,dim,fobj]=Get_F(F_name); %Give details of the underlying benchmark function

[Best_FF,Best_P,Conv_curve]=HPO(Search_no,M_Iter,lb,ub,dim,fobj); % Call the AOA 

figure('Position',[454   445   694   297]);
subplot(1,2,1);
func_plot(F_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([F_name,'( x_1 , x_2 )'])

subplot(1,2,2);
semilogy(Conv_curve,'Color','r','LineWidth',2)
title('Convergence curve')
xlabel('Iteration');
ylabel('Best fitness function');
axis tight
legend('HPO')

display(['The best-obtained solution by HPO is : ', num2str(Best_P)]);
display(['The best optimal value of the objective funciton found by HPO is : ', num2str(Best_FF)]);

3. 仿真结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 资源获取说明

可以获取完整代码资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36526.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【小沐学C++】libcurl实现HTTP/HTTPS请求

文章目录 1、简介2、下载和编译2.1 下载2.2 编译2.3 使用 3、命令行测试3.1 获取文件头Headers3.2 请求内容Request Content3.3 响应内容Response Content3.4 GET请求3.5 POST请求3.6 其他 4、代码测试3.1 simple.c3.2 url2file.c3.3 simplepost.c3.4 resolve.c3.5 progressfun…

Java语言程序设计试卷6套

目录 Java语言程序设计试卷1 一、单项选择题 二、多项选择题 三、判断题 Java语言程序设计试卷2 一、单项选择题 二、多项选择题 三、判断题 Java语言程序设计试卷3 一、单项选择题 二、多项选择题 三、判断题 Java语言程序设计试卷4 一、单项选择题 二、多项选…

PROFINET转ETHERNET/IP网关西门子通讯协议profinet

大家好,今天我们来聊一款令人兴奋的产品——远创智控YC-PN-EIP!它是一款自主研发的 PROFINET 从站功能的通讯网关,可以将 PROFINET网络和ETHERNET/IP 网络连接起来,实现数据传输和交换。但这只是它的基础功能,它还有哪…

HTTP与HTTPS

HTTP与HTTPS介绍 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息&…

【面试题27】Redis中的connect和pconnect如何使用,有什么区别

文章目录 一、背景二、connect函数三、pconnect函数四、区别和使用场景五、总结 一、背景 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列,欢迎大家提前关注锁定。 Redis是一个开…

协议逆向工程(图

协议逆向工程流程图 协议状态机推断的一般示例 状态机方法时间轴

Acwing.859 Kruskal算法求最小生成树(Kruskal算法)

题目 给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G(V,E),其中V表示图中点的集合,E表示图中边…

全网首发,Python解决某象滑动还原验证码100%还原

与一般的滑动验证码不同,某象的滑动还原验证码是将图像上下两块分割,然后在随机一块往右移动,将两块拼图移动成完整的图像才算成功,事实上,解决这类验证码比普通的验证码还要简单 数据集: 我随机采集了某象任意张数据集,将其标注好,top和down代表的是原图中上面还是下面…

嵌入式开发之串口通讯

串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低&…

前后端实现导出导入功能

目录 导出 1.后端代码 (1)相关依赖 (2)自定义实体类 (3)写一个查询方法list (4)写导出接口 2.前端代码 3.效果示例 导入 1.后端代码 (1)写导入接口 …

用 Nginx 禁止国外 IP 访问我的网站...

先来说说为啥要写这篇文章,之前看了下 Nginx 的访问日志,发现每天有好多国外的 IP 地址来访问我的网站,并且访问的内容基本上都是恶意的。因此我决定禁止国外 IP 来访问我的网站。 想要实现这个功能有很多方法,下面我就来介绍基于…

OSPFv2基础03_综合实验

目录 1.创建OSPF进程 2.创建OSPF区域 3.使能OSPF 4.创建虚连接(可选) 5.OSPF常用命令 6.实验配置步骤 7.实验效果 1.创建OSPF进程 OSPF是一个支持多进程的动态路由协议,OSPF多进程可以在同一台路由器上运行多个不同的OSPF进程&#x…

JDK,JRE,JVM的区别

1.JVM JVM,也叫java虚拟机,用来运行字节码文件,可将字节码翻译为机器码,JVM是实现java跨平台的关键,可以让相同的java代码在不同的操作系统上运行出相同的结果。 2.JRE JRE,也叫java运行时环境&#xff…

医疗金融法律大模型:从ChatDoctor到FinBERT/FinGPT/BloombergGPT、ChatLaw/LawGPT_zh

第一部分 各种医疗类ChatGPT:或中英文数据微调LLaMA、或中文数据微调ChatGLM 1.1 基于LLaMA微调的国内外医疗问答模型 1.1.1 ChatDoctor:通过self-instruct技术提示API的数据和医患对话数据集微调LLaMA Github上有一个基于LLaMA模型的医疗微调模型&am…

MySQL基础篇第3章(基本的SELECT语句)

文章目录 1、SQL概述1.1 SQL背景知识1.2 SQL分类 2、SQL语言的规则与规范2.1 基本规则2.2 SQL大小写规范 (建议遵守)2.3 注释2.4 命名规则2.5 数据导入指令 3、基本的SELECT语句3.0 SELECT...3.1 SELECT...FROM3.2 列的别名3.3 去除重复行3.4 空置参与运…

【JAVA】这几个JAVA学习网站你绝不能错过(教学课程篇)

个人主页:【😊许思王】 文章目录 前言HOW2J.CNw3cschool菜鸟教程慕课网开课吧黑马程序员B站 前言 JAVA很难学?学不会怎么办?找对学习网站,让你轻松解决困难。 HOW2J.CN HOW2J.CN是我自认为最好的JAVA学习网站&#x…

Docker私有仓库搭建与界面化管理

一、关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。 但是有时候我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Regi…

5.EFLK(ELK+filebeat)+filter过滤

文章目录 EFLK(ELKfilebeat)部署filebeat修改配置文件logstash配置 logstash的filter过滤grok(正则捕获插件)内置正则表达式调用自定义表达式 mutate(数据修改插件)重命名字段添加字段删除字段转换数据类型替换字段内容以"|"为分割符拆分数据成…

抖音seo源码部署搭建--代码分享

一、 开发环境搭建 抖音SEO源码部署环境搭建可以分为以下几个步骤: 安装必要的软件和工具:需要安装Node.js、NPM、Git等软件和工具,具体安装方法可以参考官方文档。 下载源码:从GitHub或其他源码托管平台下载抖音SEO源码。 安装…

Failed to start connector [Connector[HTTP/1.1-8080]]

1、解决Web server failed to start. Port 8080 was already in use 2、SpringBoot启动报错:“Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.” 3、Failed to start end point associated with Proto…