进化规划(Evolutionary programming,EP)

EP同GA的不同之处在于,EP的种群进化集中于自上而下的适应性行为,它 的重点是开发行为模型,即可观测系统与环境交互的模型。自然进化理论对EP的原理和范式有着重要影响。EP源于对进化的适应性行为的模拟描述,而GA源于对基因的模拟;GA是在信息编码的基因空间起作用,而EP却强调可观测行为的表现型空间,因此,EP直接利用表现型行为进化来解决问题

EP在是一种更加灵活的利用进化解决问题的方法,它的操作子对问题是自适应的。例如,它的进化依赖于变异,而非有性生殖(交叉)来产生子代。不像ES(进化策略)产生比父代更多的子代,EP通常产生的子代数量同父代相同,一般利用锦标赛方法选择父代,对他们的特征进行变异从而产生子代,当种群数量翻倍时,将父代和子代一起排序,最优的一半保留到下一代。因此,EP主要依靠两个主要的进化操作子:变异、选择

EP的步骤

1.种群初始化
2.将种群暴露在环境中
3.计算每个个体的适应度
4.每个父代随机变异
5.父代和子代的一起评估
6.选择下一代个体
7.返回到第二步直到达到终止条件

其基本算法如下图所示:

EP操作子

1.变异

变异是唯一为EP种群带来改变的操作,因此在变异算子的设计中,考虑探索能力与开发能力(exploration–exploitation) 的权衡是非常重要的。其变化过程需要使在早期有充足的探索能力以确保能够覆盖尽可能大的搜索空间;在最初探索之后,个体应当利用有关的搜索信息来对解进行微调。

例如,在求解连续无约束函数 f:Rnx→Rf:\mathcal R^{n_x}\to\mathcal Rf:Rnx​→R的最小值时,若 xi(t)\mathbf x_i(t)xi​(t)代表第 t 代的第 i 个个体,且有 xij(t)∈R,j=1,2,⋅,nxx_{ij}(t)\in\mathcal R,j=1,2,\cdot,n_xxij​(t)∈R,j=1,2,⋅,nx​。则变异可描述为:xij′(t)=xij(t)+△xij(t)x'_{ij}(t)=x_{ij}(t)+\triangle x_{ij}(t)xij′​(t)=xij​(t)+△xij​(t),其中,△xij(t)\triangle x_{ij}(t)△xij​(t)是父代的一个步长,加上步长后得到子代xij′(t)x'_{ij}(t)xij′​(t)。步长是从某些概率分布中采样得到的噪声,噪声的偏差由一个策略参数 σij\sigma_{ij}σij​决定,一般的,△xij(t)=Φ(σij(t))⋅ηij(t)\triangle x_{ij}(t)=\Phi(\sigma_{ij}(t))\cdot \eta_{ij}(t)△xij​(t)=Φ(σij​(t))⋅ηij​(t),其中,Φ:R→R\Phi:\mathcal R\to\mathcal RΦ:R→R是对噪声 ηij(t)\eta_{ij}(t)ηij​(t) 分布进行缩放的函数。

根据缩放函数 Φ\PhiΦ 的不同,EP可分为三大种类:
1.无适应EP:其中,Φ(σ)=σ\Phi(\sigma)=\sigmaΦ(σ)=σ,即,步长的偏差保持不变;
2.动态EP:步长偏差利用一个确定性函数 Φ\PhiΦ(通常是个体适应度的函数) 随时间变化而变化;
3.自适应EP:其步长变化是动态的,而σij\sigma_{ij}σij​的最优值是和决策变量xijx_{ij}xij​并行学习得到的。

σij\sigma_{ij}σij​对动态EP和自适应EP有重要影响,因此,这两种方法中中,个体可以用一个元组 χi(t)=(xi(t),σi(t))\displaystyle \chi_i(t)=(\mathbf x_i(t),\sigma_i(t))χi​(t)=(xi​(t),σi​(t)) 表示。而偏差σij\sigma_{ij}σij​是最常用的策略选择参数。

而噪声是从一些概率分布中采用得到,这些概率分布可以是:均匀分布、高斯分布、柯西分布、Levy分布、指数分布、无序分布等,或这些分布的组合。

2.选择

不同于EA,EP 是从父代和子代中选取优良个体作为下一代;而且EP的竞争是基于相对适应度而非绝对适应度。绝对适应度是利用实际的适应度函数来衡量候选解的优劣,而相对适应度表达了一个个体同一组从父代和子代中随机选择的竞争者进行比较的表现。

选择的第一步是计算每个父代 xi(t)\mathbf x_i(t)xi​(t) 和子代xi′(t)\mathbf x'_i(t)xi′​(t)的相对适应度值(分数)。定义P(t)=C(t)UC′(t)\mathcal P(t)=\mathcal C(t)\,U\,\mathcal C'(t)P(t)=C(t)UC′(t)为竞争池,ui(t)∈P(t),i=1,2,⋯,μ+λ\mathbf u_i(t)\in\mathcal P(t),i=1,2,\cdots,\mu+\lambdaui​(t)∈P(t),i=1,2,⋯,μ+λ,其中μ\muμ是从父代中选入竞争池中的个体数,λ\lambdaλ是从子代中选入竞争池的个体数。对于竞争池中的每个个体ui(t)\mathbf u_i(t)ui​(t),从剩余竞争池中的剩余的个体中随机选择一组nPn_{\mathcal P}nP​个竞争对手,计算ui(t)\mathbf u_i(t)ui​(t)的分数为si(t)=∑l=1nPsil(t)\displaystyle s_i(t)=\sum^{n_{\mathcal P}}_{l=1}s_{il}(t)si​(t)=l=1∑nP​​sil​(t)。其中,对于最小化问题,sil(t)s_{il}(t)sil​(t)可按如下方法计算:
(1)sil(t)={1iff(ui(t))<f(ul(t))0otherwises_{il}(t)=\left\{ \begin{aligned} 1 & & {if\,\,f(\mathbf u_i(t))<f(\mathbf u_l(t))}\\ 0 & & otherwise\\ \end{aligned} \right.sil​(t)={10​​iff(ui​(t))<f(ul​(t))otherwise​

或(2)sil(t)={1ifr1<f(ul(t))f(ui(t))+f(ul(t))0otherwises_{il}(t)=\left\{ \begin{aligned} 1 & & {if\,\,r_1<\frac{f(\mathbf u_l(t))}{f(\mathbf u_i(t))+f(\mathbf u_l(t))}}\\ 0 & & otherwise\\ \end{aligned} \right.sil​(t)=⎩⎪⎨⎪⎧​10​​ifr1​<f(ui​(t))+f(ul​(t))f(ul​(t))​otherwise​。 其中,nPn_{\mathcal P}nP​个对手是根据 l=[2μr2+1],r1,r2∼U(0,1)l=[2\mu r_2+1],\;r_1,r_2\sim U(0,1)l=[2μr2​+1],r1​,r2​∼U(0,1)进行选择的。当 f(ui(t))<<f(ul(t))f(\mathbf u_i(t))<<f(\mathbf u_l(t))f(ui​(t))<<f(ul​(t))时,ui(t))\mathbf u_i(t))ui​(t))的相对适应度值会显著高于ul(t))\mathbf u_l(t))ul​(t)),因此ui(t))\mathbf u_i(t))ui​(t))有很大的概率得到分数 1 。但这种方法对f(ui(t))<f(ul(t))f(\mathbf u_i(t))<f(\mathbf u_l(t))f(ui​(t))<f(ul​(t))的限制则小得多。

基于每个个体ui(t)\mathbf u_i(t)ui​(t)的分数,可以使用以下方法进行子代选择:精英主义、锦标赛法、轮盘赌法、非线性排序等。(这些选择方法可以与GA中的选择方法相同,可参考)。

EP可应用在利用有限状态机进行时间序列预测、数学函数优化等问题。

进化计算——进化规划(EP)相关推荐

  1. 进化计算/进化算法×传统数学优化方法×机器学习

    进化算法VS传统数学优化方法 进化算法是基于种群的搜索 进化算法是随机的搜索算法,不需要梯度,不需要解析的目标函数 进化算法优势 适用于没有解析目标函数和无法得到目标函数梯度信息的优化问题 基于种群, ...

  2. Computational Intelligence Assisted Design -- In Industrial Revolution 4.0 (计算智能在工业4.0的应用) --绪论

      本文内容是李耘,陈益老师的英文著作<Computational Intelligence Assisted Design – In Industrial Revolution 4.0> ...

  3. Making a Difference to Differential Evolution

    0.论文背景 差分进化(Differential Evolution)和进化规划(Evolutionary Programming)是进化计算中的两种主要算法.它们已成功地应用于许多真实世界的数值优化 ...

  4. 常见的几种最优化方法Matlab原理和深度分析

    目录 生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要 考虑的一个问题"在一定成本下,如何使利润最大化"等.最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某 ...

  5. 进化算法与遗传算法的区别

    EA  (Evolutionary Algorithms):进化算法: GA  (Genetic Algorithm):遗传算法: 进化算法包括遗传算法.进化程序设计.进化规划和进化策略. 基于对生物 ...

  6. 进化计算读书笔记(一)

    第一章 绪论 1.1 进化算法产生的背景 ​ 进化计算是求解全局最优化问题的一种新型算法,考虑如下最优化问题: ​ min ⁡ x ⊂ D f ( x ) \min_{x\subset D} f(x) ...

  7. 《遗传算法原理及应用》笔记—进化计算

    八.进化计算 笔者最近在学习遗传算法,希望可以通过笔记对遗传算法做一个简要的介绍与记录.也欢迎小伙伴们一起学习交流. 文章目录 八.进化计算 8.1 进化计算概要 8.1.1 进化计算的分类 8.1. ...

  8. 进化计算、群体优化、搜索求解的笔记

    主要内容是A与A*算法 湖南大学 从自然世界到智能时代 进化计算 进化计算是以达尔文的进化论.孟德尔的遗传学作为基础的智能方法.现实中生物进化包括:繁殖.基因重组.基因变异.个体竞争.自然选择,进化计 ...

  9. 进化计算(一)——基本原理GAGP

    进化计算基本原理&遗传算法&GP 进化计算(EAs) Defination Classification Key Concept 部分名词解释 Parallel Search 基本步骤 ...

  10. 进化计算(Evolutionary Computation)

    来源: https://baike.baidu.com/item/%E8%BF%9B%E5%8C%96%E8%AE%A1%E7%AE%97/3768586?fr=aladdin 在计算机科学领域,进化 ...

最新文章

  1. SQL Server 2008高可用性系列:数据库快照
  2. cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
  3. 自定义权限 android,Android权限控制之自定义权限
  4. AutoHotKey程序防止反编译的简单手段
  5. android 获取键盘回车键事件,设置软键盘回车键显示内容,点击空白处隐藏软键盘
  6. pytorch torchvision.transforms.CenterCrop
  7. FileProvider的使用
  8. 过程改进的疑惑 - 习惯能改么?
  9. 全站仪和手机连接软件_全站仪各方面应用的原理、操作及计算,看这篇就对了...
  10. jmeter校验结果_JMeter(1)--请求内容验证
  11. python宿舍管理系统_python实现宿舍管理系统
  12. 推荐几个在线编程学习的网站,程序员必备
  13. 第3章 Hive数据类型
  14. 【蓝桥杯】基础练习十六进制转十进制
  15. mac zoc ssh工具
  16. matter设备调试(Device Commissioning):
  17. RSI指标的秘密用法
  18. Python函数返回值的作用
  19. 小程序移植公众号网页,laravel,vue
  20. 电路的升压(boost)5-12v,降压(buck)和电荷泵

热门文章

  1. IDEA社区版利用maven创建web
  2. EOF是什么意思以及怎么输入
  3. 2015最新移动App设计尺寸视觉规范【图文版】(转)
  4. 主要搜索引擎(Google和百度、雅虎)的站内搜索代码
  5. ## 关于时下新兴的日常图片视频摄像防抖技术的简单介绍与讨论
  6. 基于Struts2和hibernate的WebSocket聊天室的实现教程五:聊天机制
  7. 加权平均数的例子_excel如何计算加权平均值_excel加权平均值计算公式
  8. JavaScript验证身份证号码(15位/18位)
  9. 为什么程序员的工资那么高
  10. 定时器+echarts运行时间太长导致内存溢出页面崩溃