Evolutionary Computing: 1. Introduction
Outline
- 什么是进化算法
- 能够解决什么样的问题
- 进化算法的重要组成部分
- 八皇后问题(实例)
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)
Evolutionary Computing: 1. Introduction的更多相关文章
- Evolutionary Computing: 5. Evolutionary Strategies(2)
Resource: Introduction to Evolutionary Computing, A.E.Eliben Outline recombination parent selection ...
- Evolutionary Computing: 4. Review
Resource:<Introduction to Evolutionary Computing> 1. What is an evolutionary algorithm? There ...
- Evolutionary Computing: 5. Evolutionary Strategies(1)
resource: Evolutionary computing, A.E.Eiben Outline What is Evolution Strategies Introductory Exampl ...
- Evolutionary Computing: [reading notes]On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System
resource: On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System ...
- Evolutionary Computing: Assignments
Assignment 1: TSP Travel Salesman Problem Assignment 2: TTP Travel Thief Problem The goal is to find ...
- Evolutionary Computing: multi-objective optimisation
1. What is multi-objective optimisation [wikipedia]: Multi-objective optimization (also known as mul ...
- Evolutionary Computing: 3. Genetic Algorithm(2)
承接上一章,接着写Genetic Algorithm. 本章主要写排列表达(permutation representations) 开始先引一个具体的例子来进行表述 Outline 问题描述 排列表 ...
- Evolutionary Computing: 2. Genetic Algorithm(1)
本篇博文讲述基因算法(Genetic Algorithm),基因算法是最著名的进化算法. 内容依然来自博主的听课记录和教授的PPT. Outline 简单基因算法 个体表达 变异 重组 选择重组还是变 ...
- [Z] 计算机类会议期刊根据引用数排名
一位cornell的教授做的计算机类期刊会议依据Microsoft Research引用数的排名 link:http://www.cs.cornell.edu/andru/csconf.html Th ...
随机推荐
- 几个常见Win32 API函数
1.获取客户区矩形区域 RECT cliRect; GetClientRect(hWnd, &cliRect); 2.获取窗口上下文句柄 HDC hdc = GetDC(hWnd);//... ...
- 记录工作中用到的linux命令
日常工作中会对centos进行操作,总是会有一些常用的命令记不住,特开一贴,记录那些命令,学而时习之. RPM操作类命令: 查看RPM安装路径: 1.rpm -qa|grep Memcache ...
- 关于preg_match输出多个数组的解释,使用()时
第一个数组显示的是所有的匹配,第二个显示的是第一个括号里的内容,第三个显示的是第二个括号里的内容
- 以Debug模式启动JBoss
JBoss服务器的启动方法: 假设JBoss的安装目录为$JBOSS_HOME,Windows以及Linux环境下的Debug模式的启动方法分别为:Windows环境:找到Windows下的JBoss ...
- Windows server 2008 R2搭建主域控制器 + 辅域控制器
一:实验模拟环境: Zhuyu公司是一个小公司,随着公司状大,公司越来越重视信息化建设,公司考虑到计算机用户权限集中管理及共享资源同步管理, 需要架设一套AD域控服务器,考虑到成本和日后管理问题,计划 ...
- Salted hash password
参考文档 http://www.cnblogs.com/richardlee/articles/2511321.html https://en.wikipedia.org/wiki/Salt_%28c ...
- RDIFramework.NET 框架之组织机构权限设置
RDIFramework.NET 框架之组织机构权限设置 对于某些大型的企业.信息系统,涉及的组织机构较多,模块多.操作权限也多,对用户或角色一一设置模块.操作权限等比较繁琐.我们可以直接对某一组织机 ...
- Mac OS的phpize空信息解决办法
Mac下执行phpize 出现以下信息 grep: /usr/include/php/main/php.h: No such file or directory grep: /usr/include/ ...
- 一个简易的dota改键助手
那年,刚开始玩dota的时候, 发现物品栏的快捷键太不好按鸟(集中在小键盘的数字键).于是各种改键工具应运而生,像最经典的warkey, 不知不觉就用了好多年.如今,各种改键工具越来越强大了, 支持各 ...
- dede 数据库类使用列表
dedecms的数据库操作类,非常实用,在二次开发中尤其重要,这个数据库操作类说明算是奉献给大家的小礼物了. 引入common.inc.php文件 require_once (dirname(__FI ...