在语法进化(GE)算法(这里的web:grammatical-evolution.org)中,有一个选项可以使个体的长度自适应。我想知道:
提前谢谢。
发布于 2017-03-07 21:16:37
在通用电气,个人是必要的可变长度,以便能够编码程序(结构)的可变长度。
Initialization
最初的人口已经由不同规模的个人组成。初始化过程可能会有所不同,但我最熟悉的一个过程是使用语法来创建个人。基本上,当您想要将个人解码到程序中(使用语法)时,您所做的事情是相同的,但是您没有选择使用个人的语法展开,而是采用相反的方式--您随机选择展开并记录这些随机决策。当扩张完成后,你记录下来的决定就形成了一个个体。
交叉
GE中的交叉算子已经修改了个体的长度。这是一个经典的单点交叉,但交叉点是完全随机选择的父母双方(与传统的单点交叉的气体,父母是相同的长度和交叉点是对齐的)。这种机制既能使个体生长,又能使个体萎缩。
交叉的例子:假设你有两个个体,你随机选择了交叉点。
parent 1: XXXXXXXXXXXX|XXXX
parent 2: YYY|YYYYYYYYYYYYYYYYYYYYYY在交叉之后,孩子们长得像这样
parent 1: XXXXXXXXXXXX|YYYYYYYYYYYYYYYYYYYYYY
parent 2: YYY|XXXX正如你所看到的,个体的长度发生了巨大的变化。
剪枝
然而,还有第二种机制只用于缩短长度。这是修剪操作符。当这个操作符被调用时(以同样的方式调用突变),删除基因型的非活动部分(即,如果语法扩展在所有密码子被使用之前完成,其余部分是非活动部分)。
https://stackoverflow.com/questions/42636485
复制相似问题