【智能算法】人类进化优化算法(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.mzph.cn/web/7737.shtml

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

相关文章

【Linux 命令操作】如何在 Linux 中使用多行注释呢?

文章目录 1. 给代码进行多行注释2. 给代码取消多行注释 1. 给代码进行多行注释 &#x1f427;① 首先用 vim 打开代码&#xff0c;按 Esc进入命令模式(Normal mode)&#xff1b; &#x1f427;② 然后按住 ctrl v 进入列模式&#xff1b; &#x1f427;③ 再通过按 h(左)、j(…

19.删除链表的倒数第n个结点

刷算法题&#xff1a; 第一遍&#xff1a;1.看5分钟&#xff0c;没思路看题解 2.通过题解改进自己的解法&#xff0c;并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步&#xff0c;下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

Docker容器:Docker-Consul 的容器服务更新与发现

目录 前言 一、什么是服务注册与发现 二、 Docker-Consul 概述 1、Consul 概念 2、Consul 提供的一些关键特性 3、Consul 的优缺点 4、传统模式与自动发现注册模式的区别 4.1 传统模式 4.2 自动发现注册模式 5、Consul 核心组件 5.1 Consul-Template组件 5.2 Consu…

深度学习之基于Vgg16卷积神经网络乳腺癌诊断系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于VGG16卷积神经网络的乳腺癌诊断系统项目是一个结合深度学习技术和医学图像处理的创新项目&#xff0c;旨在提高…

代码随想录Day 40|Leetcode|Python|139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 解题思路&#xff1a; 确定dp数组含义…

路飞吃桃递归问题

在写代码之前&#xff0c;补充两个知识点 1.C语言递归的模版 2.递归是怎么工作的 好!话不多说让我们开始吧&#xff1a; 我们知道路飞吃了n天&#xff0c;每次都是吃一半&#xff0b;1&#xff0c;知道最后一天&#xff0c;只有一个桃子了&#xff0c;所以就可以列出式子&…

列转行(spark 与presto语法)

一、Presto 语法 原始数据&#xff1a; 期望数据&#xff1a; 代码&#xff1a; SELECT info, value FROM ( select 张三 as name,18 as age,男 as gender,清华 as schoolunion allselect 李四 as name,18 as age,男 as gender,清华 as school ) as a CROSS JOIN UNNEST(…

Linux实现Flappy bird项目

目录 1、项目介绍 2、功能总结 3、前期准备 3.1 Ncurses库 3.2 信号机制 3.2.1 设置信号响应方式 3.2.2 设置定时器 4、代码实现 4.1 头文件引用及变量、函数定义 4.2 主函数 4.3 curses初始化 4.4 设置定时器 4.5 定时器响应函数 4.6 小鸟控制相关函数 4…

C语言 自定义类型——联合体

目录: 一、联合体是&#xff1f;声明计算内存大小 二、联合体的特点例如 三、联合体大小的计算规则&#xff1a; 四、应用习1习2 一、联合体是&#xff1f; 联合体和结构体差不多&#xff0c;但是其最大的区别在于联合体所有的成员共用一块内存空间。所以联合体也叫共用体。联…

Java_方法引用

方法引用就是把已经有的方法拿过来用&#xff0c;当作函数式接口中抽象方法的方法体。 条件&#xff1a; 1.引用处需要是函数式接口 2.被引用的方法需要已经存在 3.被引用的方法的形参和返回值需要跟抽象方法的形参和返回值保持一致 4.被引用方法的功能需要满足当前的要求 简…

搭建父模块和工具子模块

第一章 项目父模块搭建 1.1 nancal-idsa 作为所有工程的父工程&#xff0c;用于管理项目的所有依赖版本。 1.2 指定 pom 类型模块&#xff0c;删除 src 目录&#xff0c;点击Reload project 1.3 添加依赖 pom.xml <parent> <groupId>org.springframework.…

Python爬虫教程:入门爬取网页数据

1.遵守法律法规 爬虫在获取网页数据时&#xff0c;需要遵守以下几点&#xff0c;以确保不违反法律法规&#xff1a; 不得侵犯网站的知识产权&#xff1a;爬虫不得未经授权&#xff0c;获取和复制网站的内容&#xff0c;这包括文本、图片、音频、视频等。 不得违反网站的使用条…

如何设置ddns动态域名服务实现外网访问

在本地搭建好服务器&#xff0c;部署好web网站或其他应用后&#xff0c;需要在外网访问内网时&#xff0c;如何设置动态域名服务ddns&#xff0c;将主机的内网IP端口映射到外网访问&#xff0c;是我们需要面对的一个重要步骤。 内网发布外网&#xff0c;常见的有两种方案&…

【智能优化算法】金枪鱼群优化(Tuna Swarm Optimization,TSO)

金枪鱼群优化&#xff08;Tuna Swarm Optimization,TSO&#xff09;是期刊“Computational Intelligence and Neuroscience”&#xff08;IF&#xff1a;1.8&#xff09;的2021年智能优化算法 01.引言 金枪鱼群优化&#xff08;Tuna Swarm Optimization,TSO&#xff09;的主要…

【Diffusion实战】训练一个类别引导diffusion模型(Pytorch代码详解)

又学习了一种方法&#xff0c;类别引导diffusion模型&#xff0c;使用mnist数据集&#xff0c;记录一下它的用法吧。 Diffusion实战篇&#xff1a;   【Diffusion实战】训练一个diffusion模型生成S曲线&#xff08;Pytorch代码详解&#xff09;   【Diffusion实战】训练一个…

Rust Course学习(编写测试)

如果友友你的计算机上没有安装Rust&#xff0c;可以直接安装&#xff1a;Rust 程序设计语言 (rust-lang.org)https://www.rust-lang.org/zh-CN/ Introduce 介绍 Testing in Rust involves writing code specifically designed to verify that other code works as expected. It…

2024.5.7

槽函数声明 private slots:void on_ed_textChanged();void on_pushButton_clicked(); }; 槽函数定义 void Widget::on_ed_textChanged()//文本框 {if(ui->ed1->text().length()>5&&ui->ed2->text().length()>5){ui->pushButton->setStyleSh…

Xinstall广告效果监测,助力广告主优化投放策略

在移动互联网时代&#xff0c;APP推广已成为企业营销的重要手段。然而&#xff0c;如何衡量推广效果&#xff0c;了解用户来源&#xff0c;优化投放策略&#xff0c;一直是广告主和开发者面临的难题。这时&#xff0c;Xinstall作为国内专业的App全渠道统计服务商&#xff0c;以…

Docker 安装部署 postgres

Docker 安装部署 postgres 1、拉取 postgres 镜像文件 [rootiZbp19a67kznq0h0rgosuxZ ~]# docker pull postgres:latest latest: Pulling from library/postgres b0a0cf830b12: Pull complete dda3d8fbd5ed: Pull complete 283a477db7bb: Pull complete 91d2729fa4d5: Pul…

RT-DETR-20240507周更说明|更新Inner-IoU、Focal-IoU、Focaler-IoU等数十种IoU计算方式

RT-DETR改进专栏|包含主干、模块、注意力、损失函数等改进 专栏介绍 本专栏包含模块、卷积、检测头、损失等深度学习前沿改进,目前已有改进点70&#xff01;每周更新。 20240507更新说明&#xff1a; ⭐⭐ 更新CIoU、DIoU、MDPIoU、GIoU、EIoU、SIoU、ShapeIou、PowerfulIoU、…