欢迎来到天天文库
浏览记录
ID:34648170
大小:321.04 KB
页数:3页
时间:2019-03-08
《遗传编程的matlab语言实现new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第31卷第13期计算机工程2005年7月Vol.31№13ComputerEngineeringJuly2005·软件技术与数据库·文章编号:1000—3428(2005)13—0087—03文献标识码:A中图分类号:TP301.6遗传编程的Matlab语言实现李良敏(西安交通大学机械工程学院,西安710049)摘要:引入堆栈技术,采用后缀表达式使遗传编程的树型结构易于转换为线性序列,并解决了初始个体生成算法、杂交算子操作、表达式个体求值等问题,使遗传编程不再依赖于专用编程语言和指针操作,能够方便地用Matlab语言实现。关键词:遗传编程;Matlab;堆栈;后缀表达
2、式ImplementationofGeneticProgrammingforMatlabLILiangmin(SchoolofMechanicalEngineering,Xi'anJiaotongUniversity,Xi'an710049)【Abstract】Postfixnotationofbinarytreeandstacktechniqueareintroducedtorealizelinearencodinginsteadoftraditionalmultipletreeencoding.problemssuchasgeneratinginitialindi
3、viduals,realizingcrossoveroperationandevaluatingthefitnessofindividualsarealsodiscussed.Therefore,geneticprogrammingcanbeimplementedeasilybyMatlabwithoutthelimitationofprogramminglanguage.【Keywords】Geneticprogramming;Matlab;Stack;Postfixnotation遗传编程是在遗传算法的基础上发展变化而来的。1992(1)杂交遗传算法的杂交仅需要编
4、码串的复制操作,[1]年J.R.Koza首次提出一种在编码方式上与常规的遗传算法遗传编程的杂交涉及到子树结构的拆合。对于遗传算法,如有着本质不同的仿生进化算法,它采用了层式编码(“树”果参加杂交操作的两个父代个体完全相同,则不会产生新个型)方式,由于在遗传算法的基础上,改进了编码方式,被体;而对于遗传编程,所产生的个体与父代一般是不同的,称为“遗传编程”。相对于遗传算法,遗传编程更适合应用除非两个个体的杂交点恰好也相同。图1是遗传编程中杂交于层式结构的优化。算子的实现方式,两个父代分别为:x*y+z,x/(z-y),新生成由于遗传编程的个体采用了树型结构,结构中的元素
5、之的两个个体为:x*y+z-y,x/z。间存在着一个对多个的关系,属于典型的非线性结构,这给杂交点杂交点编程实现带来了很大的困难。当前,对遗传编程的程序实现+/[2]主要采用两种方法:一是专用程序语言如Lisp等,二是用*zx-通用语言的指针实现,如C语言。这两种方法都受到编程语言的限制,通用行和可移植性都不够理想。在工程应用领域xyzy有着广泛应用的Matlab语言,由于没有指针运算,无法实现(a)杂交前具有层式编码的遗传编程。+/为了解决这个问题,本文借用了数据结构中“树的遍历”思想,实现了从树型结构向线性序列的转换,在此基础上解-x*z决了初始个体生成算法、杂交
6、算子的实现、表达式个体求值等问题,使遗传编程能够方便地用Matlab语言实现。xyzy1遗传编程简介(b)杂交后遗传编程是由遗传算法发展、延伸而来的,它与传统的图1遗传编程的杂交算子遗传算法最大的不同是以层次结构表达问题,而且其结构和(2)变异遗传算法的变异采用位的置反操作;而遗大小都是动态自适应调整,更适于表达复杂的结构问题。遗传编程的变异方式有两种:运算符变异和操作数变异。为了传编程的任务就是从由许多树型可行解组成的搜索空间中保证变异后产生的个体在语法上的合法性,首先必须判断变寻找出一个具有最佳适应度的“树”。异点是运算符还是操作数,然后,根据判断的结果,在相应遗
7、传编程的基本思想是:随机产生一个适用于所给问题的集合中随机选取一个元素代替原来的元素,如果是运算环境的初始种群,种群中的每个个体为树状结构(又称为S符,还要注意变异前后的“运算目数”相同。表达式),计算每个个体的适应值;依据达尔文的进化原则,选择遗传算子(复制、杂交、变异等)对种群不断进行迭代基金项目:国家自然科学基金重点资助项目(50335030)优化,直到在某一代上找到最优解或近似最优解。由于采用作者简介:李良敏(1977—),女,博士,主研方向:进化计算,机了与遗传算法完全不同的编码方式,遗传编程中的遗传算子器学习(主要是杂交和变异)具有完全不
此文档下载收益归作者所有