【智能算法】人类进化优化算法(HEOA)原理及实现

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2024年,J Lian受到人类进化启发,提出了人类进化优化算法(Human Evolutionary Optimization Algorithm, HEOA)。

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

2.算法原理

2.1算法思想

HEOA将全局搜索过程分为:人类探索和人类发展。初始化采用Logistic混沌映射,在人类探索阶段,进行初始的全局搜索。在人类发展阶段,人口被分类为领导者、探索者、追随者和失败者,每个人都使用不同的搜索策略。

在这里插入图片描述

2.2算法过程

人类探索阶段

探索阶段被定义为最大迭代次数的初始1/4。在人类发展的各个阶段,当面对未开发的领域和有限的知识时,个体倾向于采用统一的搜索策略:
X i t + 1 = β ⋅ ( 1 − t M a x i t e r ) ⋅ ( X i t − X b e s t ) ⋅ L e v y ( d i m ) + X b e s t ⋅ ( 1 − t M a x i t e r ) + ( X m e a n t − X b e s t ) ⋅ f l o o r ( r a n d f j u m p ) ⋅ f j u m p (1) X_{i}^{t+1}=\beta\cdot(1-\frac{t}{Max_{iter}})\cdot(X_{i}^{t}-X_{best})\cdot Levy(dim)+X_{best}\cdot(1-\frac{t}{Max_{iter}})+(X_{mean}^{t}-X_{best})\cdot floor(\frac{rand}{f_{jump}})\cdot f_{jump}\tag{1} Xit+1=β(1Maxitert)(XitXbest)Levy(dim)+Xbest(1Maxitert)+(XmeantXbest)floor(fjumprand)fjump(1)
其中, β \beta β为自适应因子,平均位置Xmean表述为:
X m e a n t = 1 N ∑ k = 1 N X k t (2) X_{mean}^t=\frac1N\sum_{k=1}^NX_k^t\tag{2} Xmeant=N1k=1NXkt(2)
自适应因子解释了人类探索知识的难度越来越大和群体特征:
β = 0.2 ( 1 − t M a x t e r ) ⋅ ( X i t − X m e a n t ) (3) \beta=0.2\Bigg(1-\frac t{Max_{ter}}\Bigg)\cdot\Bigg(X_i^t-X_{mean}^t\Bigg)\tag{3} β=0.2(1Maxtert)(XitXmeant)(3)

跳跃策略

在探索阶段借鉴了图像裁剪与重组技术的跳跃策略,旨在增强搜索位置的分布广度。将图像划分为 36x36 的小块,然后按照特定规则重新排列,以保持整体形状。这种技术利用人眼在观察图像时,通过整体和局部特征的组合来感知图像,从而对局部信息的丢失相对不敏感。将这一概念扩展到高维数据,该方法在保持元数据的关键特征的同时,将搜索分布在多个区域,以提高搜索效率。
f j u m p = ( l b ( 1 ) − u b ( 1 ) ) δ , δ ∈ [ 100 , 2000 ] (4) f_{jump}=\frac{(lb(1)-ub(1))}{\delta},\delta\in[100,2000]\tag{4} fjump=δ(lb(1)ub(1)),δ[100,2000](4)
在这里插入图片描述
在这里插入图片描述

人类发展阶段

在人类发展的各个阶段,HEOA将人类社会分为四种不同的角色:领导者、探索者、追随者和失败者。每个角色采用独特的搜索策略,共同协作探索全局最优解。
领导者拥有丰富的知识,通常位于最优区域。在进行的实验中,预适应前40%的个体被指定为领导者。他们利用现有的知识,开始探索人类发展的优越领域:
X i t + 1 = { ω ⋅ X i t ⋅ exp ⁡ ( − t r a n d ⋅ M a x i t e r ) , R < A ω ⋅ X i t + R n ⋅ o n e s ( 1 , d i m ) , R ≥ A (5) X_i^{t+1}=\begin{cases}\omega\cdot X_i^t\cdot\exp(\frac{-t}{rand\cdot Max_{iter}}),R<A\\\\\omega\cdot X_i^t+Rn\cdot ones(1,dim),R\geq A\end{cases}\tag{5} Xit+1= ωXitexp(randMaxitert),R<AωXit+Rnones(1,dim),RA(5)
知识获取的容易度系数w,随着发展的推进逐渐减小:
ω = 0.2 cos ⁡ ( π 2 ( 1 − t M a x i t e r ) ) (6) \omega=0.2\cos(\frac\pi2(1-\frac t{Max_{iter}}))\tag{6} ω=0.2cos(2π(1Maxitert))(6)
探索者在探索未知领域以发现全局最佳解决方案方面发挥着至关重要的作用。在进行的实验中,在种群中健康度排名前40%到80%的个体被指定为探索者:
X i t + 1 = R n ⋅ exp ⁡ ( X w o r s t t 2 − X i t 2 i 2 ) (7) X_i^{t+1}=Rn\cdot\exp(\frac{X_{worst}^t{}^2-X_i^{t2}}{i^2})\tag{7} Xit+1=Rnexp(i2Xworstt2Xit2)(7)
跟随者坚持最具适应性的领导者的指导,跟随他们的脚步。在进行的实验中,最上层的80%至90%的人口被分配为追随者的角色:
X i t + 1 = X i t + 2 ω ⋅ R d ⋅ ( X b e s t t − X i t ) (8) X_i^{t+1}=X_i^t+2\omega\cdot Rd\cdot\left(X_{best}^t-X_i^t\right)\tag{8} Xit+1=Xit+2ωRd(XbesttXit)(8)
失败者是指不能很好地适应环境而留在人群中的个体。这些不适应社会的失败者将被淘汰,在适合人类发展的地区通过繁殖来补充人口:
X i t + 1 = X b e s t + ( X b e s t − X i t ) ⋅ R n (9) X_i^{t+1}=X_{best}+\left(X_{best}-X_i^t\right)\cdotp Rn\tag{9} Xit+1=Xbest+(XbestXit)Rn(9)

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试HEOA性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F22
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Lian J, Hui G. Human evolutionary optimization algorithm[J]. Expert Systems with Applications, 2024, 241: 122638.

5.代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧式聚类提取-------PCL

欧式聚类 std::vector<pcl::PointCloud<pcl::PointXYZ>::Ptr> PclTool::euclideanClustering(const pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) {std::vector<pcl::PointCloud<pcl::PointXYZ>::Ptr> clustered_clouds;// 下采样pcl::Vox…

Linux各目录及每个目录的详细介绍

目录 /bin 存放二进制可执行文件(ls,cat,mkdir等)&#xff0c;常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录&#xff0c;是用户主目录的基点&#xff0c;比如用户user的主目录就是/home/user&#xff0c;可以用~user表示 /us…

学习和分析各种数据结构所要掌握的一个重要知识——CPU的缓存利用率(命中率)

什么是CPU缓存利用率&#xff08;命中率&#xff09;&#xff0c;我们首先要把内存搞清楚。 硬盘是什么&#xff0c;内存是什么&#xff0c;高速缓存是什么&#xff0c;寄存器又是什么&#xff1f; 我们要储存数据就要运用到上面的东西。首先里面的硬盘是可以无电存储的&#…

【工作记录】openjdk-22基础镜像的构建

背景 近期使用到的框架底层都用的是springboot3.0&#xff0c;要求jdk版本在17甚至更高。 于是决定制作一个基于openjdk22的基础镜像&#xff0c;本文对这一过程进行记录。 作为记录的同时也希望能够帮助到需要的朋友。 期望效果 容器内可以正常使用java相关命令且版本是2…

《十九》Qt Http协议及实战

前言 本篇文章来给大家讲解QT中的Http协议&#xff0c;Http协议主要用于网络中数据的请求和响应&#xff0c;那么这篇文章将给大家讲解一下这个协议。 一、HTTP概述 HTTP&#xff08;超文本传输协议&#xff09;是互联网上应用最为广泛的协议之一&#xff0c;它定义了客户端…

书生·浦语大模型实战营之 OpenCompass大模型评测

书生浦语大模型实战营之 OpenCompass &#xff1a;是骡子是马&#xff0c;拉出来溜溜 为什么要研究大模型的评测&#xff1f; 百家争鸣&#xff0c;百花齐放。 首先&#xff0c;研究评测对于我们全面了解大型语言模型的优势和限制至关重要。尽管许多研究表明大型语言模型在多…

庐山西海服务区:从高速服务区到旅游热点的华丽转身

五一假期期间&#xff0c;庐山西海服务区以其独特的魅力吸引了众多游客的目光。曾经只是一个供汽车加油和休息的普通服务区&#xff0c;如今却焕发出了绚丽的光彩&#xff0c;成为了周边地区备受瞩目的旅游热点。庐山西海服务区的转型&#xff0c;不仅为游客带来了丰富多样的娱…

20230507,LIST容器

学了又忘学了又忘&#xff0c;明知道会忘又不想复习又还得学 LIST容器 1.1 基本概念 链表是一种物理存储单元上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接实现的&#xff1b;链表由一系列结点组成 结点&#xff1a;一个是存储数据元素的数据域&a…

算法提高之树的最长路径

算法提高之树的最长路径 核心思想&#xff1a;树形dp 枚举路径的中间节点用f1[i] 表示i的子树到i的最长距离,f2[i]表示次长距离最终答案就是max(f1[i]f2[i]) #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N …

JavaScript异步编程——02-Ajax入门和发送http请求

同步和异步回顾 同步和异步的简单理解 同步&#xff1a;必须等待前面的任务完成&#xff0c;才能继续后面的任务。 异步&#xff1a;不受当前任务的影响。 拿排队举例&#xff1a; 同步&#xff1a;在银行排队时&#xff0c;只有等到你了&#xff0c;才能够去处理业务。 异…

NumPy及Matplotlib基本用法

NumPy及Matplotlib基本用法 导语NumPy导入与生成算术运算N维数组广播元素访问 Matplotlib简单图案绘制多函数绘制图像显示参考文献 导语 深度学习中经常需要对图像和矩阵进行操作&#xff0c;好在python提供了Numpy和Matplotlib库&#xff0c;前者类似一个已经定义的数组类&am…

基于FPGA的DDS波形发生器VHDL代码Quartus仿真

名称&#xff1a;基于FPGA的DDS波形发生器VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; DDS波形发生器VHDL 1、可以输出正弦波、方波、三角波 2、可以控制输出波形的频率 DDS波形发生器原理…