限制染色体中活跃基因的数量

时间:2019-11-17 12:54:05

标签: numpy genetic-algorithm deap

我正试图限制染色体中活跃基因的数量,以提高GA的收敛速度。有没有办法在不创建自己的运算符的情况下实现这一目标。

作为基础,我考虑了一个最大问题。在这里整个染色体都是重复的。就我而言,我想将迭代次数限制在合理范围内,但仍需激活随机基因。从本质上讲,这就像将n_active添加到个人中。

# Optimization parameters
nb_clusters = 24
nb_elts = 22

creator.create("FitnessMin", base.Fitness, weights=(-1.0,))
creator.create("Individual", numpy.ndarray, fitness=creator.FitnessMin)

toolbox = base.Toolbox()

# Attribute generator
toolbox.register("attr_bool", random.randint, 0, 1)

# Structure initializers
toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, n=nb_clusters*nb_elts, n_active=2*nb_elts)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)

解决此问题的另一种方法可能是限制称为(n)的迭代次数以填充更大的数组。那随机方面呢?有想法吗?

0 个答案:

没有答案