遗传算法

from  http://blog.sina.com.cn/s/blog_4b837cbf010008rm.html


这两天在本部做项目,到现在脑子还是一头雾水,不知如何进入。
    开会后,分配了“遗传算法”,好歹也是咱数据挖掘的兄弟,那本书来研究研究。
    学到了点小小小小的意思,放到这,千万别忘了。
   
    遗传算法(Genetic Algorithm,简称GA),起源于对生物系统所进行的计算机模拟研究,是一种借鉴生物界自然选择和自然遗传机制的随机搜索方法。由美国(怎么又是美国人,切,古拉基古拉)Michigan大学的Holland教授及其学生创造,并提出遗传算法的基本定理--模式定理(Schema Theorem)。
    从整个发展过程看,遗传算法兴起于70年代,发展于80年代,90年代进入高潮期,很鲁棒哦。
    遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了伟大的达尔文先生的进化论和孟德尔的遗传学说。采用“适者生存”的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。其实很像人类,从古至今,都是优胜劣汰,长得漂亮的,聪明的才能适应社会嘛。
    然后应用复制、交叉、变异、显性、倒位等遗传算子。交叉的作用是很大的,变异则可以阻止局部收敛。最后,种群中个体的平均性能达到提高,好的个体被保存并且相互产生下一代,而低适应度的个体则小时。
 
    最后,介绍一下遗传算法的优点吧:
    一、对可行解表示的广泛性。由于遗传算法的处理对象并不是参数本身,而是那些通过参数集进行编码得到的基因个体,因而该算法可以直接对结构对象(如集合、序列、矩阵、树、链和表等)进行操作。
    1、通过对连接矩阵的操作,可用来对神经网络或自动机的结构或参数加以优化。
    2、通过对集合的操作,可实现对规则集合和知识库的精练而达到高质量的机器学习目的。
    3、通过对树结构的操作,可得到用于分类的最佳决策树。(可以用于对含能化合物进行分类)
    4、通过对人物序列的操作,可用于任务规划;通过对操作序列的处理,可自动构造顺序控制系统。
    二、群体搜索特性。遗传算法同时处理群体中多个个体,即同时对搜索空间中的多个解进行评估。使其具有较好的全局搜索性能,并易于并行化。
    三、不需要辅助信息。仅用适应度函数来评估基因个体,并在此基础上进行遗传操作。
    四、内在启发式随机搜索特性。遗传算法不采用确定性规则,而是采用概率的变迁规则来指导搜索方向。
    五、在搜索过程中不易陷入局部最优。即使在所定义的适应度函数是不连续的、非规则的或有噪声的情况下。
    六、采用自然进化机制来表现复杂的现象。能够快速准确的解决求解非常困难的问题。
    七、具有固有的并行性和并行计算能力。
    八、具有可扩展性。易于同别的技术混合使用。
 
    写到这,自然会想到,既然遗传算法有这么多的优点,不可能连一点点缺点都没有吧??
    当然,缺点是必不可少的:〉
    1、编码不规范及编码存在表示的不准确性。
    2、单一的遗传算法编码不能全面的将优化问题的约束表示出来。
    3、效率通常比较低。
    4、容易出现过早收敛。
    5、对算法的精度、可信度、计算复杂性等方面,还没有有效的定量分析方法。

-------------------------------------------------------------------------------

早上下雨了,淋了一身,且罢,浇浇脑子,全当施肥,不知清醒否。书还在昨天看到的地方,那就继续吧。

    对最优化问题,求最优解或近似最优解的传统方法主要有解析法、随机法和穷举法。解析法主要包括爬山法和间接法。随机法主要包括导向随机方法和盲目随机方法。而穷举法主要包括完全穷举法、回溯法、动态规划法和限界剪枝法。

    也可用遗传算法求解,遗传算法与传统方法有本质区别。传统算法起始于单个点,而遗传算法则起始于群体;传统算法是针对问题特有的特点进行改善,而遗传算法则是独立于问题。

  具体区别如下:

  1、遗传算法与启发式算法的比较:

  启发式算法是指通过寻求一种能产生可行解的启发式规则,找到问题的一个最优解或近似最优解。然而它必须对每一个所求的问题找出其特有的启发式规则,且一般无通用性,不适用于其他问题。但遗传算法采用的不适确定性规则,而是强调利用概率转换来引导搜索过程。

  2、遗传算法与爬山法的比较:

  爬山法是指接法、梯度法和Hessian法的通称。首先在最优解可能存在的地方选择一个初始点,然后通过分析目标函数的特性,由初始点移到一个新的点,然后再继续这个过程。爬山法的搜索过程是确定的,它通过产生一系列的点收敛到最优解。而遗传算法的搜索过程是随机的,它产生一系列随机种群序列。二者的主要差异为:爬山法的初始点只有一个,由决策者给出;遗传算法的初始点有多个,是随机产生的。爬山法由一个点产生一个新的点;遗传算法通过遗传操作,在当前的种群中经过交叉、变异和选择产生下一代种群。

   3、遗传算法与穷举法的比较:

   穷举法就是对解空间内的所有可能解进行搜索,方法简单易行,但求解效率太低。而遗传算法则具有较高的搜索能力和极强的鲁棒性。

   4、遗传算法与盲目随机法的比较:

   只有解在搜索空间形成紧致分布时,盲目随机法才比较有效。而遗传算法作为导向随机搜索方法,是对一个被编码的参数空间进行高效搜索。

   总结一下,主要有以下四点不同:

A、 遗传算法搜索种群中的点是并行的,而不是单点。

B、  遗传算法并不需要辅助信息或辅助知识,只需要引进各项搜索方向的目标函数和相   对应的适应度。

C、  遗传算法使用概率变换规则,而不是确定的变换规则。

D、遗传算法工作使用编码参数集,而不是自身的参数集。(除了在实值个体中使用)

  

  一些术语:

  在遗传算法中,染色体对应的是数据或数组,在标准的遗传算法中,通常是由一维的串结构数据表现的。串上各个位置对应基因座,各位置上所取的值对应等位基因。遗传算法处理的是染色体或者叫基因型个体。一定数量的个体组成了群体,也叫集团。各个体对环境的适应程度叫适应度。

  执行遗传算法时,包含两个必要的数据转换操作,一个是表现型到基因型的转换,它把搜索空间的参数或解转换成遗传空间中的染色体或个体,此过程称为编码操作;另一个是基因型到表现型的转换,它是前者的一个相反操作,称为译码操作。(对本项目而言,编码操作就是将各含能化合物设置成程序可以识别的二进制编码或其他代码,译码操作则是将生成的解转换成现实中的含能化合物结构或是分子式)

 

 研究方向:

 1、在遗传算法中,群体规模和遗传算子的控制参数的选取非常困难。存在过早收敛。

 2、遗传算法的并行性主要有三个方面:个体适应度评价的并行性、整个群体各个个体适应度评价的并行性和子代群体产生过程的并行性。

  3、分类系统属于基于遗传算法的机器学习中的一类,包括一个简单的基于串规则的并行生成子系统、规则评价子系统和遗传算法子系统。

  4、遗传神经网络包括连接级、网络结构和学习规则的进化。

  5、进化算法包括遗传算法、进化规划和进化策略,三种算法是独立发展起来的。

 

  遗传算法的运行过程:

  遗传算法模拟了自然选择和遗传中发生的复制、交叉和变异等现象,从任一初始种群(Population)出发,通过随机选择、交叉和变异操作,产生一群更适应环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),求得问题的最优解。

 

  简单遗传算法的伪代码描述:

  Procedure GA

  Begin

      T=0;

      Initialize  p(t) ; //p(t)表示 t代种群

      Evaluate  p(t);  //评估第t代种群

      While not finished do

      Begin

           T=t+1;

           Select p(t) from p(t-1); //从上代种群众选择较优秀的个体到下代子群

           Reproduce pairs in p(t);

           Evaluate p(t);

      End

End

 

  遗传算法的三个基本操作:

1、  选择(Selection):根据各个个体的适应度值,按照一定的规则或方法从上一代群体中选择出一些优良的个体遗传到下一代群体中。体现了达尔文的适者生存原则。

2、  交叉(Crossover):最主要的遗传操作。将群体中的各个个体随机搭配成对,对每一个个体,以某个概率(称为交叉概率,Crossover Rate)交换它们之间的部分染色体。体现了信息交换的思想。

  • 16
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值