初识遗传算法Genetic Algorithm(GA)

  遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等,是一个通过计算机模拟解决最优化问题的过程,遗传算法从代表问题可能存在的一个解集的一个种群(population)开始的,一个种群由一定数量的候选解也称为个体(individual)组成,个体由基因(gene)编码而成,基因的表现形式实际上是每个个体上带有的染色体(chromosome) 染色体即为基因的集合,应用遗传算法的一般步骤是:1.需要实现表现形到基因型的编码工作,常用编码方法有二进制编码、格雷码编码、浮点编码和符号编码。2.进化从随机个体(初代种群)的种群开始,之后一代一代进化。按照优胜劣汰的准则在每一代中,评价整个种群的适应度(fitness),从当前种群中选择(selection)多个个体(基于它们的适应度)。3.借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)变异(mutation) 产生新的种群,该种群在算法的下一次迭代中成为新的种群。4.在末代种群中的最优个体通过解码(decoding)产生最优解

笛卡尔遗传规划介绍

  笛卡尔遗传规划源自 Miller 等人对进化数字电路的发展。1999 年出现了专门研究笛卡尔遗传规划的团队2000 年由 Miller 等人发表了Cartesian Genetic Programming,正式提出了笛卡尔遗传规划的一般形式。笛卡尔遗传规划由一个带索引节点的有向图表示,这是一个有n个输入m个输出的有向图(directed graph),其中输入节点的下标为 0 到 n-1,输出由最后一列的m个节点得到。有向图的每个节点都由 4 个正整数组成,其中包含 2 个输入位、1 个参数位和 1 个用来索引使用函数的函数索引位。每个节点通过两个输入、一个参数并通过所选函数计算出节点的输出。如图所示该个体的染色体的基因型由这些节点组成,有向图的大小为\(r\times c\),其中同一列的节点不可以互相连接,节点只能向前连接,不同列的节点的连接限制为Levels-back(例如Levels-back = 2 那么第i列的节点最多可以连接到i-2列)。不同个体之间可以交叉、变异等一系列遗传变换产生新的个体。

通常选用具有一行任意列的纵深形式的CGP网络,一般来说节点函数的元数一般与节点输入个数相同

Reference:

[1] Miller, Julian F. "Cartesian genetic programming." Cartesian Genetic Programming. Springer, Berlin, Heidelberg, 2011. 17-34. Online Tutorials:PPSN 2014 Tutorial

未完待续。。。。。。。

笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)的更多相关文章

  1. 【遗传编程/基因规划】Genetic Programming

    目录 背景介绍 程序表示 初始化 (Initialization) Depth定义 Grow方法 Full方法 Ramped half-and-half方法 适应度(Fitness)与选择(Selec ...

  2. 遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践

    1. 遗传编程简介 0x1:什么是遗传编程算法,和传统机器学习算法有什么区别 传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法.对于这些机器学习算法来说,唯一的灵活性体现在 ...

  3. 笛卡尔树Cartesian Tree

    前言 最近做题目,已经不止一次用到笛卡尔树了.这种数据结构极为优秀,但是构造的细节很容易出错.因此写一篇文章做一个总结. 笛卡尔树 Cartesian Tree 引入问题 有N条的长条状的矩形,宽度都 ...

  4. POJ 2201 Cartesian Tree ——笛卡尔树

    [题目分析] 构造一颗笛卡尔树,然后输出这棵树即可. 首先进行排序,然后用一个栈维护最右的树的节点信息,插入的时候按照第二关键字去找,找到之后插入,下面的树成为它的左子树即可. 然后插入分三种情况讨论 ...

  5. [模板] 笛卡尔树 && RMQ

    话说我noip之前为什么要学这种东西... 简介 笛卡尔树(Cartesian Tree) 是一种二叉树, 且同时具有以下两种性质: 父亲节点的值大于/小于子节点的值; 中序遍历的结果为原序列. 笛卡 ...

  6. HDU - 1506 Largest Rectangle in a Histogram (单调栈/笛卡尔树)

    题意:求一个直方图中最大矩形的面积. 很经典的一道问题了吧,可以用单调栈分别求出每个柱子左右两边第一个比它低的柱子(也就相当于求出了和它相连的最后一个比它高的柱子),确定每个柱子的左右边界,每个柱子的 ...

  7. 19牛客暑期多校 round1 A 有关笛卡尔树的结论

    题目传送门//res tp nowcoder 分析 定理:B1~B2当且仅当B1与B2有同构的笛卡尔树. (B₁~B₂ iff B₁ and B₂ have isomorphic Cartesian ...

  8. codevs2178 表达式运算Cuties[笛卡尔树]

    2178 表达式运算Cuties  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 大师 Master 题解  查看运行结果     题目描述 Description 给出一个表达 ...

  9. POJ 2559 Largest Rectangle in a Histogram ——笛卡尔树

    [题目分析] 本来是单调栈的题目,用笛卡尔树可以快速的水过去. 把每一个矩阵看成一个二元组(出现的顺序,高度). 然后建造笛卡尔树. 神奇的发现,每一个节点的高度*该子树的大小,就是这一块最大的子矩阵 ...

随机推荐

  1. Spark 分布式调试工具

    0. 说明 编写工具类,考察 Spark 分布式程序的执行地点 1. 工具类编写 [ JMX ] Java Management Extend , Java 管理扩展服务. 主要用于运维和监控. [测 ...

  2. 【转】HTTP学习---Web 缓存

    [原文]https://www.toutiao.com/i6592743068623962632/ 1. 前端缓存概述 前端缓存主要是分为HTTP缓存和浏览器缓存.其中HTTP缓存是在HTTP请求传输 ...

  3. mysql5.7 误删管理员root账户

    1.停止数据库,并在mysql配置文件my.cnf中添加skip-grant-tables参数到[mysqld]配置块中 2. 执行 systemctl start mysqld 3. 执行 mysq ...

  4. 1)HDFS分布式文件系统 2)HDFS核心设计 3 )HDFS体系结构

    一.HDFS简介 1.HDFS:Hadoop distributed file system 一个分布式文件系统 基于流数据模式访问和处理超大文件的需要而开发 适合应用在大规模数据集上 2. 优点 处 ...

  5. Jenkins 在mac平台的安装与配置

    1. 安装: 强烈推荐直接下载war包方式安装,方便修改项目工作目录.首先确保电脑上安装了java,接着下载tomcat(任意版本).将tomcat安装在任意想要的目录,然后下载jenkins war ...

  6. Beta阶段第三次冲刺

    Beta阶段第三次冲刺 严格按照Git标准来,组员有上传Git的才有贡献分没有的为0 代码签入图 1.part1 -站立式会议照片 2.part2 -项目燃尽图 3.part3 -项目进展 1.正在进 ...

  7. Ecstore 默认图片压缩质量差的问题解决方法

    修改app/image/lib/clip.php文件 }elseif( function_exists('imagecopyresampled')){ $quality = 80; $image_p ...

  8. 如何修改word文档中每行字符的最大默认值和每页最大行数默认值

    事情起因是这样的,小明在写论文的过程中,发现自己的文档的字与字的间距看起来比其他人的字符间距大,于是觉得奇怪,明明设置了一样的格式啊,设置每行38个字符,每页34行,为什么小明写的文档字符间距看着比较 ...

  9. Debian apt-get 用法

    (说明:sudo--使用超级管理员权限进行apt-get ; packagename--代表安装的软件包名) sudo apt-get update —— 在修改/etc/apt/sources.li ...

  10. 'No Transport' Error w/ jQuery ajax call in IE

    I need to use foursquare API to search venues. Of course it is cross-domain. It has no any problems ...