进化计算:遗传算法与遗传编程的全面解析
1. 遗传算法中的变异操作
在遗传算法里,变异操作是推动种群进化的关键因素之一。以下是几种常见的变异操作:
- 插入变异 :这种变异方式用两个“∥”符号来标记变异点。一般而言,字符串每一代会有一个基因发生变异,但也能按照每个后代一个基因的速率来实施。例如: 010∥1∥010101 =⇒0100010101 。
- 位翻转变异 :此操作主要作用于二进制编码的遗传算法。它会选取特定的基因组,让每个比特以概率 pm 进行翻转。例如,当所有比特都被选中进行变异时: 0101010101 =⇒1010101010 。
- 渐进变异 :该操作会依据给定的概率密度函数所定义的概率 p ,对字符串中的每个基因加上或者减去一个较小的值。所以,为了达成预期的效果,需要对多个参数进行调整。
- 交换变异 :这种方案在寻找最优排列的问题(如旅行商问题)中表现出色。它会随机选取两个位置,然后交换这两个位置的值。例如: 010∥1∥0101∥0∥1 =⇒0100010111 。
2. 实数空间表示中的进化
由于遗传算法取得了显著的成功,研究人员开始尝试在连续搜索空间中解决现实世界的问题。然而,很快人们就意识到二进制编码存在严重的局限性,主要是因为在考虑实数表示时,变量的定义域包含无穷多个点。而大多数现代编程语言都能高效且有效地
超级会员免费看
订阅专栏 解锁全文
23万+

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



