Evolutionary Computing: 1. Introduction

 

 Outline

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

  

1. 什么是进化算法

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

  

<图片来源于,Pro. 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.

 It forms the basis for selection, and so it facilitates improvements.

 It defines what "improvement" means.

 Technically, it is a function or procedure that assigns a quality measure to genotypes.

 Typically, this function is composed from a quality measure in the phenotype space and the inverse representation.

 

 To stick with the example above, if the task is to find an integer x that maximises x2, the fitness of the genotype 10010 could be defined as the square of its corresponding phenotype: 182 = 324

 

3.3 种群(Population)

 A population is a multiset of genotypes. 

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

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

 

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

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

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

 

3.5 变异算子(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算法中往往有很多的随机性,因此并不能保证一定能达到那个标准。。。这样看来运算就永远无法停止。因此,为了解决这个问题,提供了如下标准作为停止算法的标准:

  • Reaching some (known/hoped for) fitness
  • Reaching some maximum allowed number of generations
  • Reaching some minimum level of diversity
  • Reaching some specified number of generations without fitness improvement

 

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

 

伪代码:

 


 

4. 八皇后问题

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

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

4.1 表达:

 

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

 

4.2 变异

 

4.3 重组

 

4.4 父母选择和监督选择

 

4.5 Summary

 

 

参考文献:教授PPT (Frank Neumann, The University of Adelaide)

 

posted @ 2016-07-08 17:19  柠檬雨  阅读(991)  评论(0编辑  收藏  举报