我正在尝试使用DEAP来最大化功能。
我理解如何使用基本示例:
toolbox.register("attr_bool", random.randint, 0, 1)
toolbox.register("individual", tools.initRepeat, creator.Individual,
toolbox.attr_bool, 100)
创建100个随机值或0或1.然后继续创建一个群体并进行变异...
如果您有两个参数,如何构建人口:
parameter 1 integer with range [0,1]
parameter 2 float with range [0,2]
然后创建一个组合随机抽样参数的个体?或具有任意步长值的参数2样本,例如0.25。
答案 0 :(得分:3)
您可以按照以下步骤创建多种类型的染色体:
toolbox.register("attr_int", random.randint, 0, 1)
toolbox.register("attr_flt", random.uniform, 0, 2)
toolbox.register("individual", tools.initCycle, creator.Individual,
(toolbox.attr_int, toolbox.attr_flt),
n=1)
然后创建一个大小为100的人口:
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
population = toolbox.population(n=100)
答案 1 :(得分:-1)
因此,我创建了由整数和浮点数组成的染色体。现在,在评估了一个世代之后,您便有了mutate和mate运算符,它们可以创建新的染色体。但是,我不知道如何创建这些运算符,使它们同时也是整数和浮点数的混合。 这是创建染色体的功能。
def uniform(float_min, float_max, int_max, N_inputs):
""" function to create individual """
integers = list(numpy.random.randint(0, int_max, N_inputs))
floats = list(numpy.random.uniform(float_min, float_max, N_inputs))
return integers+ floats
我不需要注册mutate和mate:
toolbox.register("mate", deap.tools.???)
toolbox.register("mutate", deap.tools.???)
希望您能帮助我。 干杯 塞巴斯蒂安