演化计算

  • 一、主要的进化计算比喻
  • 二、达尔文进化论
  • 三、演化计算的动机
  • 四、问题类型
  • 四、进化算法:
    • 4.1 回顾演化计算比喻
    • 4.2 进化算法的一般方案
    • 4.3 基本组件
    • 4.4 八皇后问题

一、主要的进化计算比喻

健康:生存和繁殖的机会
质量:播种新解决方案的机会

二、达尔文进化论

达尔文进化论1:
适者生存

• 所有环境的资源都是有限的(即,只能支持有限数量的个人)
• 生命形式具有面向繁殖的基本本能/生命周期
• 因此某种选择是不可避免的
• 那些最有效地争夺资源的个体有更高的繁殖机会
• 注意:自然进化中的适应度是衍生的、次要的衡量标准,即我们(人类)为有许多后代的个体分配高适应度 (?)


达尔文进化论2:
多元化推动变革

表型特征:
– 影响对环境的反应的行为/身体差异
– 部分由继承决定,部分由开发过程中的因素决定
– 每个人都是独一无二的,部分原因是随机变化
• “合适的”表型特征:
– 导致更高的繁殖机会
– 可以继承
那么它们将在后代中趋于增加,
• 导致新的特征组合……

达尔文进化论:
概括

• 人口由多样化的个体组成
• 更好地适应的特征组合往往会增加在人口中的代表性
个人是“选择单位”
• 变异通过随机变化发生,产生恒定的多样性来源,再加上选择意味着:
人口是“进化的单位”
• 注意没有“引导力”

适应性景观隐喻(续)
• 选择“推动”人口上升
• 基因漂移:
• 特征分布的随机变化
(+ 或 -) 由抽样误差引起
• 可能导致人口“融化”山丘,从而穿越山谷并留下局部最优

三、演化计算的动机

大自然一直是工程师和科学家的灵感来源
• 自然界中已知的最佳问题解决者是:
– 创造了“车轮、纽约、战争等等”的(人类)大脑(根据道格拉斯·亚当斯的《搭便车指南》)
– 创造人类大脑的进化机制(在达尔文的物种起源之后)
• 答案 1:神经计算
• 答案2:进化计算

• 开发、分析、应用解决问题的方法,也就是
算法是数学和计算机科学的中心主题
• 彻底分析问题的时间减少
• 待解决问题的复杂性增加
• 结果:需要强大的问题解决技术

四、问题类型


问题类型 1:优化
我们有一个系统模型,并寻找给我们指定目标的输入

例如
– 大学、呼叫中心或医院的时间表
– 设计规范等


问题类型 2:建模
我们有相应的输入和输出集,并寻找模型,为每个已知输入提供正确的输出

例如:进化机器学习

问题类型 3:模拟
我们有一个给定的模型,并希望知道在不同输入条件下产生的输出

通常用于在不断变化的动态环境中回答“假设”问题,例如 进化经济学,人工生命

四、进化算法:

概述
• 进化隐喻回顾
• EA 的基本方案
• 基本组件:
– 代表/评估/人口/父母选择/
重组/突变/幸存者选择/终止
• 示例:八个皇后

4.1 回顾演化计算比喻

一群个体存在于资源有限的环境中
• 对这些资源的竞争导致选择更适应环境的更健康的个体
• 这些个体充当通过重组和突变产生新个体的种子
• 新个体的健康评估和竞争(可能也与父母)生存。
• 随着时间的推移,自然选择会提高种群的适应度

进化算法属于“生成和测试”算法类别
• 它们是随机的、基于人口的算法
• 变异算子(重组和变异)创造了必要的多样性,从而促进了新颖性
• 选择减少了多样性并成为推动质量的力量

4.2 进化算法的一般方案

典型 EA 的伪代码

什么是不同类型的 EA
• 历史上不同风格的 EA 与不同的表示法相关联
– 二进制字符串:遗传算法
– 实值向量:进化策略
– 有限状态机:进化编程
– LISP 树:遗传编程
• 这些差异在很大程度上是无关紧要的,最好的策略
– 选择适合问题的表示
– 选择变异算子以适应表示
• 选择算子只使用适应度,因此与表示无关

4.3 基本组件

表示、代表:

• 候选解决方案(个体)存在于表现型空间中
• 它们在染色体中编码,染色体存在于基因型空间中
– 编码:表型 => 基因型(不一定是一对一)
– 解码:基因型 => 表型(必须是一对一的)
• 染色体包含基因,这些基因位于(通常固定的)称为基因座(sing. locus)的位置并具有值(等位基因)
为了找到全局最优解,每个可行解都必须在基因型空间中表示

评价(适应度)函数

• 代表人口应适应的要求
• 又名质量函数或目标函数
• 为形成选择基础的每个表型分配单个实值适合度
– 所以歧视越多(不同的值)越好
• 通常我们会谈论适应度(健康?)最大化
– 一些问题最好作为最小化问题提出,但转换是微不足道的


人口、群体、总体

• 持有(表示)可能的解决方案
• 通常具有固定大小,并且是多组基因型
• 一些复杂的 EA 还断言人口的空间结构,例如网格。
• 选择算子通常考虑整个种群,即繁殖概率与当前世代相关
• 种群的多样性是指存在的不同适应度/表型/基因型的数量(注意不是同一件事)


父母选择机制

• 根据个体的健康状况分配充当父母的个体的可变概率
• 通常是概率性的
– 高质量的解决方案比低质量的解决方案更有可能成为父母
– 但不能保证
– 即使在当前人口中最糟糕的通常也有非零概率成为父母
• 这种随机性有助于摆脱局部最优

变异算子

• 作用是生成新的候选解决方案
• 通常根据它们的数量(输入的数量)分为两种类型:
– Arity 1:变异算子
– Arity >1 : 重组算子
– Arity = 2 通常称为交叉
• 关于重组和突变的相对重要性存在很多争论
– 现在大多数 EA 都同时使用
– 特定变异算子的选择取决于表示

突变

• 作用于一种基因型并提供另一种基因型
• 随机元素是必不可少的,并将其与其他一元启发式运算符区分开来
• 赋予的重要性取决于代表性和方言:
– Binary GAs – 负责保持和引入多样性的后台操作员
– FSM/连续变量的 EP – 仅搜索运算符
– GP – 很少使用
• 可以保证搜索空间的连通性,从而保证收敛性证明

重组/交叉

• 将来自父母的信息合并到后代中
• 选择要合并的信息是随机的
• 大多数后代可能更糟,或与父母相同
• 希望通过结合可产生良好性状的基因型元素,有些效果会更好
• 该原理已被植物和牲畜育种者使用了数千年


幸存者选择

• 又名替代品
• 大多数 EA 使用固定的人口规模,因此需要一种从(父母 + 后代)到下一代的方式
• 通常是确定性的
– 基于健身:例如,对父母+后代进行排名并取得最佳成绩
— 基于年龄:产生与父母一样多的后代并删除所有父母
• 有时进行组合(精英主义)


初始化/终止

初始化通常是随机完成的
– 需要确保可能的等位基因值的均匀分布和混合
– 可以包括现有的解决方案,或使用特定问题的启发式方法来“播种”群体

每一代都检查终止条件
– 达到一些(已知/希望)健身
– 达到允许的最大代数
– 达到某种最低程度的多样性
– 在没有适应度改进的情况下达到某些指定的代数

4.4 八皇后问题

将 8 个皇后放在一个 8x8 的棋盘上,使它们不能相互检查


8皇后问题:表象、代表

表型:主板配置
基因型:数字 1 - 8 的排列

8皇后问题:健康评估

•处罚一名王后:
她能查到的皇后数量。
•配置惩罚:
所有皇后的惩罚之和。
•注:应尽量减少处罚
•配置的适用性:
反向惩罚最大化


8皇后问题:重组

将两个排列组合成两个新排列:
•选择随机交叉点
•将第一部分复制到子部分
•通过插入来自其他父级的值来创建第二部分:
•按照它们出现的顺序
•交叉点后开始
•跳过子级中已有的值

八皇后问题:选择

父母选择
–选择5个父母,选择最好的两个进行交叉

幸存者选择(替换)
–在将新子女插入人口时,请选择要替换的现有成员:
–通过降低适合度对整个人群进行分类
–从高到低枚举此列表
–取代人口中最差的人

注:这只是一组可能的运算符和参数选择

8皇后问题:示例解

表型:电路板配置
<–> 明显的映射
基因型:数字1 - 8的排列

哈工大演化计算PPT1(精译)相关推荐

  1. 演化计算简单实例(附代码)

    版权声明:本文为博主原创文章,转载请注明出处. 本周的任务一个是搞JavaWeb的学习,一个是搞演化计算的学习,可惜的是JavaWeb的东西没搞出来,现在还是一团乱麻,演化计算终于是写出个小程序,但是 ...

  2. 演化计算(蚁群算法、粒子群算法、遗传算法、演化规则......)

    演化计算(蚁群算法.粒子群算法.遗传算法.演化规则......) 1.概念 2.传统算法和演化计算 3.一般步骤 1.概念   演化计算主要用于解决预测优化问题.由于演化计算利用一组解求解,所以这一组 ...

  3. 演化计算基准函数(Python版)

    基准函数是测试演化计算算法性能的函数集,由于大部分基准函数集都是C/C++编写,Python编写的基准函数比较少,因此本文实现了13个常用基准函数的Python版. 基准函数定义 代码实现 bench ...

  4. 2015年上半年系统集成项目管理工程师案例计算题精讲视频(乔俊峰)

    2015年上半年系统集成项目管理工程师案例计算题精讲视频(乔俊峰) 讲师介绍:  乔俊峰,高校教师 / 培训机构讲师,高级项目管理师.信息系统项目管理师.高级项目经理.美国项目管理专业人士.网络规划设 ...

  5. 2015年上半年系统集成项目管理工程师案例计算题精讲(乔俊峰)-乔俊峰-专题视频课程...

    2015年上半年系统集成项目管理工程师案例计算题精讲(乔俊峰)-4560人已学习 课程介绍         计算题专题,考试重难点专项突破,考试难点突破,让丢分题变成送分题.通过软考不是梦! 高项下午 ...

  6. NLP---LTP(哈工大社会计算与信息检索研究中心)

    介绍 语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统.LTP制定了基于XML的语言处理结果表示, ...

  7. 演化计算基本方法与思想

    生物系统中,进化被认为是一种成功的自适应方法,具有很好的健壮性. 基本思想:达尔文进化论是一种稳健的搜索和优化机制.大多数生物体是通过自然选择和有性生殖进行进化.自然选择决定了群体中哪些个体能够生存和 ...

  8. 演化计算可能是人工智能的下一个热点

    演化计算--人工智能的下一个热点 演化计算经常用到智能优化和机器学习当中,但是这种机器学习跟大家平常说的深度学习的机器学习不是很一样.演化计算在机器人的脑体一体化设计中应该有相当大的用武之地.演化计算 ...

  9. 【软件构造】课件精译(三)软件生命周期与配置管理

    一.本章概述 1.软件开发的生命周期 2.传统软件开发模型(瀑布模型.增量模型.V模型.原型法.螺旋模型) 3.敏捷开发和极限编程 4.协同软件开发 5.软件配置管理 6.Git 7.总结 二.本章目 ...

最新文章

  1. Nginx 的这些妙用,你都 get 到了吗?
  2. matlab中sinks,MATLAB Simulink模块库详解(二)Sinks篇
  3. “懒惰”Linux 管理员的 10 个关键技巧
  4. 1.1 Windows 程序运行原理(消息循环和响应)
  5. MyTask - old implementation - getEntitySet
  6. 常用命令之------ln
  7. 多媒体计算机技术的主要特点,多媒体技术主要特点?
  8. 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考
  9. python 螺旋数组_人工智能首选语言是什么 究竟Python有多强大
  10. lduan SCVMM 2012 库服务器(五)
  11. domino Format函数详解
  12. displayTag使用详解
  13. Kali Linux 暴力破解 Excel密码
  14. 如何在企业微信网页授权链接中加入自定义参数
  15. 修改织梦cms模板方法总结,织梦建站必看
  16. 拔丝芋头的Java学习日记--Day1
  17. 龟兔赛跑编程c语言蓝桥,龟兔赛跑
  18. python菜鸟教程mac安装_Python菜鸟教程 | 多平台安装
  19. java类与对象实验报告心得体会_java上机实验心得体会报告(大全五篇)
  20. 在Linux平台上搭建EasyDarwin,编译代码并简单部署

热门文章

  1. 上海大学计算机考研专业课真题答案,上海大学计算机考研专业课复习经验
  2. 微信公众平台HTTPS方式调用配置免费https服务器
  3. 基于Blinker的小爱同学语音控制【脱坑指南】
  4. pytorch lightning
  5. MySQL 中间件汇总比较
  6. iatf16949标准三大过程_IATF16949标准过程绩效指标建立需注意的事项
  7. 03大数据技术之Hadoop(HDFS)
  8. 带有EP4CE的FPGA(ALTERA)的固化程序图文教程
  9. dwr框架查看外放方法_轻松看懂建筑图纸符号!这样简单高效的方法你一定要知道...
  10. qlabel 添加图标_Qt 程序和窗口添加图标