遗传程序设计方法综述Word格式.docx

上传人:b****1 文档编号:13101238 上传时间:2022-10-05 格式:DOCX 页数:10 大小:41.18KB
下载 相关 举报
遗传程序设计方法综述Word格式.docx_第1页
第1页 / 共10页
遗传程序设计方法综述Word格式.docx_第2页
第2页 / 共10页
遗传程序设计方法综述Word格式.docx_第3页
第3页 / 共10页
遗传程序设计方法综述Word格式.docx_第4页
第4页 / 共10页
遗传程序设计方法综述Word格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

遗传程序设计方法综述Word格式.docx

《遗传程序设计方法综述Word格式.docx》由会员分享,可在线阅读,更多相关《遗传程序设计方法综述Word格式.docx(10页珍藏版)》请在冰豆网上搜索。

遗传程序设计方法综述Word格式.docx

摘要近年来,遗传程序设计(geneticprogramming,GP)的研究引起了人们很大的关注,它运用遗传算法(geneticalgorithm,GA)的思想,通过生成计算机程序来解决问题介绍了遗传程序设计的研究状况以及目前的研究进展,概述了它的基本算法、主要特点、理论与技术,同时介绍了一些GP实现系统以及主要的应用领域,最后探讨了遗传程序设计的研究方向.

关键词遗传算法(GA),遗传程序设计(GP),自然进化,程序归纳

中图法分类号TP301.6

GENETICPROGRAMMINGPARADIGM:

ASURVEY

LUDa-You®

LUYi-Nan®

WANGFei①,andLRNGYan-Chun②

①(DepartmentcfComputerScience,JilinUniversity,Changchun130023)

②(DeparimentcfMathematics,JilinUniversity,Changchun130023)

AbstractResearchongeneticprogramming(GP)hasattractedalotofattentionrecentlyGPsolvesproblemsbyusingideasfromgeneticalgorithmsandgeneratingcomputerprogramsTheresearchstateandadvancesintheGParediscussedandsurveyed,andthebasicalgorithms,theoryandrnplementationtechniquesoftheGPareoutlinedSomeGPsystemsandtheirmainapplicatfensarealsointroducedFurtherresearchdirectionsofgeneralinterestonthistopicareproposed

Keywordsgeneticalgorithm,geneticprogramming,naturalevolution,programinduction

1引言

遗传程序设计是借鉴生物界的自然选择和遗传机制,在遗传算法的基础上发展起来的搜索算法,它已成为进化计算的一个新分支在标准的遗传算法中,由定长字符串(问题的可行解)组成的群体借助于复制、交叉、变异等遗传操作不断进化找到问题的最优解或次优解遗传程序设计运用遗传算法的思想,常采用树的结构来表示计算机程序,从而解决问题对于许多问题,包括人工智能和机器学习上的问题都可看做是需要发现一个计算机程序,即对特定输入产生特定输出的程序,形式化为程序归纳,那么遗传程序设计提供了实现程序归纳的方法"

!

实际上把遗传算法和计算机程序结合起来的思想早已出现在遗传算法中,Holland把产生式语言和遗传算法结合起来实现分类系统,还有一些遗传算法应用领域的研究者将类似于遗传算法的遗传操作施加于树结构的程序上1989年,美国斯坦福大学的Koza基于自然选择原则创造性地提出了用层次化的计算机程序来表达问题的遗传程序设计(geneticprogrammmg,GP)方法,成功地解决了许多问题1992年,Koza发表了他的专著《遗传程序设计:

基于自然选择法则的计算机程序设计》⑴1994年,他又出版了《遗传程序设计,第二册:

可重用程序的自动发现》⑵,深化了遗传程序设计的研究,使程序设计自动化展现了新局面

近年来,遗传程序设计运用遗传算法的思想自动生成计算机程序解决了许多问题,如预测、分类、符号回归和图像处理等,作为一种新技术它已经与遗传算法并驾齐驱1996年,举行了第1次遗传程序设计国际会议,该领域已引起越来越多的相关学者们的兴趣

本文第2节描述了遗传程序设计的基本算法、主要特点,并从遗传程序设计的技术和理论两方面概述了目前的研究现状,介绍了一些遗传程序设计的实现系统以及主要应用领域;

第3节指出了该领域新的热点研究方向.

2理论、技术和应用

GP理论和技术研究主要包括程序结构、GP操作、适应度评价、GP个体表示法、模式定理、GP系统和GP应用等方面遗传程序设计的基本算法又涉及了程序结构的形成、GP操作、适应度评价和GP个体表示法等4方面技术在具体介绍每一技术之前,我们首先对遗传程序设计的基本算法作简单描述

GP的基本算法:

(1)随机生成初始群体,其中个体是由表示问题的函数和终止符随机组合而成的计算机程序

(2)循环执行下列各步直到满足终止准则为止

①运行群体中的每个计算机程序,并对其赋予适应度;

②运行下面两个主要操作产生新的计算机程序群体

i)把当前一代计算机程序复制成新一代计算机程序,被复制的个体依其适应度随机选定

ii)随机选定双亲个体部位进行交叉操作产生新个体,双亲个体也依适应度随机选定

(3)用结果标定法确定的程序被认为是运行的结果,它可能是一个正确(或近似)的问题答案

从上述算法可以看出GP的本质是运用GA的思想,通过进化可执行程序来解决问题GP的主要特点在于它是可变长的、层次化的、常常是树结构的'

©

1994-2006ChinaAcademicJournalElectronicPublis遗传材料,而且大多数情况下,程序个体是可执行的,也就是说常常通过某类解释器解释程序,以获得个体的适应度评价对于传统GA来说,个体通常是定长的位串或字符串而且个体的适应度评价由其结构和所要解决的问题来确定

在GP系统执行基本算法之前,要进行5个准备工作:

确定终止符集、函数集、适应度函数、控制参数、终止准则选择函数和终止符要满足充分性,即能充分地表达问题合理选择它们是机器学习中的一个共同问题适应度评价随着问题的不同而异,对一些问题要结合正确性、简洁性、时间等综合因素确定适应度评价终止符集、函数集以及适应度评价的确定不仅会影响程序搜索空间、搜索的难易程度,而且还会影响问题的最终解决其中,如何确定优化的控制参数,目前尚未得到解决

21程序结构的形成

程序结构的形成主要包含两个方面:

不同数据类型的结构和模块化结构

(1)不同数据类型的结构

标准GP使用树结构表示个体,为了对进化的结构能简便地进行操纵,每个程序元素要返回同一种数据类型,即满足封闭原则⑴,但许多问题需要处理不同的数据类型,因此有必要对结构以及对结构施加的操作增加一些限制,否则会出现语法上不正确的解Koza'

u引进“限制语法结构”概念,解除了封闭限制来处理上述数据类型不同的问题他定义了一个规则集合对语法树上的每个函数的各个参数指定所需的终止符集和函数集,使得在初始化个体和进行遗传操作时通过类型限制确保语法上正确的个体被生成尤其在交叉操作时,第1个点选择后,第2个点的选择必须使其类型与第1个点相匹配但他未能提供统一、自动的机制将语法限制溶入GP中⑵.Montana⑶在Koza工作的基础之上,提出了强类型GP(stronglytypedGP,STGP)系统该方法只须预先指定函数、常量的数据类型,然后通过类型匹配、最大深度限制检查和类型表生成,建立数据类型正确的语法树,完成对群体的初始化,而且在进化过程中能保证不同的遗传操作生成数据类型正确的语法树,从而使STGP的搜索空间是合法的语法树集合他不仅提供统一的机制解决多数据类型问题,还引进了类属函数和类属数据类型的概念,通过减少函数集的数目,有效地降低了搜索空间和时间Haynes从进化协作策略的角度指出STGP方法比一般的GP方法更优越然后他又从面向对象的程序House.Allrightsreserved,设计出发,对数据类型进行层次分类,提出了类型继承的概念,基于此能产生更丰富的语法⑷,更有利于一些问题的求解以上几种方法都采用语法上的类型限制实现了程序结构的限制Janiknow151提出了与Montana的STGP类似的方法CGP(constrainedGP).CGP可形成多种形式上的限制,在指定语法限制的同时,还利用特定问题的知识指定语义限制,排除了没有意义的那些子空间,是一个处理解空间限制的好方法Clack和Yu⑹也对STGP作了改进,可处理参数为函数类型的情况上述方法对给定的函数限制了其所能接受的参数范围,但是它们对这种多数据类型的结构缺乏更高层次的表示Whigham巧米用上下文无关文法CFG(contextfreegrammar)表示个体结构,并用这种文法指导交叉、变异操作它同前面的几个方法一样,都克服了GP可能出现语法上不正确解的不足此方法可自动保证数据类型一致,并能操纵由文法得到的明确制导树来维持语法,同时文法本身也通过学习新的产生式来进化,还可利用领域的专家知识构造文法因此该方法缩小了可能的搜索空间,从而具有发现答案的更大可能性Gruau181提倡使用语法指导GP的结构生成,并使用外部文法形成单元编码的表达式来构造人工神经网络,很好地解决了一类平衡问题

(2)模块化结构

在GP研究中,问题表示由与问题有关的原始函数集来定义函数作为树的内部节点,终止符作为叶节点,由这些元素组成的程序构成了GP的搜索空间,通过改变原始函数集,扩展问题表示,从而改变结构的组成,这样不仅动态地改变GP的行为,而且可减少程序的平均大小实际上,从传统的程序设计角度来说,就是采用了重用和模块化的思想通常有如下3种改变模块化结构的方式:

①自动定义函数(automaticdefinedfunction,ADF)

自动定义函数是koza[1]引入的一种关键技术,是一种嵌套的自动程序设计技术一个自动定义函数是遗传程序运行中动态进化着的一个函数(子程序、过程、模块),是一棵单独的树,可被同时进化着的一个程序(如一个主函数)所调用

在此方法中,每个个体程序由几个函数分支和一个(或多个)产生结果的主分支(程序体)组成,其中产生结果的分支能够调用一个或几个自动定义函数,一个函数分支也可调用已定义的函数,形成函数的层次化的自动定义每个函数分支有固定数目的

©

1994-2006ChinaAcademicJournalElectronicPublic参数,由指定的原始终止符和函数集构成随着程序体的进化,ADF的定义也在不断进化,同时ADF分支上的遗传操作必须满足一些语法限制例如交叉只在同一类型的两个分支中进行,其中分支的类型由分支中定义的函数和终止符所确定对于结构一致的程序群体来说,分支归类是最简单的归类规则,即对群体中程序的每个分支设置为一个单独的类型,交叉操作只交换来自同一类型分支中的子树ADF的定义也在不断进化

通常ADF的数目和相互调用关系是固定的,对于个体为非固定的程序结构(即个体结构没有固定的函数分支和程序分支)来说,群体由许多不同结构的程序组成,那么会出现如何形成合适的程序结构的问题1994年,Koza⑵提出了分支复制、参数复制、分支产生、参数产生、分支删除和参数删除等6种操作,这些操作能动态改变这种非固定的程

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1