笛卡尔遗传规划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 ——笛卡尔树
[题目分析] 本来是单调栈的题目,用笛卡尔树可以快速的水过去. 把每一个矩阵看成一个二元组(出现的顺序,高度). 然后建造笛卡尔树. 神奇的发现,每一个节点的高度*该子树的大小,就是这一块最大的子矩阵 ...
随机推荐
- October 26th, 2017 Week 43rd Thursday
For success, attitude is equally as important as ability. 为取得成功,态度与能力一样重要. Today I read a news about ...
- ECStore图片云端集群存储实践-又拍云存储
通过又拍云存储REST API ,为ECStore新增图片存储引擎,从而达到图片数据与主站数据分离.提高网站性能. 图片存储引擎相关文件添加与修改 一共涉及到ECStore 2个APP 的文件添加和修 ...
- [JLOI2013]删除物品
嘟嘟嘟 只要每一次将优先级最高的上面的物品移走,就一定能保证是最优解. 所以我们只要想办法简化这个模拟移物品的过程,看完了题解后,发现可以这么想,我们可以把两个栈头碰头的挨在一起,然后设一个指针代表两 ...
- 【转】Fiddler工作原理
原文章链接:Web代码网chinabit.org Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断 ...
- Java应用中的编码问题(转载)
第三篇:JAVA字符编码系列三:Java应用中的编码问题这部分采用重用机制,引用一篇文章来完整本部分目标.来源: Eceel东西在线 问题研究--字符集编码 地址:http://china.ecee ...
- Linux命令——压缩和解压缩
Linux命令--压缩和解压缩 尽管文件后缀名在Linux中没什么用,但还是来看看: .gz:表示由gzip压缩工具压缩的文件 .bz2:表示由bzip2压缩工具压缩的文件 .tar:表示由tar打包 ...
- 1 TCP/IP通信
重点参考长链接http://blog.csdn.net/fengyuzhengfan/article/details/38830115 http://blog.csdn.net/Jsagacity/a ...
- uniform_tree以及其变体
//判断一棵树是不是uniform-tree bool uniform_tree(TreeNode* root){ if(root == NULL) return true; return unifo ...
- jenkins不能取到svn最新版本问题的解决
jenkins总是不能取到最新的SVN版本: 网上有说修改系统时间来解决的,尝试后发现无效: 在源地址末尾添加@HEAD可以解决这个问题.
- leetcode-856 Score of Parentheses
Given a balanced parentheses string S, compute the score of the string based on the following rule: ...