Deap python package: create individuals with different ranges and mix of integers and floats

假如想象 提交于 2019-12-12 08:13:39

问题


I am trying to use DEAP to maximise a function.

I understand how to do it with the basic example:

toolbox.register("attr_bool", random.randint, 0, 1)
toolbox.register("individual", tools.initRepeat, creator.Individual, 
    toolbox.attr_bool, 100)

which creates 100 random values or either 0 or 1. You then go on and create a population and mutate ...

How do you build a population when you have for example two parameters:

parameter 1 integer with range [0,1] 
parameter 2 float with range [0,2]

Then create an individual combining both randomly sampled parameters? or for parameter 2 sample with an arbitary step value , for example 0.25.


回答1:


You can simply do as follows to create chromosomes of multiple types:

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)

and then create a population of size 100:

toolbox.register("population", tools.initRepeat, list, toolbox.individual)
population = toolbox.population(n=100)


来源:https://stackoverflow.com/questions/46811850/deap-python-package-create-individuals-with-different-ranges-and-mix-of-integer

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!