自适应基因表达式程序设计研究及应用
2012-06-22贾丽媛张弛
贾丽媛,张弛
(湖南城市学院 信息科学与工程学院,湖南 益阳,413000)
基因表达式程序设计(Gene expression programming,GEP)是 Ferreira[1]提出的一种基于基因型(Genome)和表现型(Phenomena)的新型遗传算法。GEP的个体是由多个长度固定不定的基因组成的线性串,然后,这些个体被表示成表达式树(Expression trees,ET)。它综合了 Genetic algorithm (GA)和 Genetic programming(GP)的优点,具有染色体简单、线性和紧凑、易于进行遗传操作等到优点。 它在符号回归、分类和时间序列问题预测中得到广泛应用[2-6],成为一个非常有力的数据挖掘工具。染色体由若干个基因(Gene )通过连接运算符连接组成。Gene由头部(hail)和尾部(tail)组成,hail包含了函数集(Op)和终结符集(Data)元素。设头部长度为h,尾部长度为t,函数中的最大目数为n。

向量xi用于存贮函数集Op和终结符集Data向量的元素,其存贮形式为:

其中:Di∈data;i=1,2,…,m;Pi∈Op ,i=1,2,…,k;Data和Op集合的个数为m+k;数据集Data的个数为m;单基因染色体长度gene_len为h+1。
为方便差分操作向量xi中的m维Data向量,它们用二维数组D[NP][m]保存(其中:NP为种群个数)。
GEP进化过程与传统的遗传算法[2]很相似,每一代通过遗传算子(选择算子、变异算子、倒位算子、重组、变换算子)进化。文献[3]描述了GEP算法的基本框架。
在GEP算法中,根据适应度函数选择出的双亲基因非常接近,因而所产生的后代相对双亲也必然比较接近,所期待的改善程度就较小,这样,基因模式的单一性不仅减慢进化历程,而且可能导致进化停滞,过早收敛于局部最优点,导致算法搜索性能不高。
1 自适应基因表达式程序设计(AGEP)
1.1 基于差分突变的搜索技术
差分演化算法(Differential evolution,DE)是Strom和Price[7]共同提出的,是一种快速的演化算法。……