语义遗传编程与一致执行轨迹的程序合成
语义遗传编程
语义遗传编程中有多种语义交叉算子,这里重点介绍 KLX 和 GSGX 两种。
近似几何交叉(KLX)
-
操作步骤 :
- 给定两个父程序 p1 和 p2,使用一个随机的基础交叉算子 k 次对它们进行交叉,将产生的候选子代存储在一个繁殖池中。例如,在相关研究中使用的是传统的树交换交叉算子。
- 对于繁殖池中的每个候选子代 p,计算表达式:$d(s(p1), s(p)) + d(s(p), s(p2)) + |d(s(p1), s(p)) - d(s(p), s(p2))|$。
- 选择繁殖池中该表达式值最低的两个候选子代作为交叉的最终结果。
-
原理分析 :公式中的前两项是候选子代与父代的距离,其和体现了子代的“几何程度”,值越低,子代越接近连接两个父代的 d - 线段。第三项促进语义上接近等距的候选子代,理想的子代是既具有几何性又与父代等距的程序。
-
优缺点 :KLX 依赖随机试错,不能保证产生几何子代,但随着繁殖池规模的增大,产生精确几何子代的可能性增加。然而,生成大量候选子代程序的计算成本过高,因为每个程序都需要在所有测试中运行以计算上述表达式。
精确几何交叉(GSGX)
-
操作步骤 :
超级会员免费看
订阅专栏 解锁全文
1707

被折叠的 条评论
为什么被折叠?



