为什么我们在遗传算法中在产生后代之后应用变异操作?
为什么我们在生成后代之后应用变异操作?
人工智能
遗传算法
进化算法
变异算子
2021-11-09 16:15:22
2个回答
突变操作(通常)需要引入在群体中未发现的新基因。
例如,假设您有 4 个可能的基因,,, 和,并且您的染色体具有非二进制编码。在这种情况下,如果您的人口中没有任何成员具有该基因,那么再多的交叉操作都不会导致该基因的引入。
但是,如果您的染色体使用二进制编码,则可能会引入新基因作为交叉操作的副作用。但是进行某种突变以确保可以访问所有基因总是更安全。
另见论文遗传算法用于旅行推销员问题的改进循环交叉算子,其中提到了 TSP 的几种非二进制编码。
突变用于保持解决方案的多样性。单独的交叉不能做到这一点。