语法进化(GE)

时间:2017-03-06 22:04:37

标签: genetic-algorithm evolutionary-algorithm genetic-programming

在语法进化(GE)算法(此处为网络:grammatical-evolution.org)中,可以选择使个体的长度自适应。我想知道:

  1. 当个人长度是自适应时,最常用的策略是什么?换句话说,个体的长度是如何演变的。
  2. 是增加还是减小尺寸或只增加。
  3. 是否有任何记录良好或说明性的例子。
  4. 提前致谢。

1 个答案:

答案 0 :(得分:2)

在GE中,个体是必要的可变长度,以便能够编码可变长度的程序(结构)。

<强>初始化

最初的人口已经由不同规模的人组成。初始化过程可能会有所不同,但我最熟悉的程序使用语法来创建个体。你基本上做同样的事情,就像你想要将个人解码到程序中一样(使用语法)而不是选择使用个人的语法扩展,你反过来做 - 你随机选择扩展并记录这些随机决定。扩展完成后,您记录的决策就形成了个人。

<强>交叉

GE的交叉运营商已经修改了个人的长度。它是经典的单点交叉,但交叉点在父母双方中完全随机选择(与父母具有相同长度并且交叉点对齐的GA的经典单点交叉相反)。这种机制能够促进个体的成长和收缩。

交叉示例:假设您有两个人并且您随机选择了交叉点

parent 1:  XXXXXXXXXXXX|XXXX
parent 2:  YYY|YYYYYYYYYYYYYYYYYYYYYY

交叉后,孩子们看起来像这样

parent 1:  XXXXXXXXXXXX|YYYYYYYYYYYYYYYYYYYYYY
parent 2:  YYY|XXXX

正如您所看到的,个人的长度发生了巨大变化。

<强>修剪

但是,还有第二种机制仅用于减少长度。它是修剪操作员。当调用此运算符时(以相同的方式调用例如突变),删除非活动部分(即,如果在使用所有密码子之前语法扩展完成,则剩余部分是非活动部分)基因型。