笛卡尔遗传编程中变异变体的优化
1. 引言
笛卡尔遗传编程(CGP)是一种受自然启发的搜索启发式方法,可自动生成程序。自1999年被引入以来,它已广泛应用于电子电路进化、图像处理和传感器数据评估等多个领域。CGP通常用有向无环前馈图表示,图中的节点排列在二维网格中,分为活跃节点和非活跃节点,活跃节点对程序输出有贡献,非活跃节点则无。
在标准CGP中,变异通常是唯一使用的遗传操作。常见的变异策略有概率变异和Single变异。概率变异为每个节点赋予一个变异概率;Single变异则是随机变异节点,直到遇到一个活跃节点。然而,目前对这两种变异操作的改进研究较少。
本文旨在改进概率变异和Single变异方法。对于概率变异,我们假设对活跃和非活跃基因使用不同的变异率可能会加快收敛速度。对于Single变异,我们将其扩展为在一次变异步骤中变异n个活跃节点,并研究随着时间减少变异率和活跃节点数量的影响。
2. 相关工作
此前有许多关于CGP变异策略的研究:
- Goldman和Punch除了Single变异,还创建了其他变异算法。其中一个算法跳过冗余评估,减少了计算时间;另一个算法较为复杂且未提升现有策略效果。
- Kalkreuth引入了两种不同的变异算子,直接改变节点类型,在布尔回归基准测试中提高了搜索性能。
- 有研究提出了一种面向语义的变异算法,用于组合电路的进化设计,降低了计算复杂度并提高了搜索性能。
- 还有工作将强化学习概念应用于变异算法,在多个逻辑电路基准测试中取得了改进。
- Turner和Miller深入研究了遗传漂移和遗传冗余,发现不变异非活跃基因会导致性能下降,并假设对活跃和非活
超级会员免费看
订阅专栏 解锁全文
2206

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



