遗传编程的计算机实现,利用C语言实现遗传编程1.pdf

本文介绍了遗传编程的基本概念和操作符,包括交叉、再现、变异和倒置,并以C语言为例展示了遗传编程的实现。遗传编程借鉴了达尔文的进化思想,通过这四种操作符实现程序的进化和优化。文章还提到了遗传编程与遗传算法的区别,并指出遗传编程使用树形结构,具有更高的灵活性。
摘要由CSDN通过智能技术生成

利用C语言实现遗传编程1.pdf

维普资讯

周俊峰

遗传编程是一个与人工智能相关的、新的形式 ,它基于达 ·树形处理程序存在于一些高级语言中.也就是说 .现有

尔文的进化、遗传思想发展而来 。有关遗传编程最早的著作是 的一些高级语言可 以对树形结构进行操作 。

JohnKoza的((GeneticProgramming))--书.书中描述 了一套用于

1.2 遗传编程的操作符 (operator)

随机修改已有LISP字符串的LISP程序集合。本文试图向读者清楚

地介绍遗传编程的范例 ,及其在C语言中的实现。 遗传编程使用 四种通用的操作符来实现计算机程序 的进

化 ,它们是 :交叉 (Cr0SS0Ver)、再现 (rePr0duCti0n)、转变

1.遗传绾程

(mutation)、倒置 (inversion)。

1.1 什么是遗传编程? (1)交叉 (crossover)

Koza认为 ”交叉”以及沿续其后的”再现 ”是两个最重要的

遗传编程的许多理论与遗传算法是一样的.同样都是通过

遗传操作符。交叉保证了程序群体 的遗传多样性。与遗传算法

遗传操作符 (genetiC operators)应用了达尔文的”适者生存

中的交叉功能类似 .遗传编程 中的交叉行为是在两个程序 中进

(survival-of—the—fittest)”理论 :但是仍有许多不同之处。遗传编

行的,并会产生两个子程序。具体地说 .在每个程序中任意选取

程所使用的结构与遗传算法的编码字符串就大相径庭 。图1描

两个结点 ,将 以这两个结点为根的”子树 ”进行交换 .从而产生

述了一个遗传编程的简单结构 。

两个新的程序 。这些新程序将成为后代程序 的一部分并被评

对于这个树形结构 .其等价的LISP表达式为 (+ 12(IF(>

估 ,见图2。

TIME 10)34)。需要注意的是 :

(2)再现 (reproduction)

· 当前 .它采用了更为灵活、清晰的可变分层结构 .而不

”再现 ”是遗传编程 中第二个主要 的操作 .主要是将当前程

是一维字符结构;

序 中选定的成员拷贝到后代程序中。Koza对于使用交叉、再现操

· 该结构 由一些简单函数组成 .这些函数可以通过使用

作对群体收敛性的影响有一段说明:”……在遗传编程中.当个

一 种高级语言很容易的被编译出来 :

体复制它自身的时候 一般会产生两种不同的后代 ……这点与

达尔文的 再现 操作会导致一种收敛趋势相似 :但是 .不同的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值