笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
初识遗传算法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)的更多相关文章
- 【遗传编程/基因规划】Genetic Programming
目录 背景介绍 程序表示 初始化 (Initialization) Depth定义 Grow方法 Full方法 Ramped half-and-half方法 适应度(Fitness)与选择(Selec ...
- 遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践
1. 遗传编程简介 0x1:什么是遗传编程算法,和传统机器学习算法有什么区别 传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法.对于这些机器学习算法来说,唯一的灵活性体现在 ...
- 笛卡尔树Cartesian Tree
前言 最近做题目,已经不止一次用到笛卡尔树了.这种数据结构极为优秀,但是构造的细节很容易出错.因此写一篇文章做一个总结. 笛卡尔树 Cartesian Tree 引入问题 有N条的长条状的矩形,宽度都 ...
- POJ 2201 Cartesian Tree ——笛卡尔树
[题目分析] 构造一颗笛卡尔树,然后输出这棵树即可. 首先进行排序,然后用一个栈维护最右的树的节点信息,插入的时候按照第二关键字去找,找到之后插入,下面的树成为它的左子树即可. 然后插入分三种情况讨论 ...
- [模板] 笛卡尔树 && RMQ
话说我noip之前为什么要学这种东西... 简介 笛卡尔树(Cartesian Tree) 是一种二叉树, 且同时具有以下两种性质: 父亲节点的值大于/小于子节点的值; 中序遍历的结果为原序列. 笛卡 ...
- HDU - 1506 Largest Rectangle in a Histogram (单调栈/笛卡尔树)
题意:求一个直方图中最大矩形的面积. 很经典的一道问题了吧,可以用单调栈分别求出每个柱子左右两边第一个比它低的柱子(也就相当于求出了和它相连的最后一个比它高的柱子),确定每个柱子的左右边界,每个柱子的 ...
- 19牛客暑期多校 round1 A 有关笛卡尔树的结论
题目传送门//res tp nowcoder 分析 定理:B1~B2当且仅当B1与B2有同构的笛卡尔树. (B₁~B₂ iff B₁ and B₂ have isomorphic Cartesian ...
- codevs2178 表达式运算Cuties[笛卡尔树]
2178 表达式运算Cuties 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 给出一个表达 ...
- POJ 2559 Largest Rectangle in a Histogram ——笛卡尔树
[题目分析] 本来是单调栈的题目,用笛卡尔树可以快速的水过去. 把每一个矩阵看成一个二元组(出现的顺序,高度). 然后建造笛卡尔树. 神奇的发现,每一个节点的高度*该子树的大小,就是这一块最大的子矩阵 ...
随机推荐
- mysql数据库中导入txt文本数据的方法
安装好MySQL和Navicat 8 for MySQL 通过Navicat 8 for MySQL创建数据库test. 2 在数据库test上创建测试数据表student(主键ID,姓名,年龄,学 ...
- ElasticStack系列之十八 & ElasticSearch5.x XPack 过期新 License 更新
摘要 当你某一天打开 Kibana 对应的 Monitoring 选项卡的时候,发现提示需要下载新的 license,旧的 license 已经过期了,试用期为30天,如果不是很需要其他的复杂监控.报 ...
- SDN第4次上机作业
作业链接 1.建立以下拓扑,并连接上ODL控制器. ODL拓扑界面截图: 安装odl参考链接 2.利用ODL下发流表,使得h3在10s内ping不通h1,10s后恢复. 验证性连通性截图: 将hard ...
- buffers与cached
下面是buffers与cached的区别. buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages. cached是用来给 ...
- react如何引入外部文件的整理
1 引入组件 首先就应该是安装了,安装在环境中后通过 import { Select, Button, Icon, QueueAnim } from 'antd'; 就可以把需要的组件引用进来了~ 2 ...
- JVM各垃圾收集器对比
本随笔是<深入理解Java虚拟机 JVM高级特性与最佳实践>读书笔记. 1.JDK1.7之后的HotSpot虚拟机所包含的所有收集器如下: 解读: 1. 总共有7种垃圾收集器 2.Seri ...
- (mac系统下)mysql 入门
1.安装好mysql之后并且服务启动,系统偏好设置里有启动mysql服务的按钮 看到running表示可用 2.通过终端访问mysql 先到mysql的路径下(默认安装没有配置环境变量):cd /us ...
- 魔法少女【动态规划问题】——NYOJ1204
个人博客页:https://www.scriptboy.cn/202.html 题目描述: 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙 ...
- Android 使用第三方登录(QQ和新浪微博)
账号申请什么的我就在这里略过了!(相信大家看看文档都能够处理的)本篇博客仅作引导用--主要提供给哪些不知道怎样入手的朋友.(如果需要更加强大的功能大家可以看一下开放平台上的文档,上面都有的) 使用QQ ...
- day71
上节回顾:(模板层) 1 模板之变量---{{ }} -支持数字,字符串,布尔类型,列表,字典---相当于对它进行了打印 -函数--->相当于加括号运行(不能传参数) -对象---& ...