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就可以调整四种回想类型的选择。