第4章遗传程序设计武汉大学计算机学院4
1遗传程序设计框架自动程序设计是计算机科学的中心目标之一
自动程序设计所涉及的问题是:怎样才能使计算机去解决给定的问题而无需显式编程
很多年来,人们一直在为实现这一目标而努力
遗传程序设计便是在该领域的一种尝试
自动程序设计是人工智能的一个重要研究领域
自动程序设计研究的重大贡献之一是作为问题求解策略的调整概念
已经发现,对程序设计问题,先产生一个不费事的有错误的解,然后再修改使它正确工作,这种做法一般要比坚持要求第一个解就完全没有缺陷的做法有效的多
遗传程序设计正是基于这样一种思想而发展起来的
1遗传程序设计框架遗传程序设计与遗传算法类似,所不同的是在遗传程序设计中,搜索空间是计算机程序空间,个体是计算机程序
遗传程序设计的流程图如下图所示
变异后的个体加入新种群复制的个体加入新种群Gen:=0产生初始种群终止准则被满足
指定结果结束评估个体适应度i:=0i=N
Gen:=Gen+1是否否是按概率选择遗传算子选择一个个体选择两个个体选择一个个体执行复制执行杂交执行变异i:=i+1i:=i+2i:=i+1两个后代加入新种群prpcpm4
1遗传程序设计框架为了用遗传程序设计演化求解问题的程序,首先需要解决以下问题:(1)程序的表示;(2)程序好坏的评价标准;(3)遗传算子设计
2程序的表示在遗传程序设计中,种群中的个体是计算机程序
为了程序表示的简单性和容易验证程序的句法,遗传程序设计用Lisp语言来表示程序
考虑一个简单的LISP程序,该程序简单地返回一个自然数n的平方
>SQUARE))()(squaredefun(nnn4
2程序的表示>(square4)16下面是出一个计算一个实数绝对值的LISP程序
>ABS>(abs–4)4))()(0)(if()(absdefun(xxxx4