介绍

文化基因算法(Memetic Algorithm,简称MA),由Mpscato在1989年提出的。文化基因算法是一种基于种群的全局搜索和基于个体的局部启发式搜索的结合体,它的本质可以理解为:Memetic = GA + Local Search,即memetic算法实质上为遗传算法加上一个局部搜索算子。局部搜索算子可以根据不同的策略进行设计,比如常用的爬山机制、模拟退火、贪婪机制、禁忌搜索等。

算法框架

1.初始种群的产生

初始种群一般是随机产生的,也可以利用优化问题的先验知识人为加入一些优秀个体,例如,若已知最优个体在某区域的概率较大,可以在该区域内选取较多的个体加入初始种群。初始种群的选择应确保种群的多样性。一般地,文化基因算法将对初始种群的每一个个体进行局部搜索,将每个个体邻域内的最优个体替换该个体,形成新的初始种群。

2.进化操作

进化操作可以采用遗传算法中的交叉、变异算子,也可以只进行交叉,或只进行变异。有些研究人员还针对具体的优化问题,或结合所使用的局部搜索策略,研究了新的进化算子。不管采用何种进化算子,应确保子代能够遗传父代的主要特征,同时又能探索到未知的区域。

3.局部搜索

局部搜索的过程也就是推举局部区域优秀个体的过程。局部搜索的关键问题在于:
a)邻域的确定:对于连续系统,可以以当前个体为中心,选取距离为ε的欧式空间,对于离散系统,可以选取球形、立方体等空间结构作为个体的邻域空间。邻域空间取得越大,整体算法的优化效率就越高,但同时也使算法的计算时间延长。
b)局部搜索策略:可选择的方法很多,可以针对函数优化问题或组合优化问题选用不同的适用策略,同时也应考虑算法效率问题。文献[7]针对一组标准测试函数研究了模拟退火、禁忌搜索和导引式搜索(Guided local search,GLS)三种局部搜索策略对算法性能的影响,认为采用导引式局部搜索可以使算法更易收敛。
c)局部搜索在算法流程中的位置:在何时执行局部搜索操作也是算法设计过程中需要确定的一项内容。有些算法让每个个体在进行交叉、变异后再逐个进行局部搜索(如图1所示的例子),有些算法则将局部搜索分别安排在交叉和变异操作之后,即每一代的进化过程进行两次局部优化[8]。

4.新种群的产生

一般经过进化操作和局部搜索后,种群数目会大于初始种群的数目,为了保证种群的多样性,可以采用轮盘赌选择、截断选择、锦标赛选择等方法选出相对较优的个体形成新的种群。

5.终止策略

同其他启发式优化算法一样,进化终止条件可以定为:达到一定的迭代步数,或最优结果达到要求的精度。

文化基因算法(Memetic Algorithm,MA)相关推荐

  1. 文化基因算法(Memetic Algorithm)研究进展(文化基因算法新手入门)

    文化基因算法(Memetic Algorithm)研究进展(文化基因(模因)算法新手入门) 各类优化算法入门优秀论文总结目录 1.摘要 文化基因算法(memetic algorithm)是 Pablo ...

  2. Memetic Algorithm(文化基因算法)

    1. 文化进化理论 威尔逊认为,从性质上来讲,文化进化总是以拉马克主义为特征的,即文化进化依赖于获得性状的传递,相对来说速度比较快:而基因进化是达尔文主义式的,依赖于经过几个世代的基因频率的改变,因而 ...

  3. 基因算法解析、设计,以解决背包问题和旅行商问题为例

    一.算法说明 基因算法 基因算法有一套公共的完整的框架,伪代码如下. beginset time t = 0 # first generationinitGeneration() # initiali ...

  4. AI中的几种搜索算法---基因算法

    AI中的几种搜索算法---基因算法 引言 进化计算(Evolutionary Computation)这个涵盖的范围比较广,其中包括基因算法(Genetic Algorithm).进化式策略(Evol ...

  5. HMM——维特比算法(Viterbi algorithm)

    1. 前言 维特比算法针对HMM第三个问题,即解码或者预测问题,寻找最可能的隐藏状态序列: 对于一个特殊的隐马尔可夫模型(HMM)及一个相应的观察序列,找到生成此序列最可能的隐藏状态序列. 也就是说给 ...

  6. 分类系列之感知器学习算法PLA 和 口袋算法Pocket Algorithm

    我们有一堆数据,默认他们是线性可分的.  定义f为这个数据分割线的最优解,但是我们不知道他的值.  我们仅有一个函数集H,这个函数一般是无穷大的.我们的目的就是从H中找出一条线g来尽可能的接近f.但是 ...

  7. 反向传播算法 Backpropagation Algorithm

    假设我们有一个固定样本集,它包含 个样例.我们可以用批量梯度下降法来求解神经网络.具体来讲,对于单个样例(x,y),其代价函数为:这是一个(二分之一的)方差代价函数.给定一个包含 个样例的数据集,我们 ...

  8. 疯子的算法总结(二) STL Ⅰ 算法 ( algorithm )

    写在前面: 为了能够使后续的代码具有高效简洁的特点,在这里讲一下STL,就不用自己写堆,写队列,但是做为ACMer不用学的很全面,我认为够用就好,我只写我用的比较多的. 什么是STL(STl内容): ...

  9. 语音识别学习日志 2019-7-17 语音识别基础知识准备6 {维特比算法(Viterbi Algorithm)}

    HMM 维特比算法(Viterbi Algorithm)详细解释参考:http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorith ...

最新文章

  1. iOS 关闭页面侧滑手势
  2. 建筑工程的发展、未来那个职业将会兴起!
  3. JavaScriptjQuery.变量作用域
  4. 超图桌面版开发入门图解
  5. 超图桌面版区分不同类型数据源的图标
  6. listen函数介绍
  7. 调整亮度_【紫墨手机摄影课堂】图片调整
  8. VNCServer 配置
  9. LeetCode 1629. 按键持续时间最长的键
  10. 在ubuntu 16.04中安装source insight 4.0破解版
  11. 传奇行会战攻略和战术技巧
  12. 九步确定你的人生目标和制定达到目标的计划
  13. 计算机考试完后去哪领证,税务师考试全科通过后去哪领证?
  14. 车辆网络安全ISO/SAE 21434解读(十)TARA分析
  15. 8岁上海小学生B站教编程惊动苹果,库克亲送生日祝福
  16. 【转】BAT机器学习面试1000题系列(1~50)
  17. Python随机生成出生日期
  18. python 人像素描_基于python实现把图片转换成素描
  19. 学习笔记之——DCDC降压芯片基本原理及选型主要参数介绍
  20. os模块创建多级目录

热门文章

  1. mysql过滤表中重复数据,查询表中相同数据的最新一条数据
  2. 关于实现手机号,身份证号加密解密解决方案
  3. python - windows 之 mouse_event与keybd_event函数
  4. ByPASS系列之安全狗
  5. 如何编译各平台使用的库-以编译tolua为例
  6. python数据分析pandas画图_Pandas数据可视化基础绘图教程
  7. 搭建 Vite + Vue 3 + Typescript + tsx + less 项目
  8. 最近正在重构之前开发过的记账本(新增了很多内容,欢迎star)
  9. 深度学习笔记——秒懂评价指标precision和recall(附例子)
  10. 怎么做好多重比对(Multiple sequence alignment)?