解析遗传程序设计
遗传程序设计(GP,Genetic Programming)的思想是在二十世纪九十年代初由美国斯坦福大学的J. R. Koza教授所提出的,它使用分层结构来表示问题的解空间,通过遗传操作动态地改变这些结构,以便于自动获得能够解决待求解问题的有效可行的计算机程序。
解析遗传程序设计(CGP,Cartesian Genetic Programming)是遗传程序设计的一种新形式。
传统的遗传程序设计采用LISP(链表处理语言)语法树的形式来演化程序,而CGP使用一个整数表来描述基因型,该整数表映射到程序的方向图。
在假定一个节点网络通向一个对应的解析坐标系的前提下,CGP是解析的。
CGP采用一个m行n列的细胞单元阵列来表示待演化电路,阵列中的每一个细胞都是一个功能单元,如非门、或门等。
该细胞阵列有三个参数:输入数目,输出数目和“L-back”参数,其中“L-back”参数决定了细胞单元的最左列。
每个细胞单元的输入仅限于电路的基本输入和前排细胞单元阵列的输出,而不能取自于其后排细胞单元阵列的输出,也就是说,不允许反馈的存在。
“L-back”参数确定了电路的连接性。
若L等于l,则只有前一排的细胞单元阵列的输出能够作为当前细胞单元阵列的输入;否则意味着前面各排的细胞单元阵列的输出都可以作为当前细胞单元阵列的输入。
一个由基因型到表现型的映射阵列连接实例如下图所示。图中所描述的是一个六输入三输出的程序,该程序具有三