人类记忆优化算法:针对全局优化问题的记忆启发优化器

news2024/9/20 7:59:20

Human memory optimization algorithm: A memory-inspired optimizer for global optimization problems
24年 Expert Systems With Applications sci一区
原文链接: https://doi.org/10.1016/j.eswa.2023.121597
Zhu D, Wang S, Zhou C, et al. Human memory optimization algorithm: A memory-inspired optimizer for global optimization problems[J]. Expert Systems with Applications, 2024, 237: 121597.

Human memory optimization algorithm: A memory-inspired optimizer for global optimization problems

摘要: 随着科学技术的进步,优化问题变得更加复杂。 元启发式算法在解决优化问题时具有效率高、全局搜索能力强的优点,因此越来越多的元启发式算法被提出并深入研究,而如何提高算法的普适性是一个重要的问题。 本文提出一种模拟人类记忆行为的优化算法,全称为人类记忆优化算法,简称HMO,它模拟人类在生产中的行为方式,存储人类对成功和失败的偏好,模拟人类的行为方式 在他们的记忆中,逐渐朝着更好的方向和结果寻找合理的最优解决方案。 结果在CEC 2013测试集中与其他元启发式算法进行比较,表明HMO具有更好的优化能力,并从收敛性分析和参数分析实验验证了算法的可行性。 在三个工程优化问题中,HMO都能在合理的参数范围内找到最优解,验证了HMO的实用性。
只记录算法原理与过程,具体自行看原文


目录

  • 一、介绍
  • 二、算法
    • 2.1 启示
    • 2.2 算法各阶段
    • 2.3 算法流程


一、介绍

以最小化问题为例,本文开发了一种受人类记忆行为启发的启发式算法。 人类的记忆是多模态的行为,人们常常会对指导未来行为的失败和成功印象深刻,同时,人类会时不时地回忆起最近的记忆,但也会忘记最近的记忆。 具体示意图如图1所示。(a)中的人到处寻找手机,结果发现手机在自己手里,这是人类记忆暂时遗忘的过程; (b)中的人以前被蛇咬过,所以非常怕蛇,而且那段痛苦的记忆也很深刻。 受人类记忆行为的启发,本文提出了一种人类记忆优化算法,简称HMO,该算法存储人类行为产生的成功和失败的记忆,并通过人类特有的思维方式进行回忆,从而不断激励人们走向更好的地方 。 与CEC 2013中各种启发式算法的比较表明,HMO更加通用,具有更好的优化能力; 此外,HMO在多种工程案例中都有较好的优化结果,验证了HMO的实用性和可行性。

在这里插入图片描述


二、算法

2.1 启示

当人们在日常生活中不断进行活动并产生形成记忆的事件记录时,我们也正是通过对过去事件的不断回忆来指导我们当前的行为。 在大多数情况下,我们会尽力避免犯过去犯过的错误。 另一方面,我们需要在过去取得的成就的基础上再接再厉。 研究表明,人类会记住不愉快的事情和愉快的事件(LaBar,2007),并且这些记忆会在大脑中保留很长时间,而在最近的过去,我们仍然会怀念它们,Kornell 等人。 也表明我们的记忆是有偏差的(Kornell&Bjork,2009),特别是在最近或平常的时间,更容易被错过。 生活和行为(Mahr & Csibra,2020)。 正是因为有这些记忆的影响,我们才能通过记忆产生的经验不断地引导我们走向更好的方向,在失败与成功的交替循环中共同推动人类的发展。

本文提出了一种人类记忆优化算法,通过人类的行为活动和回忆不断更新新的搜索方向,逐渐逼近优化问题的最优解。 具体示意图如图2所示。HMO模型有以下主要阶段:
•人类需要通过生产活动产生记忆或事件。
• 失败和成功会被特别记住,人们会继续回忆起这些事件。 值得注意的是,失败的事件是那些痛苦的经历,成功的事件是那些快乐的经历。
• 人类也许能够回忆或忘记当前的记忆。
• 记忆过程也是一种人类活动,也可以产生记忆或事件。
• 回忆不同的事件时,心情是不同的。

2.2 算法各阶段

在这里插入图片描述

在这里插入图片描述
~X是平均位置,
T 是最大迭代次数。
∀由模拟人类行为状态的散度函数组成。
k是属于(0.1,1.3)的随机常数。
dim是优化问题的维数。
lb和ub分别表示整个问题空间的下界和上界。

本文将人类记忆的过程分为成功记忆和失败记忆,以模拟现实世界中不同的存储活动(参见算法1)。 存储每次产生的成功和失败事件。 内存存储的矩阵是有限容量的,设置为N*dim,当存储最新的内存时,如果超过容量则一次替换最旧的内存,N代表种群数量。 根据人类记忆的本质,记忆的存储只存储比之前更好和更坏的事件。 值得注意的是,这里保留了全局最优解和最差解,因此会存在存储相同解的情况
在这里插入图片描述

当取得某些成就时,例如获奖感言,很容易记住之前的辛勤工作。 这些艰难时期可以被视为失败。 为了模仿这种行为,我们使用以下更新来表示每个人回忆失败事件的过程:
在这里插入图片描述
其中 δ 是常数值 4,φ 是大小为 1 × dim 且遵循正态分布的随机向量。 xbest表示历史最优内存。 a 表示最差矩阵内随机选择的第 a 个位置。 β表示情绪的状态因子。 r1和r2都是[0,1]的均匀随机数,它们代表的是提取到队列中的比例。 故障存储器的存储方案更新得更慢,因为最坏的解决方案在早期被锁定,并且在后期更难以找到最差的解决方案。 在这种情况下,Worst中的位置与当前种群位置信息的差异更大,并提供更好的全局探索能力。 同样,回忆一次成功事件的表示如下:
在这里插入图片描述
Besta2代表最优记忆矩阵中随机选择的a2段记忆。 在成功事件的回忆中,成功之间的差异正在迅速变小,因此成功事件的回忆行为正在从全局探索快速转向局部利用。

值得一提的是,人们在回忆当前事件时往往会记不住,本文将其称为短暂性记忆丧失。 在这种情况下,失去的记忆只能通过印象深刻的事件来找回。 因此,我们使用以下更新来模拟寻找丢失的记忆:
在这里插入图片描述
其中σ代表随机数,代表此时的状态因子。 Pworst 表示最近最糟糕的记忆。 Xr(t) 代表群体中随机选择的个体。 注意,这个方程的意义在于对当前记忆状态的不满与最近不幸事件的关联,从而为未来的行为提供一些指导。 从等式可以看出。 (4)算法的优化过程不考虑成功事件,而是与当前种群位置相关,因此记忆丢失的行为是一种具有一定全局探索性的行为。
最后,如果当前记忆没有丢失的话,可以用下式表示:
在这里插入图片描述
其中Xl代表当前最优解,它代表当前种群中的最佳解。 r2表示此时的情绪状态,是服从[0,1]的均匀随机数。 这个方程的意义在于表明人类认同当前的记忆状态,从而按照当前的行为来发展它。 从方程。 (5),可以看出,最优位置与局部最优位置一起考虑,并且它们是相同迭代次数的固定位置,从而实现了一些局部开发。 回想过程也是人类活动,因此其产生的最优解和最差解也需要存储,如算法1所示:

2.3 算法流程

HMO算法主要分为两个部分,一个是对人体活动行为的模拟,另一个是对记忆行为的模拟。其中,记忆行为分为四个部分。为简便起见,本文采用参数r来进行记忆行为的选择,其中失败和成功的选择概率相同;召回当前事件的概率也与当前事件丢失的概率相同。另外两种方法的选择概率也相同。算法部分描述了所提出的HMO算法的流程

在这里插入图片描述
r是回想失败事件的概率值,需要设置,其中回想成功事件和失败事件的概率相同,回想电流和记忆损失的概率相同,因此只需要一个R就可以调整四种回想类型的选择。


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

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

相关文章

二进制文件的膨胀策略和使用 debloat 消除膨胀测试

在恶意软件的分析中有的 Windows 可执行文件(PE 文件)会通过膨胀策略来绕过防病毒一些防病毒的检查,比如上传云进行分析,因为文件太大了所以无法进行一些防病毒分析。一般的可执行文件有很多的膨胀策略,一般简单的膨胀…

Elasticsearch-经纬度查询(8.x)

目录 一、开发环境 二、pom文件 三、ES配置文件 四、ES相关字段 五、ES半径查询 ES的字段类型:geo_point,可以实现以一个点为中心的半径查询(geo_distance query) ES 地里位置查询: 半径查询(geo_distance query)查询指定矩形内的数据(geo_bounding_box quer…

[AI Google] 使用 Gemini 取得更多成就:试用 1.5 Pro 和更多智能功能

总结 Google 正在为超过 35 种语言的 Gemini Advanced 订阅者推出 Gemini 1.5 Pro。此次更新包括 100 万个 token 的上下文窗口、改进的数据分析功能和增强的多模态图像理解。新功能包括用于自然对话的 Gemini Live、先进的规划工具和可定制的 Gems。更新还集成了更多 Google …

基于STM32开发的智能农业监控系统

目录 引言环境准备智能农业监控系统基础代码实现:实现智能农业监控系统 4.1 土壤湿度传感器数据读取4.2 温湿度传感器数据读取4.3 水泵与风扇控制4.4 用户界面与数据可视化应用场景:农业环境监测与管理问题解决方案与优化收尾与总结 1. 引言 随着智能…

SkyWalking之P0核心业务场景输出调用链路应用

延伸扩展:XX核心业务场景 路由标签打标、传播、检索 链路标签染色与传播 SW: SkyWalking的简写 用户请求携带HTTP头信息X-sw8-correlation “X-sw8-correlation: key1value1,key2value2,key3value3” 网关侧读取解析HTTP头信息X-sw8-correlation,然后通过…

Navicat导入json文件(json文件数据导入到MySQL表中)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

在Modelarts上微调量化Llama3,并用docker部署

本文概述 本文先使用llama-factory去微调llama3大模型,然后使用llama.cpp去量化模型并打包为docker部署到服务器上让qq机器人能够调用服务,实现qq群内问答。 效果展示 环境准备 本文使用华为云的Modelarts的notebook去进行的模型微调 ubuntu20.04&#x…

揭开FFT时域加窗的奥秘

FFT – Spectral Leakage 假设用于ADC输出数据分析的采样点数为N,而采样率为Fs,那我们就知道,这种情况下的FFT频谱分辨率为δf,那么δfFs/N。如果此时我们给ADC输入一个待测量的单频Fin,如果此时Fin除以δf不是整数&a…

IP地址冲突检测(Address Conflict Detect)记录

学习目标: 提示:ACD(IP地址冲突检测)原理学习与抓包分析 学习记录: 1、Address Conflict Detection地址冲突检测,简称ACD。RFC 5227提出ACD机制。其中ACD将arp request分为ARP probe和ARP announcement两种; ACD定义…

数据中心网络运维探讨

数据中心网络运维探讨 数据中心网络运维通过科学的网络架构设计、实时监控管理、智能化运维工具和全面的安全防护,确保网络的高效、安全运行。它不仅提升了运维效率和网络可靠性,还保障了业务的连续性和数据安全。随着技术的不断进步,智能化…

常见机器学习的原理及优略势

有监督 一、线性回归(Linear Regression) 1. 算法原理 线性回归(Linear Regression)是一种基本的回归算法,它通过拟合一个线性模型来预测连续型目标变量。线性回归模型的基本形式是:y w1 * x1 w2 * x2 … wn * …

在python中关于元组的操作

创建元组 如上图所示,a()和b tuple(),,这两种方式都可以创建出元组。 在创建元组的时候,指定初始值 如上图所示,也可以在创建元组的时候,指定初始值。 同列表一样元组中的元素也可以是任意类型的。 同列…

Map深度学习

Map Map是一个键值对的集合,和object类似,Map作为构造函数,可以通过全局对象获取到。需要通过new操作创建实例对象,直接调用会报错。Map构造函数接受一个iterable类型的函数,用来初始化Map。 var m new Map([[1, &qu…

pyrouge(ROUGE-1.5.5)的安装步骤和使用说明(适用于Linux 系统)

摘要:本文讲解了如何配置和使用文本摘要的评价指标ROUGE(linux 系统)。 ✅ NLP 研 1 选手的学习笔记 简介:小王,NPU,2023级,计算机技术 研究方向:摘要生成、大语言模型生成 文章目录 一、为啥要写这篇博客&…

Redis 双写一致原理篇

前言 我们都知道,redis一般的作用是顶在mysql前面做一个"带刀侍卫"的角色,可以缓解mysql的服务压力,但是我们如何保证数据库的数据和redis缓存中的数据的双写一致呢,我们这里先说一遍流程,然后以流程为切入点来谈谈redis和mysql的双写一致性是如何保证的吧 流程 首先…

flink源码系列:RPC通信

这里写目录标题 1. 本节课目的2.开始本节内容2.1.RPC概念3.2.大数据组件常见的RPC实现技术3.3.Pekko(Akka)3.3.1. Akka、Pekko基本概念3.3.2.Pekko Demo事例3.3.2.1.PekkoData 类3.3.2.2.PekkoRpcReceiverActor类3.3.2.3.PekkoRpcSenderActor 类3.3.2.4.…

传感器展会|2024厦门传感器与应用技术展览会

传感器展会|2024厦门传感器与应用技术展览会 时间:2024年11月1-3日 地点:厦门国际会展中心 XISE EXPO展会介绍: 2024中国(厦门)国际传感器与应用技术展览会将于2024年11月1-3日在厦门国际会展中心举行&#xf…

基于标定数据将3D LiDAR点云与相机图像对齐(含C++版本代码)

这段C代码演示了如何将Velodyne激光雷达的点云数据投影到相机图像上。该过程涉及以下主要步骤: 读取并解析来自文件的标定数据,包括P2矩阵、R0_rect矩阵和Tr_velo_to_cam矩阵。这些矩阵用于将激光雷达点云从Velodyne坐标系转换到相机坐标系。从二进制文件中读取Velo…

10.1 Go Goroutine

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

解密Spring Boot:深入理解条件装配与条件注解

文章目录 一、条件装配概述1.1 条件装配的基本原理1.2 条件装配的作用 二、常用注解2.1 ConditionalOnClass2.2 ConditionalOnBean2.3 ConditionalOnProperty2.4 ConditionalOnExpression2.5 ConditionalOnMissingBean 三、条件装配的实现原理四、实际案例 一、条件装配概述 1…