技术开发 频道

用ASP.NET AJAX开发Web程序 -- 入门篇



    2.3.基因表达式编程(GEP)简介
    GEP继承了GAs和GP的优点:使用简单、线形、固定长度的个体表达了不同大小和形状的结构(simple,plastic structure)。这种结构能:编码任何可能的程序并高效的进化;轻易的利用功能强大的遗传算子有效的搜索解空间;不会产生无效的个体。在进化计算中唯一使用了多基因的算法(更高的层次,许多新的值得探索的东西)。使用Karva language读取和表达存贮在GEP个体中的信息。

    GEP、GA以及GP的比较
    (1)GA个体编码简单,因此操作方便,但只能处理简单问题;
    (2)GP个体编码复杂,因此操作麻烦,且遗传操作不具备封闭性,很多资源消耗在处理无效结构上,但常用于求解复杂问题;
    (3)GEP是简单编码解决复杂问题,而且遗传操作方便,不会产生无效结构。

    3.GEP的基因结构
    GEP的基因结构主要包括两个主要的成员:染色体(Chromosome)和表达式树(K-Expression)。两者之间的关系是:染色体中所包含的遗传信息由表达式树来解码。其中染色体是由一个或者多个基因组成,每个基因包括头部(head)和尾部(tail)。
    GEP基因组
GEP中基因组(染色体)由一个线性的定长基因符号串组成。它是一种ORF(Open reading frames and genes)的编码序列。
    例2:对于数学表达式: ,它对应的表达式树如图2所示:

    对应的K-表达式为:

    这种ORF结构具有如下优势:
   (1)GEP染色体由一个或几个基因组成;
    (2)染色体长度确定,ORF长度灵活可变。
    GEP的基因结构
    GEP的基因主要有头部(head)和尾部(tail)构成。其中头部是从函数集F和终点集T中随机产生,而尾部只能从终点集T中随机产生。整个基因的长度(lchrom)等于基因头长(head)加上基因尾长(tail),也即lchrom=head+tail,其中tail=head* (n-1)+1 ,n为函数集中得最大操作目数。
    例3:函数集 F = {Q, *, /, -, +} ,终结点集 T = {a, b}
    预设头部长度h=15,则有尾部长度:t = 15 x (2 - 1) + 1 = 16。基因长度15 + 16 = 31,则一个可能的基因:
    0123456789012345678901234567890
    *b+a-aQab+/ /+b+babbabbbababbaaa
    GEP的多基因染色体
    (1)复杂个体的进化需要使用多基因染色体;
    (2)GEP染色体通常由多个等长基因组成;
    (3)对于每个特定问题,基因数量和头部长度事先确定;
    (4)每条基因解码为一个子表达式树,子表达式树交互组成复杂实体。
    例4:有如下多基因染色体,头部长度为6,染色体长度为39,基因数为3。基因编码如下:
    012345678901201234567890120123456789012
    *Qb+*/bbbabab-a+QbQbbababa/ba-/*bbaaaaa
    对应的表达树为:

    多基因染色体包含多个ORF,每个ORF解码为结构和功能上独立的子表达式树。各个子表达式数有独立的适应度,由多个子表达式树组成复杂的表达式树,子表达式树既是一个独立实体,也是一个复杂整体的一部分。

    对于不同问题,GEP染色体可以采用简单的形式也可以采用复杂的形式。比如TSP问题,每个基因表示一个城市,整个TSP的编码就是一个多基因构成的染色体结构;比如在基于GEP优化的BP网络中,就需要设置特殊的结构来表示BP网络的结构。
0
相关文章