解决方案每个部分的单独突变概率(遗传算法)
Separate mutation probabilities for each part of the solution (Genetic Algorithms)
我正在使用 Deap 库 (Python) 进行进化计算。我对以下突变函数感兴趣:
deap.tools.mutGaussian(individual, mu, sigma, indpb)
其中 indpb
,根据文档,指的是改变每个解决方案元素的概率。
我的问题是,如何为解决方案的某些部分(指数)指定更高(或更低)的突变概率。
换句话说,indpb
不是标量而是解向量。
您很可能需要实现自己的突变函数。可能类似于以下内容:
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,
我正在使用 Deap 库 (Python) 进行进化计算。我对以下突变函数感兴趣:
deap.tools.mutGaussian(individual, mu, sigma, indpb)
其中 indpb
,根据文档,指的是改变每个解决方案元素的概率。
我的问题是,如何为解决方案的某些部分(指数)指定更高(或更低)的突变概率。
换句话说,indpb
不是标量而是解向量。
您很可能需要实现自己的突变函数。可能类似于以下内容:
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,