网站大量收购闲置独家精品文档,联系QQ:2885784924

基于CodeDOM遗传程序个体处理技术研究及应用.docVIP

基于CodeDOM遗传程序个体处理技术研究及应用.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CodeDOM遗传程序个体处理技术研究及应用

基于CodeDOM遗传程序个体处理技术研究及应用   摘 要: 遗传程序设计算法是根据达尔文的进化理论对个体(计算机程序)进行生物学意义上的优胜劣汰操作,最终得到性能较好的个体。使用.NET架构,采用CodeDOM机制和AppDomain技术,建立相应的个体处理和执行模型,解决编译型语言编译、执行遗传程序个体的程序设计及运行安全性问题。使用本模型可以加强遗传程序个体处理的快捷性和稳定性,从而提高遗传程序设计算法整体速度和稳定性。   关键词: 遗传程序设;CodeDOM;AppDomain;.NET   中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2012)0310085-02   0 引言   遗传程序设计(Genetic Programming,简称GP,又称遗传规划)是由Koza提出的一种自动化编程技术,其实质是用广义的层次化计算机程序描述问题[l]。GP的基本思想和遗传算法(Genetic Algorithm,简称GA)类似:通过随机产生初始群体,对群体进行繁衍,并施加自然选择、交叉变异等操作,最终优胜劣汰得到较好的个体。GP算法克服了GA算法中容易陷入局部最优等缺点,具有描述问题层次化、编码长度动态可变等特点,它被广泛地应用于人工智能、机器学习、符号处理等方面。   在GP系统的实现中,对计算机程序个体的编译及运行是设计难点之一。在GP的实现系统中,若采用的是解释型语言(如Java、Perl等),则在GP运算过程中直接生成源代码,而这源代码能通过语言解释器直接运行;但若采用的是编译型语言(如C、C++、C#等),则GP会采用特殊的函数或数据结构,例如采用特殊的方法运行程序,或通过编译生成的源代码运行程序,最后得到结果。相对来说,解释型语言执行程序的速度较慢但实现较简单,而编译型语言执行程序的速度较快但实现较复杂。   本文首先对GP算法作简单的介绍,然后介绍微软.NET平台的CodeDOM 技术,并使用CodeDOM机制及AppDomain技术建立一个针对个体处理和执行的GP模型,并使用C#语言进行实现;最后对此模型进行分析,证明其开发的稳定性、便利性和有效性。   1 遗传程序个体处理相关技术工作   GP有别于常规的遗传算法,GP通过增加结构的复杂性可以更灵活地处理遗传算法中的表示问题。GP中用到的一般是规模和形状能够动态变化的分层计算机程序,这些计算机程序由适合问题域的函数和端点构成。在遗传程序中,计算机程序群体为了解决问题不断进行遗传繁衍,由GP产生的就是作为它们进行自然选择和遗传杂交的一个结果。这个过程由一个适应值度量来推动,适应值度量把问题的性质传递到计算机和它的学习模式中。   在GP系统中,根据使用语言类型划分可分为解释性语言GP系统和编译性语言GP系统。   在解释性语言(如Java、Perl)GP系统中,源代码是直接生成并通过语言解释器直接执行。例如在使用Perl语言编写的PerlGP系统中,计算机程序(个体)以文件方式表示,每个文件中都是一个独立的可执行的函数。在对个体进行适应度评价时,直接执行对应的个体(运行对应个体的pl文件),得到结果并进行适应值评价。根据Per1GP系统的官方测试,在数值型运算中比C语言编写的GP系统要慢十倍左右,但在Perl语言专长的模式匹配领域就比普通C语言编写的GP系统要快[3]。   在编泽型语言(如C、C++、C#)的GP实现系统中,一般采用特殊的数据结构运行GP生成的程序。例如,在C语言编写的SGPC(Simple Genetic Programming in C)系统中[4],所生成的程序是以函数形式的树状结构在内存中表示。运行程序时,只需执行相对应的树状结构函数。此方法的优点是加快程序执行速度,但对于复杂的程序个体会占用大量内存空间,因此对于运行个体的控制设计较复杂。这种方法对于较复杂的计算机程序个体效率较差。另一种方法是类似于解释型语言的处理,首先按照模板生成独立以文件方式计算机程序,然后使用行命令方式对代码进行编译、执行,最后得到运算结果并使用适应度函数进行评价。使用这方法的技术难点是由于行命令是异步执行的,因此不能保证个体(程序)正常被编译和执行,并且在程序代码整合中要考虑到异步操作中的同步问题,因此在代码中实现比较麻烦。但在编泽型语言的GP系统中,由于编译型首先对代码进行编译,因此在数值运算中要远远快于解释型语言系统。   2 基于CodeDOM机制的遗传程序个体处理技术   2.1 CodeDOM简介   CodeDOM全称名为“代码文档对象模型”,是微软公司在.NET Framework中用以一种语言中立的方式来表示源代码的文档机制,通过操作和使用CodeDoM对象图可以动态生成源代码,

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档