多面无限基因表达式编程(MIGEP)

多面无限基因表达式编程(MIGEP)

苏  启

(海南大学,学历本科,联系方式:68035720@qq.com,15595971535)

这是一篇关于中国传统文化在科学研究实践中应用的文章,希望所有领域的科研工作者都能看到并得到启发!

摘要:提出一种全新的多面无限基因表达式编程编码方法(MIGEP),以统一数据单元编码同时表示节点、叶子、爪子等多种基因遗传信息,解码表现型采用无限循环树结构。MIGEP具有与GA一样的简单编码,极低的算法约束,有无限多的表现型,与GEP相比计算效率更高,多样性、全局最优发现能力更强。

关键词:基因表达式编程;遗传编程;遗传算法;遗传进化计算;

Multidimensional Infinite Gene Expression Programming(MIGEP)

Qi Su

(Hainan University,Bachelor degree,Contact information:68035720@qq.com,15595971535

This is an article about the application of Chinese traditional culture in scientific research practice. I hope that researchers in all fields can see and get inspiration!

AbstractAn new encoding method was proposed for multidimensional infinite gene expression programming. Unified data unit coding is used to represent genetic information of nodes, leaves, claws and other genes at the same time, and infinite cyclic tree structure is used to decode the phenotype. MIGEP has the same simple coding as GA, very low algorithmic constraints, and has infinite phenotypes. Compared with GEP, MIGEP has higher computational efficiency, more diversity and better global optimal discovery ability.

Key wordsGene Expression Programming;Genetic Programming; Genetic Algorithm;Genetic Evolutionary Algorithms;

0、引言

基因表达式编程(gene expression programming,GEP)在遗传进化算法领域以其结合了传统遗传算法 (genetic algorithm,GA)及遗传编程(geneticprogramming,GP)的优势,体现出相对简单的编码方式和较高的计算效率,在自动编程、函数发现、优化、分类等众多应用领域取得了丰硕成果。

但GEP编码的基因型存在结构排列顺序、基因头部和尾部长度相关联及节点(函数符)、叶子(终结符)基因位区分等约束要求,解码时受到基因长度、基因内区等限制,导致GEP多样性受到限制,编码、解码等遗传进化计算效率无法提高。

本文提出一种全新的多面无限基因表达式编程编码方法(MIGEP),以统一数据单元编码同时表示节点、叶子、爪子等多种基因遗传信息,解码表现型采用无限循环树结构,完全破解了GEP的相关约束条件。MIGEP具有与GA一样的简单编码,极低的算法约束,有无限多的表现型,与GEP相比计算效率更高,多样性、全局最优发现能力更强。

1、遗传进化算法简介

遗传进化算法是一种模拟生物优胜劣汰进化发展的计算机搜索算法。主要经历了遗传算法(GA)、遗传编程(GP)、基因表达式编程(GEP)、多表达式编程(MEP)等发展阶段。

算法的核心结构是:1)对现实问题进行编码,并随机形成大量编码后的染色体(含基因)群体;2)对编码后的染色体种群进行遗传进化计算,主要包括遗传选择、交叉(重组)、变异、解码表现型、适应度计算等过程;3)产生新的种群,再对其重复进行遗传进化计算,直到种群中出现满足所需问题解的染色体个体,并对其解码得到问题的现实解。

其中的第2部分是遗传进化计算需要重复循环执行的内容,因此编码、解码、适应度计算、交叉变异等成为影响算法计算效率的关键,而编码、解码是关键之核心。

GEP正是由于编码解码方式和效率而优越于GP,本文提出的MIGEP算法对编码解码进行全新变革,在计算效率、全局多样性等各方面比GEP算法提高一个层次。

2、MIGEP的多面性

★(本节为全文的重点,请读者对其思想内涵反复思考。)

以GEP的单基因染色体为例,基因的编码特点为头部+尾部,头部由函数符集(以下简称节点)和终结符集(以下简称叶子)组成,尾部必须由终结符集(叶子)组成,假设基因头部长度为h,尾部长度t,n为函数符集(节点)中函数的最大参数目数。必须t=h∗(n−1)+1才能保证基因的合法性。基因解码时从头部开始依次将基因位从上到下从左到右构建树结构如图1示例。

 

可见GEP编码存在以下限制:

1)基因区分头部和尾部

2)头部和尾部长度必须保持一定比例关系

3)每个基因位区分节点和叶子

以上限制中最根本的原因是第3点的基因位区分节点和叶子,从而导致一系列其他限制。

在中国传统文化中有阴阳理论思维,即阴阳本为一体,只是人类看问题的正反面、看问题的角度不同得到不同的结果。

图1中GEP的基因编码在实际计算机编程的内存中每个基因位是以一个数据单位存储,例如以一个字节数据存储一个基因位。存储的数据本身并未区分节点或叶子,只是“单纯的数据”没有任何意义和概念,我们人为的把这个“数据”看成“节点”,把那个“数据”看成“叶子”。

事实上无论节点还是叶子它们都是“数据”,只是我们从不同方面去看它去定义它而已。

既然我们能把一个基因位的“数据”看成是“节点”,那么也可以把它看成“叶子”,本文的MIGEP编码正是基于这一思维而建立。

MIGEP的单一基因染色体编码示例如图2上示,假设节点集为+-×÷四种,叶子集合为abcde五种。当把图2上的数据1“看成节点”时,它只能为4种函数符之一,使用一些“数学方法”可以设定该数据对4求余数表示具体节点,“数据1”表示mod(127,4)=3代表节点×函数符。当把“数据1”“看成叶子”时,它为5种叶子之一,同理mod(127,5)=2代表叶子b。其它数据同理可得出从不同方面看到的结果如图2上示。

MIGEP编码方法不再区分节点还是叶子,也就没有基因头部和尾部之分,也没有头尾长度的限制关系,基因不存在是否合法的问题,彻底解放了基因编码数据,其染色体与GA的染色体一样简单,且几乎无任何约束条件。

 

3、MIGEP的无限表现性

MIGEP编码的多面性获得无约束染色体,接下来需要将染色体转化成树结构进行解码。

这里先引入一个“爪子”的概念(类似于MEP编码的“基因序号”[1])。节点集(函数符集)的每个函数符都需要操作数,例如+函数符需要2个操作数才能相加、sin(x)函数符需要1个操作数、if(a1>a2) a3 else a4函数符则需要4个操作数等等,函数符就像伸出固定数量的爪子抓住操作数才能成为完整的结构,因此定义“爪子”就是函数符指向所需操作数的指针。

根据MIGEP的多面性原理,我们也可以将“数据”看成是“爪子”,如图2上所示,例如每个函数符的操作数都为2个即爪子数为2个,而每个爪子只能在7个数据(基因长度)中获取,两个爪子的重复排列可能性是7*7=49种,使用一些“数学方法”,当把“数据1”看成“爪子”时,它为49种排列之一,同理mod(127,49)=29,29=4*7+1代表4和1两个爪子分别指向“数据4”和“数据1”。其它数据同理可得出对应的爪子指针指向特定数据,结果如图2上示。

有了“节点”、“叶子”和“爪子”就可以解码构建树结构,解码构建树结构的方法有很多,例如解码方法可以是对染色体每个数据都看成“节点”,从左到右依次解码成子树结构,每个子树结构都对应一个问题解。如图2下所示,“数据1”是“节点”×,它也是“爪子”4,1,可构建成子树“数据4”ד数据1”(数据看作“叶子”)即是c×b;接着继续解码“数据2”是“节点”÷,它也是“爪子”1,2,可构建成子树“数据1”÷“数据2”即是b÷a;同理按顺序解码全部数据,完成1次循环解码,结果如图2下所示。

为了得到更高层次的树结构,可以进行第2次循环解码,同样依次从左到右再次解码成子树结构,但此次解码时“爪子”指向的数据不再看成是“叶子”,而是对上次循环时已经构建子树结构的引用,以此构成更复杂的子树结构,如图2下所示。同理可进行第3次及更多次循环解码。

以上只是提出MIGEP解码树结构的一种方式,由于染色体基因数据不区分类别(节点、叶子、爪子),可以看成任何类别,解码方式是不受约束的,事实上可以进行无限多种可能方式的基因表现型解码构建完全不同的子树结构,因此MIGEP具有无限表现型的特性。

4、实验结果的优越性

使用MIGEP和GEP在同样计算条件下对相同问题进行实验对比。

算法运行环境:Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz

解决问题:函数发现

算法参数:表0

参数

类型

GEP

MIGEP

算法运行次数

100

100

最大进化辈数

1000

1000

种群大小

50

50

训练集数

20

20

函数集合

+-*/

+-*/

基因数量

1

1

基因长度

头部长度16,基因总长度33

基因长度15,基因循环2次解码总长度30

 

 

 

实验1:解决问题:测试函数f(X, Y)=X3−X2*Y+Y。[2]根据测试函数随机产生20个样本,自变量取值范围均为[−10,10]。其他参数如表0。实验结果如表1所示。

表1:

算法

总运行时间(秒)

发现成功率

平均成功辈数

平均成功时间

最小进化辈数

最大进化辈数

GEP

114.626

99%

133.96

0.019

3

863

MIGEP

115.776

100%

40.13

0.019

1

115

实验2:解决问题:测试函数f(X, Y)=X5+3*X*Y。[3]根据测试函数随机产生20个样本,自变量取值范围均为[−3,3]。其他参数如表0。实验结果如表2所示。

表2:

算法

总运行时间(秒)

发现成功率

平均成功辈数

平均成功时间

最小进化辈数

最大进化辈数

GEP

71.959

7%

461.286

0.023

193

967

MIGEP

290.449

97%

418.072

0.048

75

938

4.1多样性及全局最优发现能力

在同样的计算条件和表0的统一算法参数情况下,通过实验1和实验2,分别得出表1和表2的实验结果对比。

可见MIGEP在基因长度为15是GEP基因长度33的一半的情况下,MIGEP算法的表达空间[2]是GEP算法的30倍,具有30倍的多样性。算法的函数“发现成功率”比GEP更高, “平均成功辈数”、“最小进化辈数”、“最大进化辈数”更低,特别是高次幂函数发现能力更稳定,全局最优发现能力更强。

4.2运算效率

MIGEP算法的表达空间(子树的数量)的提高必然消耗更多的算法计算时间,但实验结果与GEP相比MIGEP的“总运行时间”及“平均成功时间”并没有大幅度等比例提高,可见MIGEP遗传算法的运算效率相对更高。

5、结束语

本文提出的全新的多面无限基因表达式编程编码方法(MIGEP),其解码方式不受限制,可以进行无限多种可能方式的基因表现型解码构建完全不同的树结构,下一步的研究可探索不同解码方式下的算法性能。

本文是受中国传统文化阴阳理论思维的启发,是中国传统文化在科学研究实践中的应用,对其他科研领域的研究同样能起到极大的创新性突破性的帮助。

宇宙中的万事万物本身并没有定义和概念,只是我们人类自己主观赋予它们定义和概念,这些定义和概念同时也在束缚着我们的思想!

 

参考文献:

[1] 张建伟、张颖江等. 多表达式编程[J].武汉理工大学学报信息与管理工程版,2007,29(2):57-61.

[2] 向 勇、唐常杰等. 内嵌基因表达式编程及其在函数发现中的应用[J].电子科技大学学报,2011,40(1):116-121.

[3] 彭京、唐常杰等.基于重叠表达的多基因进化算法计[J].计算机学报,2007,30(5):775-785.

 

特别声明:

1、本人业余爱好,闲暇时间进行研究,本算法于2014年构思,断断续续至2016年完成,2019年3月5日公开,2019年3月14日在全网络正式公布;

2、本人不发表论文,不为名利,但反对学术腐败,凡是引用、参考或启发于本算法的发表论文必须注明或说明出处,这是科研工作者的最基本道德!否则保留追诉权利。

3、中国传统文化博大精深,是指引科研工作的明灯,是科研人员的灵魂,本文是中国传统文化指导科研实践的实例,欢迎将本文广为传播,为中国乃至世界科研贡献一份微薄之力。

4、本人坚决反对任何形式的学术垄断、剥削、迫害,我们不仅要文化自信更应科研自信!

本文网页地址https://blog.csdn.net/weixin_43213914/article/details/88530521

欢迎加入遗传算法人工智能QQ群:133511424,相互学习探讨研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值