【问题标题】:Separate mutation probabilities for each part of the solution (Genetic Algorithms)解决方案的每个部分的单独突变概率(遗传算法)
【发布时间】:2020-03-02 02:27:54
【问题描述】:

我正在使用 Deap 库 (Python) 进行进化计算。我对以下突变函数感兴趣:

deap.tools.mutGaussian(individual, mu, sigma, indpb)

根据文档,indpb 指的是每个解决方案元素发生变异的概率。

我的问题是,如何为解决方案的某些部分(索引)指定更高(或更低)的突变概率。

换句话说,indpb 不是一个标量,而是一个解向量。

【问题讨论】:

  • individual 是如何实现的?如果它是类似列表的,您是否希望列表的每个元素以独立的概率发生变异?所以indpb 应该是一个与individual 长度相同的列表,是吗?

标签: genetic-algorithm deap


【解决方案1】:

您很可能需要实现自己的变异函数。可能类似于以下内容:

def mutGaussian(individual, mu, sigma, indpb):
    size = len(individual)
    for i, m, s, p in zip(xrange(size), mu, sigma, indpb):
        if random.random() < p:
            individual[i] += random.gauss(m, s)

    return individual,

【讨论】:

  • 谢谢!这确实是可行的。
猜你喜欢
  • 1970-01-01
  • 2014-12-02
  • 2014-02-07
  • 2011-02-22
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多