码迷,mamicode.com
首页 > 编程语言 > 详细

1. Introduction ——进化算法

时间:2016-07-08 18:20:29      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

本系列博客开始介绍进化算法。

知识内容来源于本人在硕士阶段听的课程以及阅读的文献书籍。算是听课笔记或是读书笔记吧。

博主在国外读的书,可能就中英文混杂了。


 Outline

  1. 什么是进化算法
  2. 能够解决什么样的问题
  3. 进化算法的重要组成部分
  4. 八皇后问题(实例)

  

1. 什么是进化算法

 遗传算法(GA)是模拟生物进化过程的计算模型,是自然遗传学与计算机科学相互结合的新的计算方法。

 技术分享 

<图片来源于,Frank Neumann, The University of Adelaide>

 


 

2. 能够解决什么样的问题

我们主要面对的三个问题类型:

 

2.1 Optimisation

我们有一个系统模型,但是需要寻找合适的input,来达到我们想要的目标。

技术分享

 

2.2 Modelling

我们已经有了很多组input 和 output,现在需要寻找一个合适的模型来让每一个input都可以得到正确的output。

技术分享

 

2.3 Simulation 

我们已经有了一个给定的model,现在希望得到在不同input情况下的output结果。

技术分享

 

 


 

3. 进化算法的重要组成部分(Components of Evolutionary Algorithms) 

  • 表达
  • 评估算法/适应算法
  • 人口
  • 父母选择机制
  • Variation operators
  • 监督选择机制 
  • 初始化 
  • 终止条件

 有些东西比较抽象,后面章节会详细介绍的。

  

3.1 表达(Representation)

 表现型和基因型 (phenotypes and genotypes)

 直接举例来说:

 比如在一个优化问题中,所有的可能的解都是整型的(int),那么给定的整型就是一组表现型。

 在这个例子中这些整型可以由二进制来表示,那么比如18是一个表现型,那么10010就是基因型。

 <这样举例说具体一点,但并不是说基因型就是二进制>

 

 基因型(genotype) --> 通过解码(decode) --> 表现型(phenotype)

 我们的目的是要获得一个最终最好的solution,那么这个solution就是通过,decode最佳的基因型来获得的。

  

3.2 评估算法/适应算法(Evaluation function/Fitness Function)

 The role of the evaluation function is to represent the requirements the population should adapt to.

 简单说这个进化算法就是用来解决如何进行improvement的。

  

3.3 人口 (Population)

 A population is a multiset of genotypes. 

 Population可以容下所有可能的solution,包含许多的基因型集合。

 个体(individuals),相当于静态的对象,不能改变或者说适应,是要靠population来进行适应和改变的。

 

3.4 父母选择机制(Parent selection mechanism)

 父母选择机制,用来从众多的个体中,区分出质量好的拿一部分。

 其中更好的个体,超越了他们父母的个体,将会用来作为新父母,用来产生新的下一代。

 

3.5 Variation operators

 variation operators的作用,就是从旧的个体中创造出新的个体。也即根据表现型,创造出新的候选solution。

 这一块包含了突变(mutation)和重组(recombination)

 

变异 说的是一个基因型产生一个变异体(也即子孙后代),这种突变伴随着一系列的随机性选择。

这东西可以看作是为基因池(gene pool)提供新鲜血液(fresh blood)

变异可以理解为一元的variation operator

 

重组 说的是将父母的基因型混合到子孙后代的基因型中去。和突变一样,如何合并以及合并的部分也是随机的。

 The principle behind recombination is simple - by mating two individuals with different but desirable features, we can produce an offspring that combines both of those features.  

重组可以理解为二元的variation operator

 

3.6 监督选择机制 (Survivor selection mechanism)

 监督选择机制的作用就是用来从众多的个体中,区分出质量较好的那一部分。

 和 父母选择 的区别:

 1. 运用的阶段不同。监督选择机制将会用在,当新的子孙后代被产生以后。

 2. 父母选择 通常会带有随机性质(stochastic),而监督选择机制则是具有确定性的(deterministic)

 

3.7 初始化(Initialisation)

讲了那么多进化,那第一代的population是怎么来的呢。

The first population is seeded by randomly generated individuals.

这说起来挺神奇的,就是这么随机出来的。。。后面会详细说。

 

3.8 终止条件(termination condition)

一直在进化,那总得有个尽头吧,就像递归一样,应该有个终止条件。

在有些问题当中,问题会给一个已知的标准,已知的优化适应标准,当达到 或者 在一定程度上接近这个标准以后,我们就可以停止了。

但是,在EA算法中往往有很多的随机性,因此并不能保证一定能达到那个标准。。。这样看来运算就永远无法停止。因此,为了解决这个问题,我们还提供了如下标准作为停止算法的标准:

  • The maximally allowed CPU time elapses.
  • The total number of fitness evaluations reaches a given limit.
  • The fitness improvement remains under a threshold value for a given period of time (i.e., for a number of generations or fitness evaluations).
  • The population diversity drops under a given threshold.

 

概念比较多,用一幅图小结一下:

技术分享

 

伪代码:

技术分享

 


 

4. 八皇后问题

上面讲得太抽象,下面讲一个简单的实例。

什么是八皇后问题?详见百度百科,这里介绍算法。

4.1 表达:

技术分享

 

从图上看,表现型 就是棋盘上表现出的情况。基因型 就是那一组数字 13526478(每个数字代表了棋盘上的位置)

 

4.2 变异

技术分享

 

4.3 重组

技术分享

 

4.4 父母选择和监督选择

技术分享

 

4.5 Summary

技术分享

 

 

参考文献:主要来源笔记和教授的PPT。Frank Neumann, The University of Adelaide

 

1. Introduction ——进化算法

标签:

原文地址:http://www.cnblogs.com/adelaide/p/5653109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!