我在Python中使用DEAP并在那里使用遗传算法。以下是大小为100
的属性(染色体)的定义。
toolbox.register("attr_bool", random.randint, 0, 1)
以下表达式创建一个包含300个大小的群体,其中每个列都是染色体或解决方案。
pop = toolbox.population(n=300)
我的问题是,如何强制pop
拥有所有1
列(染色体或解决方案)。我想确保在人口中有一个1
向量的解决方案。
答案 0 :(得分:1)
你可以试试这个:
def make_bool(x):
return (x)
toolbox.register("bit_1", make_bool, 1)
toolbox.register("indiv_1", tools.initRepeat, creator.Individual, toolbox.bit_1, 100)
all_one = toolbox.indiv_1()
pop.append(all_one)