为什么我们在生成后代之后应用变异操作?

人工智能 遗传算法 进化算法 变异算子
2021-11-09 16:15:22

为什么我们在遗传算法中在产生后代之后应用变异操作?

2个回答

突变操作(通常)需要引入在群体中未发现的新基因。

例如,假设您有 4 个可能的基因A,B,C, 和D,并且您的染色体具有非二进制编码。在这种情况下,如果您的人口中没有任何成员具有该基因D,那么再多的交叉操作都不会导致该基因的引入。

但是,如果您的染色体使用二进制编码,则可能会引入新基因作为交叉操作的副作用。但是进行某种突变以确保可以访问所有基因总是更安全。

另见论文遗传算法用于旅行推销员问题的改进循环交叉算子,其中提到了 TSP 的几种非二进制编码。

突变用于保持解决方案的多样性。单独的交叉不能做到这一点。