解决方案每个部分的单独突变概率(遗传算法)



我正在使用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,

最新更新