我正在尝试制作一个遗传算法,它可以找到控制台输入中给出的单词。但我不知道我是否成功地完成了一个完整的遗传算法。代码如下:
main.py:
from population import Population
target = input()
maxPop = 10
mutation = 100
print("\n\n\n")
pop = Population(target, maxPop, mutation)
population.py:
import random
from ADN import genetic
class Population:
def __
我刚刚开始使用DEAP。在此之前,我使用了基于Matlab的遗传算法,即经过交叉和变异后,选择具有指定大小的个体,然后对种群进行更新。但是,我很难理解为什么在DEAP中,在交叉和变异过程之后,需要对身体健康无效的个体进行评估:
invalid_ind = [ind for ind in offspring if not ind.fitness.valid]
fitnesses = map(toolbox.evaluate, invalid_ind)
for ind, fit in zip(invalid_ind, fitnesses):
ind.fitness.values = fit