【问题标题】:Difference between exploration and exploitation in genetic algorithm遗传算法中探索与利用的区别
【发布时间】:2013-12-08 08:15:06
【问题描述】:

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

Exploration 中的算法是在新区域中寻找新的解决方案,而 Exploitation 意味着使用已经存在的解决方案并对其进行细化以提高其适应度。

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

  1. 在一篇文章中谈到探索是通过交叉完成的,而利用则是通过变异完成的

  2. 在一篇文章中与第一篇相反,通过变异探索和通过交叉利用

  3. 最后一篇是 A. E. Eiben 和 C.A. Schippers,它说开发是通过选择过程完成的,而探索是由操作员完成的,无论是交叉还是变异

从我的小观点来看,交叉和变异都为我们提供了一个新的解决方案,这在群体中是不存在的,这是算法的随机部分,因此它是探索过程,在选择个体进行交配或繁殖时,我从已经存在的解决方案中选择,并根据它的适合度进行选择,这是启发式的部分,因此它可以利用。

哪个是正确的?哪个步骤或操作员负责探索,哪个负责开发?

请我需要推理逻辑的答案。

【问题讨论】:

    标签: search genetic-algorithm genetic-programming


    【解决方案1】:

    数字 3 似乎是正确的解释。

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

    但是,我认为您的意思是,它们不是两个独立且多样化的概念。它们都是遍历问题空间的方法,几乎​​总是结合使用。算法应该通过交叉和变异来探索问题空间,但它应该通过优先选择靠近其他好的解决方案的解决方案来做到这一点。

    诀窍始终在于找到合适的平衡点。过度利用,您将陷入局部最大值,过度探索,您将浪费时间在不太可能好的解决方案上,并忽略您已经收集的信息。

    【讨论】:

    • 我同意,我理解后半部分,但我需要解释“过度利用,你会陷入局部最大值”,所以如果我可以通过交叉或突变率来平衡探索,所以我如何控制你在选择中提到的剥削,而不是停留在局部最大值。
    • 换句话说如何设置选择压力。
    • 通常你会通过改变交叉和突变率来平衡它,但你可以对选择过程进行一些改变。使用不同的选择过程(例如轮盘赌和锦标赛选择)会产生不同程度的选择压力。此外,消除 X 最低百分比的人口是增加剥削的常用方法(或反过来保证选择最佳候选人)。
    【解决方案2】:

    交叉算子实现深度搜索或利用,将广度搜索或探索留给变异算子:

    (来源:https://www.cs.cmu.edu/afs/cs/project/jair/pub/volume24/ortizboyer05a-html/node1.html

    Crossover -> Exploitation (depth search but not breadth)
    
    Mutation -> Exploration (Breadth search)
    
    Suppose a genetic algorithm uses chromosomes of the form x = abcdefgh
    with a fixed length of eight genes. Each gene can be any digit between 0
    and 9. Let the fitness of individual x be calculated as:
    
    f(x) = (a + b) − (c + d) + (e + f) − (g + h) 
    
    and let the initial population consist of four individuals with the following
    chromosomes:
    x1 = 6 5 4 1 3 5 3 2
    x2 = 8 7 1 2 6 6 0 1
    x3 = 2 3 9 2 1 2 8 5
    x4 = 4 1 8 5 2 0 9 4
    

    算法永远不会达到最优解 没有突变。假设最优解是 x = 9 9 0 0 9 9 0 0。如果 没有发生突变,那么改变基因的唯一方法是应用交叉算子。不管交叉进行的方式如何,其唯一的结果是在染色体的某些位置交换父母的基因。这意味着儿童染色体中的第一个基因只能是 6、8、2 或 4(即 x1、x2、x3 和 x4 最佳的第一个基因),并且因为初始种群中没有一个个体以基因 9 开头, 单独的交叉算子永远无法产生一开始带有基因 9 的后代。

    (来源:http://www.eis.mdx.ac.uk/staffpages/rvb/teaching/BIS3226/sol15.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2018-07-30
      • 2016-01-13
      • 2011-02-22
      • 1970-01-01
      • 2015-06-04
      相关资源
      最近更新 更多