达尔文进化论1:
适者生存
• 所有环境的资源都是有限的(即,只能支持有限数量的个人)
• 生命形式具有面向繁殖的基本本能/生命周期
• 因此某种选择是不可避免的
• 那些最有效地争夺资源的个体有更高的繁殖机会
• 注意:自然进化中的适应度是衍生的、次要的衡量标准,即我们(人类)为有许多后代的个体分配高适应度 (?)
表型特征:
– 影响对环境的反应的行为/身体差异
– 部分由继承决定,部分由开发过程中的因素决定
– 每个人都是独一无二的,部分原因是随机变化
• “合适的”表型特征:
– 导致更高的繁殖机会
– 可以继承
那么它们将在后代中趋于增加,
• 导致新的特征组合……
达尔文进化论:
概括
• 人口由多样化的个体组成
• 更好地适应的特征组合往往会增加在人口中的代表性
个人是“选择单位”
• 变异通过随机变化发生,产生恒定的多样性来源,再加上选择意味着:
人口是“进化的单位”
• 注意没有“引导力”
适应性景观隐喻(续)
• 选择“推动”人口上升
• 基因漂移:
• 特征分布的随机变化
(+ 或 -) 由抽样误差引起
• 可能导致人口“融化”山丘,从而穿越山谷并留下局部最优
大自然一直是工程师和科学家的灵感来源
• 自然界中已知的最佳问题解决者是:
– 创造了“车轮、纽约、战争等等”的(人类)大脑(根据道格拉斯·亚当斯的《搭便车指南》)
– 创造人类大脑的进化机制(在达尔文的物种起源之后)
• 答案 1:神经计算
• 答案2:进化计算
• 开发、分析、应用解决问题的方法,也就是
算法是数学和计算机科学的中心主题
• 彻底分析问题的时间减少
• 待解决问题的复杂性增加
• 结果:需要强大的问题解决技术
问题类型 1:优化
我们有一个系统模型,并寻找给我们指定目标的输入
例如
– 大学、呼叫中心或医院的时间表
– 设计规范等
问题类型 2:建模
我们有相应的输入和输出集,并寻找模型,为每个已知输入提供正确的输出
例如:进化机器学习
问题类型 3:模拟
我们有一个给定的模型,并希望知道在不同输入条件下产生的输出
通常用于在不断变化的动态环境中回答“假设”问题,例如 进化经济学,人工生命
概述
• 进化隐喻回顾
• EA 的基本方案
• 基本组件:
– 代表/评估/人口/父母选择/
重组/突变/幸存者选择/终止
• 示例:八个皇后
一群个体存在于资源有限的环境中
• 对这些资源的竞争导致选择更适应环境的更健康的个体
• 这些个体充当通过重组和突变产生新个体的种子
• 新个体的健康评估和竞争(可能也与父母)生存。
• 随着时间的推移,自然选择会提高种群的适应度
进化算法属于“生成和测试”算法类别
• 它们是随机的、基于人口的算法
• 变异算子(重组和变异)创造了必要的多样性,从而促进了新颖性
• 选择减少了多样性并成为推动质量的力量
典型 EA 的伪代码
什么是不同类型的 EA
• 历史上不同风格的 EA 与不同的表示法相关联
– 二进制字符串:遗传算法
– 实值向量:进化策略
– 有限状态机:进化编程
– LISP 树:遗传编程
• 这些差异在很大程度上是无关紧要的,最好的策略
– 选择适合问题的表示
– 选择变异算子以适应表示
• 选择算子只使用适应度,因此与表示无关
表示、代表:
• 候选解决方案(个体)存在于表现型空间中
• 它们在染色体中编码,染色体存在于基因型空间中
– 编码:表型 => 基因型(不一定是一对一)
– 解码:基因型 => 表型(必须是一对一的)
• 染色体包含基因,这些基因位于(通常固定的)称为基因座(sing. locus)的位置并具有值(等位基因)
为了找到全局最优解,每个可行解都必须在基因型空间中表示
评价(适应度)函数
• 代表人口应适应的要求
• 又名质量函数或目标函数
• 为形成选择基础的每个表型分配单个实值适合度
– 所以歧视越多(不同的值)越好
• 通常我们会谈论适应度(健康?)最大化
– 一些问题最好作为最小化问题提出,但转换是微不足道的
• 持有(表示)可能的解决方案
• 通常具有固定大小,并且是多组基因型
• 一些复杂的 EA 还断言人口的空间结构,例如网格。
• 选择算子通常考虑整个种群,即繁殖概率与当前世代相关
• 种群的多样性是指存在的不同适应度/表型/基因型的数量(注意不是同一件事)
• 根据个体的健康状况分配充当父母的个体的可变概率
• 通常是概率性的
– 高质量的解决方案比低质量的解决方案更有可能成为父母
– 但不能保证
– 即使在当前人口中最糟糕的通常也有非零概率成为父母
• 这种随机性有助于摆脱局部最优
变异算子
• 作用是生成新的候选解决方案
• 通常根据它们的数量(输入的数量)分为两种类型:
– Arity 1:变异算子
– Arity >1 : 重组算子
– Arity = 2 通常称为交叉
• 关于重组和突变的相对重要性存在很多争论
– 现在大多数 EA 都同时使用
– 特定变异算子的选择取决于表示
突变
• 作用于一种基因型并提供另一种基因型
• 随机元素是必不可少的,并将其与其他一元启发式运算符区分开来
• 赋予的重要性取决于代表性和方言:
– Binary GAs – 负责保持和引入多样性的后台操作员
– FSM/连续变量的 EP – 仅搜索运算符
– GP – 很少使用
• 可以保证搜索空间的连通性,从而保证收敛性证明
重组/交叉
• 将来自父母的信息合并到后代中
• 选择要合并的信息是随机的
• 大多数后代可能更糟,或与父母相同
• 希望通过结合可产生良好性状的基因型元素,有些效果会更好
• 该原理已被植物和牲畜育种者使用了数千年
• 又名替代品
• 大多数 EA 使用固定的人口规模,因此需要一种从(父母 + 后代)到下一代的方式
• 通常是确定性的
– 基于健身:例如,对父母+后代进行排名并取得最佳成绩
— 基于年龄:产生与父母一样多的后代并删除所有父母
• 有时进行组合(精英主义)
初始化通常是随机完成的
– 需要确保可能的等位基因值的均匀分布和混合
– 可以包括现有的解决方案,或使用特定问题的启发式方法来“播种”群体
每一代都检查终止条件
– 达到一些(已知/希望)健身
– 达到允许的最大代数
– 达到某种最低程度的多样性
– 在没有适应度改进的情况下达到某些指定的代数
将 8 个皇后放在一个 8x8 的棋盘上,使它们不能相互检查
表型:主板配置
基因型:数字 1 - 8 的排列
8皇后问题:健康评估
•处罚一名王后:
她能查到的皇后数量。
•配置惩罚:
所有皇后的惩罚之和。
•注:应尽量减少处罚
•配置的适用性:
反向惩罚最大化
将两个排列组合成两个新排列:
•选择随机交叉点
•将第一部分复制到子部分
•通过插入来自其他父级的值来创建第二部分:
•按照它们出现的顺序
•交叉点后开始
•跳过子级中已有的值
八皇后问题:选择
父母选择
–选择5个父母,选择最好的两个进行交叉
幸存者选择(替换)
–在将新子女插入人口时,请选择要替换的现有成员:
–通过降低适合度对整个人群进行分类
–从高到低枚举此列表
–取代人口中最差的人
注:这只是一组可能的运算符和参数选择
8皇后问题:示例解
表型:电路板配置
<–> 明显的映射
基因型:数字1 - 8的排列