一文搞懂什么是Memetic算法MA【详细介绍】

本文参考了很多张军老师《计算智能》的第九章知识。

本文来源:https://blog.csdn.net/qq_44186838/article/details/109181453
Memetic算法
1.1 Memetic算法的基本思想
在讲Memetic算法之前,我们先来了解一下meme。

在这里插入图片描述
基于图中内容,Mosato(1989)提出了Memetic算法。

那么,Memetic算法出现的原因是啥呢?Memetic算法是啥呢?

那在讲Memetic算法之前,我们先来稍微回忆一下遗传算法、蚁群优化算法、粒子群优化算法等这些进化算法以及群体智能优化算法,这些算法有啥共性呢?

好吧,共性其实很多。这里我想讲的是:在面对大规模、复杂的优化问题时,这些算法往往存在着收敛速度慢、难以寻找高精度的解的缺点。

而在这些算法的基础上,引入局部搜索方法,对计算智能方法所发现的解进行改进,将有效地提高计算智能方法的求解效率和精度。

以上就是其出现的大致原因。基于此,我们不难发现,Memetic算法其实就是基于群体的计算智能方法与局部搜索方法相结合的一类新型的优化技术。

Memetic算法的框架

为系统分析MA,Krasnogor和Smith提出了MA的框架模型,根据该框架,一个MA应该包含如下9种要素:
在这里插入图片描述

其中:
在这里插入图片描述
下图为MA的基本流程框架
在这里插入图片描述
不难发现,与传统的进化方法相比,MA实际上知识增加了一个局部搜索操作,即增加了L = ( L 1 L_1 L1, L 2 L_2 L2, …, L m L_m Lm) 这个要素(大部分MA的m值为1,即只适用一种局部瘦身策略)。

通过上图我们也可以发现,局部搜索可以与全局搜索策略的生成函数(例如GA中的交叉、变异操作)相结合,也可以与更新函数(例如GA中的选择操作)相结合。注意:有些文献中也把局部搜索作用域初始解,以提高初始解的质量,但这一般只作为一种辅助方法。

另外,补充一下,局部搜索的执行可以依据Lamarckian模型,也可以依据Baldwinian模型;可以作用于群体中的某个个体之中,也可以作用于整个群体。
在这里插入图片描述
对于一个MA来说,局部搜索的选择以及全局搜索与局部搜索的结合方式将直接影响到算法性能的好坏。因此,设计一个高性能的MA必须考虑以下四方面的问题:

(1)应该选择什么局部搜索策略;
(2)应该在什么时候执行局部搜索;
(3)应该针对哪些个体进行局部搜索,应该采用Lamarckian模型还是Baldwinian模型;
(4)如何平衡算法的全局搜索能力和局部搜索能力。

基于此,下面将会给大家介绍多种针对MA的分类方式以及对应的几种Memetic算法。

1.3 静态Memetic算法
静态Memetic算法的特点
一般只采用一种局部搜索策略。
局部搜索的执行位置和方式都预先确定,在算法执行过程中保持不变。

1.3.1 局部搜索的位置
可以根据局部搜索的位置不同,分为:
与生成函数相结合的局部搜索,以及与更新函数相结合的局部搜索。

1.3.2 Lamarckian模式Baldwinian模式
简单介绍一下这两种模式。

在进化算法中引人局部搜索的主要模式包括Lamarckian模式(可译作拉马克式)和Baldwinian模式。Lamarckian模式指的是“后天获取的特性也可以遗传”,也就是说,在采用局部搜索策略改进了某个个体之后,改进了的个体将(代替原有个体)参与全局搜索方法的进化操作。相反地,在 Baldwinian模式中,被局部搜索策略改进了的个体不会代替原有个体参与进化操作,交叉、变异等进化算子仍然只作用于未被局部搜索改进的个体上。

1.4 动态Memetic算法
1.4.1 动态Memetic算法

动态MA是一种动态调整局部搜索策略

分类
按照动态调整类型,分成三类:
静态型—按照静态的规则来调整
适应型—利用在线反馈的信息来调整
自适应型—将局部搜索设置信息也编码到算法当中一起进化(协同进化的MA)

按照自适应的层次,分成三类:
外部型—利用外部的先验知识(一般属于静态型)
局部型—采用了局部反馈信息来调整
自适应型—采用了全部反馈信息来调整
在这里插入图片描述
1.4.2 Meta-Lamarckian学习型MA
Meta-Lamarckian学习型MA:每次执行局部搜索之前,从局部搜索策略池中选择一种局部搜索方案。

基本Meta-Lamarckian学习方案

基本Meta-Lamarckian学习方案采用了一种简单的随机游走方案来选择局部搜索策略。在这种方案下,算法每次执行局部搜索之前都从局部搜索策略池中随机地选择一种局部搜索方法。显然,这种方案并没有借鉴任何在搜索过程中在线得到的反馈信息,因此属于静态,外部型的MA。

子问题分解的启发式搜索方案

子问题分解的启发式搜索方案的Meta-Lamarckian学习方式如下图所示。

在MA的最初前g次迭代中(g是一个预先设定的参数),算法仍然采用随机游走的方式来选择局部搜索策略。随后,算法在每次执行局部搜索之前,首先从局部搜索初始点的邻域中寻找k个曾经搜索过的点(例如,可以选择离局部搜索初始点的欧几里德距离最近的k个曾经搜索过的点),统计在这k个点上曾经使用过的局部搜索策略所对应的适应值。最后,算法将采用在该邻域内具有最大平均适应值的局部搜索策略。
在这里插入图片描述
带偏向性轮盘赌的随机搜索方案

带偏向性轮盘赌的随机搜索方案的Meta-Lamarckian学习方式如下图所示。

这种MA采用了轮盘赌机制来选择局部搜索策略。在算法开始时,各种局部搜索策略被选择的概率是相同的。算法首先按照随机给定的次序把每一种局部搜索策略都执行一次,并根据各种局部搜索策略所带来的适应值改进幅度来调节局部搜索被选择的概率。随后,算法在每次执行局部搜索之前都采用轮盘赌方式选择一种局部搜索策略,并在局部搜索执行完毕后更新该局部搜索策略被选择的概率。
在这里插入图片描述
1.4.3 超启发式Memetic算法
随机超启发式
随机地选择局部搜索策略。

贪心超启发式
选择能够得到最大改进幅度的局部搜索策略

基于选择函数的超启发式
根据局部搜索策略的选择函数F值来选择局部搜索策略。

1.4.4 协同进化Memetic算法
局部搜索的具体设置(包括局部搜索策略、局部搜索的执行方式以及局部搜索深度、频率、邻域大小等各种参数编码成文化基因)也编码到个体的基因中,共同进化。

下图为协同进化MA的流程图。
在这里插入图片描述
目前MA已应用于众多复杂优化问题。

  • 42
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
Memetic算法是一种结合了遗传算法和局部搜索算法的优化算法,它可以在大规模搜索空间中寻找全局最优解。下面是Memetic算法的框架和步骤说明: 1. 初始化种群:根据问题的特征,生成一个初始的种群。 2. 选择操作:从种群中选择适应度高的个体作为父代,并使用遗传算法的选择操作对个体进行选择。 3. 遗传操作:利用交叉、变异等遗传算法操作对父代进行操作,生成新的个体。 4. 局部搜索操作:对新生成的个体进行局部搜索操作,对个体进行优化。 5. 合并操作:将新生成的个体与原始种群进行合并。 6. 选择操作:从合并后的种群中选择适应度高的个体作为下一代的父代。 7. 终止条件:当达到预设的迭代次数或者达到预设的适应度阈值时,终止算法Memetic算法中使用的局部搜索算法有很多种,常用的有模拟退火、禁忌搜索、局部搜索等。具体使用哪种局部搜索算法需要根据问题的特征和性质来确定。 下面是Memetic算法的流程图: ![Memetic算法的流程图](https://i.imgur.com/4BhALnM.png) 在这个算法框架中,遗传操作和局部搜索操作是交替进行的,每次遗传操作生成新的个体后,都会进行局部搜索操作,以进一步优化个体的适应度。最终通过选择操作选出适应度高的个体作为下一代的父代,不断迭代,直到满足终止条件为止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

报告,今天也有好好学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值