进化算法中的膨胀问题与基于语法的遗传编程
1. 避免或减轻膨胀的方法
在进化算法中,遗传操作产生已知良好候选解的更大表示但不具有破坏性,且难以发现新的良好解,因此有必要在实践中避免或减轻膨胀。以下是三种基本方法:
- 设定个体大小或深度限制 :最简单的方法是为个体指定最大大小或深度限制,通常以临时、静态的方式指定。也可以采用更灵活的方式,如使用“软上限”,即大于上限的个体不被移除,而是更可能经历缩小其大小的变异;或者使用动态的个体深度或大小限制,根据遗传编程(GP)算法到目前为止找到的最佳候选解进行调整。
- 使用考虑个体大小的适应度函数 :该方法使用不仅衡量个体质量,还考虑其大小的适应度函数,倾向于较小的个体,从而形成多目标适应度函数。
- 设计新的遗传算子 :专门设计用于避免或减轻膨胀的遗传算子。例如,一个变异算子通过将具有多个节点的子树替换为单个叶节点来减小个体大小,从而偏向于较小的树。
2. 基于语法的遗传编程(GGP)概述
GGP是标准GP的一种变体,与标准GP的主要区别在于存在语法。在GGP系统中,终端和函数集被语法所取代,语法确保所有个体在语法上是正确的。结合语法和GP有两个动机:一是允许用户结合问题领域的先验知识来指导GP搜索;二是通过语法产生规则的定义保证封闭性。
GGP已应用于多个领域,包括开发人工神经网络的拓扑结构、符号函数回归、数据挖掘的聚类任务以及进化规则集等。
GGP系统可以根据两个标准进行分类:
- GGP个体的表示方式
超级会员免费看
订阅专栏 解锁全文
49

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



