【群智能算法改进】一种改进的猎人猎物优化算法 IHPO算法[1]【Matlab代码#49】

news2024/11/25 20:28:56

文章目录

    • 【`获取资源`请见文章第5节:资源获取】
    • 1. 原始HPO算法
    • 2. 改进后的IHPO算法
      • 2.1 Cubic映射初始化
      • 2.2 透镜成像折射反向学习
      • 2.3 强制切换策略
    • 3. 部分代码展示
    • 4. 仿真结果展示
    • 5. 资源获取


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


1. 原始HPO算法

此算法详细介绍请参考HPO算法介绍

2. 改进后的IHPO算法

2.1 Cubic映射初始化

标准的Cubic映射函数可以表示为下式所示:
x n + 1 = b x n 3 − c x n x_{n+1}=bx_{n}^{3}-cx_{n} xn+1=bxn3cxn
其中,b,c为混沌影响因子,不同的b,c值Cubic映射的范围也不同。一般在 c ∈ ( 2.3 , 3 ) c\in (2.3,3) c(2.3,3)时,Cubic映射产生的序列为混沌状态。此外,当b = 1时, x n ∈ ( − 2 , 2 ) x_{n}\in (-2,2) xn(2,2);当b = 4时, x n ∈ ( − 1 , 1 ) x_{n}\in (-1,1) xn(1,1)

经过对Cubic映射进行最大Lyapunov指数的计算分析,可以得到如下常用的Cubic映射表达式:
x n + 1 = ρ x n ( 1 − x n 2 ) x_{n+1}=\rho x_{n}(1-x_{n}^{2}) xn+1=ρxn(1xn2)
其中, x n ∈ ( 0 , 1 ) x_{n}\in (0,1) xn(0,1) ρ \rho ρ为控制参数,Cubic映射的混沌性与参数 ρ \rho ρ的取值有着很大的关系。
本文中,参数 ρ \rho ρ的取值为 ( 1.5 , 3 ) (1.5,3) (1.5,3)。经过实验,取 x 0 = 0.3 , ρ = 2.595 x_{0}= 0.3, \rho=2.595 x0=0.3,ρ=2.595时,Cubic映射具有较好的混沌遍历性,仿真结果如下图所示:

在这里插入图片描述

2.2 透镜成像折射反向学习

透镜成像折射反向学习策略的思想来自于凸透镜成像的原理。通过基于当前坐标生成一个反向位置来扩展搜索范围,如图所示。
在这里插入图片描述

透镜成像折射反向学习原理图

在二维坐标中,x轴的搜索范围为(a, b), y轴表示一个凸透镜。假设物体A在x轴上的投影为x,高度为h,通过透镜成像,另一侧的图像为A*, A* 在x轴上的投影为x*,高度为h*。通过以上分析,我们可以得到如下公式:
( a + b ) / 2 − x x ∗ − ( a + b ) / 2 = h h ∗ \frac{(a+b)/2-x}{x^{*}-(a+b)/2 }=\frac{h}{h^{*}} x(a+b)/2(a+b)/2x=hh
对上面公式进行转换,即可得到反向解x*的表达式为:
x ∗ = a + b 2 + a + b 2 k − x k x^{*} =\frac{a+b}{2}+\frac{a+b}{2k}-\frac{x}{k} x=2a+b+2ka+bkx
其中, k = h / h ∗ k=h/h^{*} k=h/h a a a b b b可以视为某维度的上下限。本文中的 k k k是一个与迭代次数相关的动态自适应值。

2.3 强制切换策略

在原始HPO算法中,B参数扮演着十分重要的角色,它用于平衡算法的探索和开发能力。在原始HPO算法中,B取值固定为0.1,此值并不能反映算法目前适用于哪种更新公式,因此将其与随机数rand来比较从而决策出进行开发还是探索的方式并不妥。

本文提出了一种改进的B参数来替代原先的B参数,公式如下:
B = t a n h ∣ r a n d × ( F ( i ) − b F F ( i ) + b F ) ∣ B=tanh\left | rand\times (\frac{F(i)-bF}{F(i)+bF} ) \right | B=tanh rand×(F(i)+bFF(i)bF)
同时,考虑到这样的方式仍然可能陷入局部最优,所以为每个个体配置了一个计数器,如果连续迭代多次,都未能找到更优的解,就100%执行探索行为,而不执行开发行为。

3. 部分代码展示

clear;clc;close all

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

[Best_FF,Best_P,HPO_Curve]=HPO(Search_no,M_Iter,lb,ub,dim,fobj);   [Best_FF_IHPO,Best_P_IHPO,IHPO_Curve]=IHPO(Search_no,M_Iter,lb,ub,dim,fobj);

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(HPO_Curve,'Color','k','LineWidth',2)
hold on
semilogy(IHPO_Curve,'Color','r','LineWidth',2)
title('Convergence curve')
xlabel('Iteration');
ylabel('Best fitness function');
axis tight
legend('HPO','IHPO')

4. 仿真结果展示

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

5. 资源获取

可以获取完整代码资源。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3工程化项目搭建

Vue3工程化项目搭建 源码:vue3-quick-start 预览:vue3-quick-start 一、何为工程化 工程化概述 前端工程化大致可以分为模块化、组件化、规范化和自动化。 规范化 项目目录结构语法提示编码风格规范联调规范文件命名规范代码样式规范git flow 模块…

JS语法学习实战- 流程控制

JS语法学习实战- 流程控制 1. if - else2. switch3. for循环4. while循环5. 更多 JS语法学习实战系列合集 1. if - else if (条件1){条件1成立之后执行的代码 }else if(条件2){条件2成立之后执行的代码 }else{条件不成立之后执行的代码 }2. switch var daynew Date().getDay…

babel兼容低版本游览器

文章目录 1. webpack项目的搭建2. babel 命令行使用3. babel的预设与编译器流程4. babel项目中配置4.1 babel-loader与插件的使用4.2 babel-preset使用 5. 游览器兼容性使用5.1 browserslist工具与编写规则5.2 browserslist配置5.3 优化babel的配置文件 6. polyfill6.1 useBuil…

会声会影 Corel VideoStudio Ultimate 2023 v26.0.0.136 旗舰版百度网盘免费下载

会声会影 Corel VideoStudio Ultimate 2023 v26.0.0.136 旗舰版是一款易于使用,初学者也可以轻使用的,可自定义的 3D 标题、新的面部效果、动画 AR 贴纸、GIF 和摄像机移动过渡,让您轻松、直观地制作最佳视频。探索高级编辑工具,如…

JavaWeb——垃圾回收

目录 一、垃圾回收定义 二、垃圾回收处理内存区域 三、垃圾标记 1、引用计数 (1)、定义 (2)、缺陷 2、可达性分析 (1)、定义 (2)、缺点 四、垃圾回收过程 1、标记清除 &…

SAP MM 创建双单位采购信息记录

SAP创建不同基本单位的信息记录 1、前台维护MM01 2、ME11维护信息记录 3、通过BAPIBDC实现:ME_INFORECORD_MAINTAIN_MULTIMEK1录屏 因为单独使用ME_INFORECORD_MAINTAIN_MULTI创建信息记录无法创建双单位,创建第一个单位时可以,第二个就会报…

企业邮箱的成本与收费:了解真相,合理选择

企业邮箱的成本对于希望迁移到云端的企业来说可能是一个问题。但这并不一定是必须的。企业邮箱对于今天的企业来说是必不可少的,因为它们提供必要的工具和服务来帮助您与客户、合作伙伴和商业社区保持联系。企业邮箱的收费贵不贵?成本高么? 对…

【Linux】进程间通信 -- 信号量

概念引入为什么要信号量?信号量操作接口1.申请信号量semget2.控制信号量semctl3.处理信号量semop IPC资源的组织方式 概念引入 信号量是什么? 本质是一个计数器,通常用来表示公共资源中,资源数量多少的问题 公共资源&#xff1a…

BUUCTF-JustEscape

目录 信息搜集 bypass 黑名单机制 绕过沙盒执行系统命令 总结 这是一道 Node.js 沙盒逃逸的题目&#xff0c;在此记录一些技巧。 信息搜集 进入题目环境&#xff1a; 直接给出了一个可执行任意代码的入口 /run.php?code<code>&#xff0c;直接复制第二个 demo 的路…

常见安装工具以及命令(工作常用)

dockermongodbnginxredis 1.docker 启动2.docker 安装 MongoDB3.启动nginx4.redis配置&#xff0b;安装4.1 Redis的启动和停止4.2 后台启动方式 1.docker 启动 安装docker # 1.安装gcc和g yum -y install gcc yum -y install gcc-c # 2. 安装需要的软件包 yum install -y yum…

DNS详细解析

文章目录 DNS是什么以及作用下载DNS服务named.conf DNS查询DNS缓存机制解析过程递归查询和迭代查询 DNS服务器的类型DNS域名DNS服务器的类型搭建dns服务器缓存域名服务器主域名服务器从域名服务器排错反向解析 CDN介绍 DNS转发介绍配置 DNS劫持 DNS 是什么以及作用 DNS&#…

WEB:Web_php_include(多解)

背景知识 文件包含 file://协议 php://协议 data://协议 了解strstr函数 题目 <?php show_source(__FILE__); echo $_GET[hello]; /*可以构造payload*/ $page$_GET[page]; while (strstr($page, "php://")) { /*strstr()函数*/$pagestr_replace("php://&q…

JavaSwing+MySQL的购物系统项目

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88052733?spm1001.2014.3001.5503 JDK1.8 MySQL5.7 功能&#xff1a;管理员与用户两个角色&#xff0c;管理员可以对商品进行增删改查处理&#xff0c;用户可以浏览查找商品&#xff0c;注…

CROSSROADS1靶机复盘

CROSSROADS1靶机复盘 这个靶机学会了三个工具enum4linux&#xff0c;smbclient&#xff0c;stegoveritas。枚举服务器可能开启的一些资源&#xff0c;smb扫描工具&#xff0c;还有一个隐写术的工具。 靶场下载地址&#xff1a;https://download.vulnhub.com/crossroads/cross…

4.5.tensorRT基础(1)-onnx文件及其结构的学习,编辑修改onnx

目录 前言1. onnx1.1 导出onnx1.2 读取onnx1.3 创建onnx1.4 编辑onnx1.5 onnx总结1.6 本节知识点 2. 补充知识2.1 Protobuf2.1.1 Protobuf简介2.1.2 基本使用流程 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记…

【Nacos】适配PostgreSQL数据库

目录 本文环境介绍修改application.properties下载PostgreSQL扩展插件初始化PostgreSQL启动测试 本文环境介绍 组件依赖版本Nacos2.2.3OpenJDK17.0.2PostgreSQL Server15 修改application.properties ### Deprecated configuration property, it is recommended to use spri…

手搓一台简单的网络损伤仪——弱网测试

1、介绍 支持对链路带宽、传输时延、丢包率和无码率的手动设置&#xff1b; 1.1、网络损伤仪在使用时&#xff0c;网络拓扑连接 1.2、网络损伤仪管理页面展示 2、使用的设备及相关技术栈 一台Intel 赛扬 J1900的迷你主机【拥有4个千兆网口】&#xff1b;ubuntu-18.04.5-live…

(数组与矩阵) 剑指 Offer 04. 二维数组中的查找 ——【Leetcode每日一题】

❓ 剑指 Offer 04. 二维数组中的查找 难度&#xff1a;中等 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右 非递减 的顺序排序&#xff0c;每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数&#xff0c;输入这样的一个二维数组和一个整数&#x…

使用Stable Diffusion和PyTorch创建艺术二维码

大家好&#xff0c;本文将介绍如何利用Stable Diffusion和PyTorch的能力来创建AI生成的QR码艺术。通过将这些技术相结合&#xff0c;可以生成独特的、具有视觉吸引力的艺术作品&#xff0c;其中包含QR码&#xff0c;为艺术作品增添了互动元素。 Stable Diffusion和PyTorch 稳…

赢得CSDN铁粉的秘诀!(记录写作三个月的点点滴滴)

在CSDN上写博客已经三个多月了&#xff0c;从开始的陌生到渐渐熟悉CSDN网站的每个角落&#xff0c;猛然发现还有这么一个活动&#xff0c;想了想还是写一篇博客吧&#xff0c;不仅是参加活动&#xff0c;也是记录这一路慢慢探索的过程。 1.CSDN铁粉介绍及说明 CSDN 是为中国 I…