论文部分内容阅读
自动程序设计是计算机科学的中心目标之一。1998年初,著名的计算机科学家John Holland教授举起了:“遗传程序设计就是自动程序设计”的大旗,把自动程序设计的研究推向了高潮。遗传程序设计是演化计算的一个新分支。它对群体中表示独立的计算机程序的个体(而不是GA中的固定长度的二进制字符串)进行操作,克服了传统GA在表示方法上的局限,采用了更为灵活的可变分层结构。根据对问题的求解要求,GP采用层次描述方法,自动生成解决问题的程序,因此它是一种不局限于某一领域的“遗传或进化搜索”技术。目前,GP的研究已经渗透到工程技术科学,生命科学及社会科学的各个领域中,取得了巨大成果并仍在迅猛发展。然而GP也有其不足之处。它的解的构造很复杂,并且进行遗传操作时需要一定的限制规则才能保证遗传操作的正确性。针对GP的不足,在GA和GP基础上,葡萄牙科学家Candida Ferreira于2001年提出了基因表达式程序设计(Gene Expression Programming,简称GEP)。GEP是借鉴生物遗传的基因表达规律提出的一种知识发现新技术。它具有演化算法所具有的自组织、自适应、自学习等智能特征,目前已成为自动程序设计的一个有力工具。GEP采用独特的线性编码方式实现了编码长度的固定和统一,可以方便的进行选择,交叉,变异等遗传操作,同时依照其编码规则又可以解析为树状形态,并保证了二者之间的相互转换,从而实现进化,克服了传统遗传算法在表示方法上的局限和传统遗传程序设计复杂的解的构造和复杂的遗传操作的缺点,具有更简单的编码表示方法、更强大的遗传算子(遗传算子的种类和数量不存在任何限制)、更易于遗传操作、能产生更高级别的复杂度的能力。目前GEP已成为前沿研究热点。随着网络技术的飞速发展,分布式并行计算成为可能,从而对于适合于并行计算的算法研究一度成为前沿研究的热点。本文基于这两个前沿研究热点进行研究,主要对GEP的研究现状、原理、不足、改进及并行化实现开展工作。本文所做工作的主要内容如下:(1)全面系统的阐述了目前国内外对GEP技术、理论及应用的研究情况;(2)对GEP的核心技术进行了研究并讨论了标准GEP算法的优缺点;(3)在对GEP研究的基础上,首先改进了标准GEP的基因结构,将标准GEP的“头+尾”的基因结构改为“头+身+尾”的基因结构,这种基因结构有利于引入学习机制;(4)为提高标准GEP的收敛速度,增加GEP的学习能力,在改进的基因结构基础上,引入了分布评估学习算法,提出了基因分布评估基因表达式程序设计方法(GEDGEP),实验表明该算法具有更高的预测精度,更快的收敛速度;(5)提出了基于多层染色体的混合遗传进化算法(M-GEP-GA)。M-GEP-GA在GEP算法中引入了多层染色体,实现了程序的重用机制,并采用与遗传算法相嵌套的二级演化方法,即利用染色体构建的层次调用模型对个体进行表达,用基因表达式程序设计方法优化模型结构,遗传算法优化模型参数,可以避免一些结构较好的模型因其随机产生的参数不合适致使其适应值较低而被淘汰出种群的情况,从而提高了算法的寻优能力,避免“过早收敛”现象;(6)对并行遗传算法作了讨论,在GEDGEP的基础上,设计了基于MPI的同步和异步分布式并行算法,实验表明并行算法提高了算法的运行速度和解质量,具有线性加速比。同时对同步和异步分布式并行算法进行了对比实验研究。