我似乎无法弄清楚如何在 DEAP 中拥有可变长度的基因组。
我浏览了 DEAP 文档,没有发现任何与可变长度基因组相关的内容。
如果您在不指定n
参数的情况下定义您的个体,那么您可以创建许多具有不同长度的个体。例如
from deap import base, tools, creator
import random
toolbox = base.Toolbox()
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
toolbox.register("individual", tools.initRepeat, creator.Individual, random.random)
print(toolbox.individual(n=2))
print(toolbox.individual(n=5))
如果您想创建一个每个人都有不同长度的群体,您可以查看DEAP 文档中的背包问题。主要思想归结为以这种方式定义您的人口:
from deap import creator, base, tools
import random
creator.create("Fitness", base.Fitness, weights=(-1.0, 1.0))
creator.create("Individual", set, fitness=creator.Fitness)
toolbox = base.Toolbox()
toolbox.register("attr_item", random.randrange, 5)
toolbox.register("individual", tools.initRepeat, creator.Individual,
toolbox.attr_item, 3)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
toolbox.population(n=5)