1. 文化进化理论

  威尔逊认为,从性质上来讲,文化进化总是以拉马克主义为特征的,即文化进化依赖于获得性状的传递,相对来说速度比较快;而基因进化是达尔文主义式的,依赖于经过几个世代的基因频率的改变,因而是缓慢的。威尔逊将可供选择的行为划分为分离的单位,称以文化基因。文化基因的传递可以是纯粹遗传的,也可以是纯文化的,此外,还可以通过基因──文化的方式传递,它同时兼有两者的某些特点:一方面,文化的发展在某种程度上要受到基因的制约和指导;另一方面,文化发明的压力又影响着基因的生存,且最终改变着遗传纽带的强度和韧力。人类的文化基因就是以这种方式传递的。(注:拉马克主义 Lamarckism 生物进化学说之一,为法国博物学家拉马克所创立。 认为生物在新环境的直接影响下,习性改变,某些经常使用的器官发达增大,不经常使用的器官则逐渐退化(用进废退),并认为这样获得的后天性状可传给后代,使生物逐渐演变,且认为适应是生物进化的主要过程。)

2.文化基因算法的思想

  Pablo Moscato认为,在遗传算法(GA)中,变异操作可以看作是含有一定噪声的爬山搜索,实际上模拟遗传编码和自然选择的过程不应包含变异操作,因为在文化进化的过程中,在众多的随机变化步骤中得到一个正确的可提高整体性能的一步进展是非常困难的,只有此领域的拥有足够的专业知识的精通者们,才有可能创造新的进展,但是这样的事情发生的频率是很低的。 因此,文化基因的传播过程应是严格复制的,若要发生变异,那么每一步的变异都需要有大量的专业知识支撑,而所有的变异都应带来进展而不是混乱,这就是为什么我们观察到的文化进化速度要比生物进化速度快得多的原因。 对应于模拟生物进化过程的遗传算法,Moscato提出了模拟文化进化过程的文化基因算法,文化基因算法用局部启发式搜索来模拟由大量专业知识支撑的变异过程,因此说,文化基因算法是一种基于种群的全局搜索和基于个体的局部启发式搜索的结合体。
  文化基因算法的这种全局搜索和局部搜索的结合机制使其搜索效率在某些问题领域比传统遗传算法快几个数量级,可应用于广泛的问题领域并得到满意的结果。 很多人将文化基因算法看作混合遗传算法、 遗传局部搜索或是拉马克式进化算法,实际上,文化基因算法提出的是一种框架、 是一个概念,在这个框架下,采用不同的搜索策略可以构成不同的文化基因算法,如全局搜索策略可以采用遗传算法、 进化策略、 进化规划等,局部搜索策略可以采用爬山搜索、模拟退火、贪婪算法、禁忌搜索、导引式局部搜索等。
  在遗传算法中,我们通常对个体(Individual) 进行选择、 交叉、 变异操作,通过对一代一代个体的适应性进化得到问题的最优解。 在文化基因算法中,用了智能体 (agent,实际上agent在此译为“代表”更加恰当)的概念,遗传操作的对象并不是种群空间中的普通个体,而是各局部区域推选出的优秀代表,遗传操作的结果是选出那些适应性强的优秀代表,同时也产生一些交叉作用后新的个体,这些新个体可能属于一些新的区域,在下一代的局部搜索中它们会被附近的优秀个体取代,然后再进行进一步的全局进化。 这种局部与全局的混合搜索机制显然要比单纯在普通个体间搜索的进化效率高得多。

3.文化基因算法的实现

  Pablo Moscato提出了一种基于竞争式作为文化基因算法的一个例子:对于一个给定的优化问题,可以先确定一定数量的初始个体,这些个体的状态可以是随机的,也可以根据某个启发式机制来确定,随后对每个个体都进行局部搜索,通过局部搜索提高个体适应度使种群达到一定的预备状后,就可以进行个体与个体之间的相互操作,这种相互作用可以是相互竞争,也可以是相互协作。相互竞争的操作类似于遗传算法中的个体选择过程,相互协作行为可以理解为遗传算法中的交叉机制或者其他产生新个体的方法,也可以更概括性的理解为信息的交换过程。局部搜索、竞争、协作操作都是循环进行的,知道满足终止条件。

参考文献: 刘漫丹。文化基因算法(Memetic Algorithm)研究进展[J]. 控制理论与应用。《自动化技术与应用》2007 年第 26 卷 第 11 期

Memetic Algorithm(文化基因算法)的更多相关文章

  1. Moore majority vote algorithm(摩尔投票算法)

    Boyer-Moore majority vote algorithm(摩尔投票算法) 简介 Boyer-Moore majority vote algorithm(摩尔投票算法)是一种在线性时间O( ...

  2. 神经网络(9)--如何求参数: backpropagation algorithm(反向传播算法)

    Backpropagation algorithm(反向传播算法) Θij(l) is a real number. Forward propagation 上图是给出一个training examp ...

  3. [Algorithm] 群体智能优化算法之粒子群优化算法

    同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...

  4. Manacher's Algorithm(马拉车算法)

    ## 背景 该算法用于求字符串的最长回文子串长度. ## 参考文章 >[最长回文子串——Manacher 算法](https://segmentfault.com/a/1190000003914 ...

  5. Boyer and Moore Fast majority vote algorithm(快速选举算法)

    问题来来自于leetcode上的一道题目,https://leetcode.com/problems/majority-element/,大意是是找出一个数组中,出现次数超过一个半的数字,要求是O(n ...

  6. algorithm之排序算法--待解决

    简述:排序算法,参见http://www.cplusplus.com/reference/algorithm/?kw=algorithm 待解决问题:各种排序算法的实现 /* template < ...

  7. [Data Structure & Algorithm] 七大查找算法

    查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找.本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找.插值查找以及斐波那契查找 ...

  8. [Data Structure & Algorithm] 八大排序算法

    排序有内部排序和外部排序之分,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.我们这里说的八大排序算法均为内部排序. 下图为排序 ...

  9. [Operate System & Algorithm] 页面置换算法

    页面置换算法是什么?我们看一下百度百科对页面置换算法给出的定义:在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断.当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必 ...

随机推荐

  1. TCP/IP协议(零)TCP/IP参考模型

    我们先浏览一下TCP/IP的参考模型,对网络模型有一个大致的了解,后续着重学习OSI参考模型. TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型. 1.结构 TCP/ ...

  2. window编程之win程序框架

    int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmd ...

  3. 定义 : angular view 和controller 之前的 ng-init 由谁来负责

    在设计view时,会需要default的值,这是会去下ng-init,但是如果发现ng-init没有,这时controller就会有. 概念是当ctrl要用时,就由ctrl负责.

  4. 每天一个Linux命令(04)--mkdir命令

    Linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项]目录 2.命令功能: ...

  5. Laravel笔记目录

    一.MVC 1.路由 2.控制器与视图 3.控制器与路由的绑定 4.中间件 二.模式与数据库 1.数据库迁移 2.填充测试数据 3.ORM入门 4.分页 三.Laravel的生命周期 1.Larave ...

  6. TimerTask实现定期检查数据库操作

    最近在做一个P2P 的众筹网站,其他的内容还都可以,只是定期检查数库里面的项目是不是到期了,让我费了一些时间,现在写好了,我把它总结下来,以便以后使用.顺便和大家分享一下. Timer可以看成一个定时 ...

  7. Java面试系列

    如果你的面试简历是如下这样写的,请务必准备回答下面的所有问题. 面试职位:Java高级工程师 专业技能: (1)牢固掌握Java基础知识,如集合.并发.I/O等,并对Java源码有一定的研究. (2) ...

  8. yaourt 之 Curl 错误

    最近执行 yaourt 更新时总是出现以下错误: curl error: Couldn't connect to server 无法进行更新.把配置中的下载工具更换了成 axel 等其它下载工具,还是 ...

  9. 关于如何介绍spring框架。

    一.介绍Spring 1.Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架. 2.概念:轻量级的IOC(控制反转或者依赖注入).AOP(面向切面或者面向方面) ...

  10. js提交表单错误:document.form.submit() is not a function

    今天在写JS时,遇上这么个错误:"document.form.submit() is not a function",经过一番搜索,最终找到了修复方法. 这个错误一般是由于表单&l ...