遗传算法中探索与利用的区别

use*_*216 11 search genetic-programming genetic-algorithm

在进化算法中,维持了两个主要的能力,即探索和开发.

在探索中,搜索新区域中的新解决方案的算法,而剥离意味着使用已存在的解决方案并对其进行细化,以便提高其适应性.

在我的情况下,我担心遗传算法,我的问题是我阅读了许多不同的文章,我找出了三个不同的解释,探索和利用这些观点如下:

  1. 在一篇文章中,它谈到了探索是通过突变进行的交叉和利用来完成的

  2. 在一篇文章中,第一篇文章的逆转,通过突变和交叉开发进行探索

  3. 最后一篇是由AE Eiben和CA Schippers撰写的论文"On Evolutionary Exploration and Exploitation"(1998),它说开发是通过选择过程完成的,而探索是由操作员完成的,无论它是交叉还是突变

我从我的小观点看,交叉和变异都为我们提供了一种新的解决方案,这种解决方案在人群中不存在,这是算法的随机部分,因此它是探索过程,当选择个体进行交配或繁殖时,我从中选择现有的解决方案,并根据它的健身,这是启发式的部分,所以它的利用.

哪个是正确的?哪个步骤或操作员负责勘探和负责开采?

请为此我需要推理合理的答案.

Tri*_*ide 8

3号似乎是正确的解释.

交叉和变异都是探索问题空间的方法.选择用于利用当前集合中的"好"遗传物质.

但是我认为你建议这些是两个独立的,不同的概念.它们都是遍历问题空间的方法,两者几乎总是一起使用.算法应该通过交叉和变异来探索问题空间,但是应该通过在其他好的解决方案附近引入解决方案来实现.

诀窍始终是寻找合适的平衡点.过度开发并且你会陷入局部最大值,走得太远而无法探索,你会浪费时间在不太可能好的解决方案上,而忽略你已经收集的信息.