Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • May 29 16:49
    fmder commented #404
  • May 29 11:48
    bjuergens commented #404
  • May 29 11:38
    bjuergens commented #404
  • May 25 01:20
    fmder commented #484
  • May 24 21:22
  • May 24 21:19
    foolnotion synchronize #487
  • May 24 20:57
  • May 24 20:54
    foolnotion commented #487
  • May 24 20:53
    foolnotion opened #487
  • May 23 11:02
    fmder closed #486
  • May 23 11:02
    fmder commented #486
  • May 23 03:22
    SumuShan27 edited #486
  • May 22 22:06
    SumuShan27 commented #485
  • May 22 00:12
    SumuShan27 edited #486
  • May 21 18:49
    SumuShan27 opened #486
  • May 21 05:01
    SumuShan27 commented #485
  • May 21 00:33
    fmder closed #485
  • May 21 00:33
    fmder commented #485
  • May 20 20:10
    SumuShan27 opened #485
  • May 15 13:52
    fmder commented #422
Randy Olson
ooohh sorry, wrong channel. I thought this was the TPOT channel
Hello, I've used DEAP in a conference paper that was just published on IEEE ( The paper is about the extraction of the double-bounce contributions corresponding to buildings on satellite SAR (Synthetic Aperture Radar) images, followed by an estimation of the flood depth near the extracted building. You can add it to the list of projects made with DEAP ^^
Jonathan Cooper


Any plans to update pypi? There are quite a few breaking changes since the last pypi push. It also looks like the API changes have settled down quite a bit, it would probably be a good time to update pypi.

Would be lovely to see this happen!
Hello, anyone had the experience of having single objective performs much better than multiobjective function?
Hello, I wonder is the DEAP can solve the OneMax problem with 2 individuals, each individual has 10 number(0 or 1),such as [0,1,1,0,1,0,0,0,1,0], [0,0,0,1,1,0,1,0,1,0],
Thank you
Can someone point me to a working code sample using automatically defined functions (ADFs)?
Manuel Parra
Hi! Have DEAP a identifier (ID) for individuals? I mean, I want to store additional information about de individuals outside of the chromosome about the chromosome
Manuel Parra
Is it possible?
Artem Muterko
Hi, I've recently found DEAP repo on Github and would like to contribute( functional/unit tests for start).
Maybe somebody can point me to places that need testing?
@cmd-ntrf @fmder please advise
François-Michel De Rainville
@manuparra Yes, the History does something similar with a decorator for variation operators. It adds a unique ID and some information of relationship in the individuals.
@micgeronimo All contributions are welcomed. I think regression tests are what is most pressing. For example, benchmarking the convergence of some standard examples could help spot if there is a breaking change pretty easily.
Manuel Parra
Hello, Simple question. Why after using toolbox.mutate(indv), the offspring variable haven't the values changed ? I print changes inside mutation function, but not reflected in offspring.
Manuel Parra
@fmder Solved ! Modification in-place !

Hi, I am running some tests to checkout DEAP. I have this code to instantiate a simple population of simple individuals. The individuals have features that is 1 list of integers. Fitness is calculated by summing the count of feature integers that match a goal integer. And then I run selStochasticUniversalSampling to return a new list.

import numpy as np
import as tools

class Individual():
    def __init__(self):
        self.features = np.random.randint(low=0,high=10,size=5)
        self.goal = 5 = 0

    def fitness_calc(self): = sum(self.features==self.goal)

class Population():
    def __init__(self):
        self.count_individual = 100
        self.list_individual = []

        for i in range(self.count_individual):

    def fitness_calc(self):
        for individual in self.list_individual:

my_population = Population()

sel_population = tools.selStochasticUniversalSampling(individuals=my_population.list_individual,


This fails with traceback:

Traceback (most recent call last):
  File "/home/calvin/PycharmProjects/go/", line 28, in <module>
    sel_population = tools.selStochasticUniversalSampling(individuals=my_population.list_individual,k=10,fit_attr="fitness")
  File "/home/calvin/.local/lib/python3.6/site-packages/deap/tools/", line 197, in selStochasticUniversalSampling
    sum_fits = sum(getattr(ind, fit_attr).values[0] for ind in individuals)
  File "/home/calvin/.local/lib/python3.6/site-packages/deap/tools/", line 197, in <genexpr>
    sum_fits = sum(getattr(ind, fit_attr).values[0] for ind in individuals)
AttributeError: 'numpy.int64' object has no attribute 'values'

Does the fit_attr have to be of a certain datatype? Is there a DEAP fitness datatype that must be used?

Hmmm, it seems that fit_attr must be a type of DEAP class Fitness in order to access that .values?
How can I have multiple gene types ?
I need 2 floats, 1 bool and 1 int
lol this chat is so dead
Nirvana Dogra
Can I use DEAP to do a time series prediction ?
François-Michel De Rainville
@xCuri0 There is a tutorial for that in the documentation
@NirvanaDogra yes, plenty of people use GA to analyse data for the financial market
@jcbro not the best place to post code try the mailing list with gist or Pastebin
Nirvana Dogra
I am pretty new to this field and am working with GP to predict time series data. I am no being able to understand how can I create a expression by looking data.
François-Michel De Rainville
@NirvanaDogra isn't it some kind of regression then with the obtained function you enter a time in the future? There might be more than one way.
Nirvana Dogra
@fmder Thank you, for answering to my questions but can you please tell, where I can read about this topic to get greater details about this. If you know of some Git Repo which I can view to get some insight do let me know. Thanks.
maybe not the best place to ask, but... any advice on which Python neural network library to use with DEAP? I need to train a NN by maximizing the result of a simulation
François-Michel De Rainville
@Nitrooo your description is way too vague, a better place to ask this would be DEAP users mailing list.
Franek Magiera
Hello everyone :) !
I am working on a problem that requires creating a function with n inputs and k outputs. From what I know a GP tree can have only one output, so I thought I would use a list of k trees each getting the same n inputs and producing one of the k outputs.
It seems like a good idea but I am hesitant if it is a correct approach. How will crossover and mutation operators work in case of a list of trees? Will that make sense? Maybe there is a better way?
Source code I have so far below:
pset = gp.PrimitiveSet("MAIN", arity=n, prefix='x')
pset.addPrimitive(operators.addition, 2)
pset.addPrimitive(operators.subtract, 2)
pset.addPrimitive(operators.multiply, 2)
# and many more...
# One optimization objective.
creator.create("FitnessMin", base.Fitness, weights=(-1.0,))
# Arithmetic expression.
creator.create("Tree", gp.PrimitiveTree, pset=pset)
# Individual is a list consisting of n_components trees.
creator.create("Individual", list, fitness=creator.FitnessMin)

toolbox = base.Toolbox()
toolbox.register("expr", gp.genHalfAndHalf, pset=pset, min_=MIN_TREE_HEIGHT, max_=MAX_TREE_HEIGHT)
toolbox.register("tree", tools.initIterate, creator.Tree, toolbox.expr)
toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.tree, n=pop_size)

# Population.
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
Hi, I am working with genetic algorithm in DEAP. I want to parallelize the evalution part that's why I am using multiprocessing. The problem is evaluation function works for only one individual and after that it throws an error above ( Can't pickle <function evaluation at 0x000001ED70DA28C8>: it's not the same object as ga_evaluation.evaluation). How can I solve this issue, any ideas?
François-Michel De Rainville
@franekmagiera I think you should mate and mutate trees by pair using a for loop on zip(individual1, individual2)
François-Michel De Rainville
@buseoz_gitlab That is a function pickling problem. Functions are tricky to pickle, but from you error message here is what I would try first :
Philipp Kraus
Hello, I'm new with EAP, but I have got a very complex individual (as a class), My class has got a mutate and combine method and a method which return two fitness values which should be maximized. In my case the constructure of the class need some initializing parameters. I don't find a tutorial which explain to use the Toolbox with a individual class. Can anybody help me?
Xiao Liang
Almost all toolbox methods are user-defined? If I am not mistaken. If so, there's no need to use toolbox at all?
Philipp Kraus
I need only the "population creation" and the "individual selection" calls from the toolbox, I would like to use the SwarmParticle System because I have got 2 maximazing parameters
In my case I need an own generator which returns a list of my class individuals, an own mutate & combine function and an own evaluate function
How can I do this?
Xiao Liang
@flashpixx IIRC, population creation and individual selection functionality shown in the tutorials using toolbox are all user-defined. The purpose of toolbox is simply providing one level of abstraction which doesn't add any(?) on top of the user-defined functions.
FullStack Engineer
@fmder Is multiprocessing working with deap in python3.6?
deap is surely the most complicated ga package...not clear
Why the population size in the onemax examples decreases from 300 as the starting population size to 180 in the last generation?
Oren Amsalem
Hello, how can I use the history class to extract the generation number from an individual?
Francisco Palomares
Hi, How can I create a condition based on a list of numbers in python, for example that the second component of the list always has to be greater than the third one?
François-Michel De Rainville
@Terahertz0 this column is the number of evaluations, some individuals are copied as is, this they are not reevaluated.
@FranciscoPalomares use the feasibility function as in the constraint tutorial.
Francisco Palomares
def feasible(individual):
    """Feasability function for the individual. Returns True if feasible False
    if int(individual[2]) < int(individual[1]):
        return True
    return False

toolbox.register("evaluate", evalOneMax)
toolbox.decorate("evaluate", tools.DeltaPenality(feasible,7.0))
7.0 is necessary? @fmder . If I don't insert 7 it gives me an error
Francisco Palomares
Hi, How can I apply diversity to the population? in multiple generations the individuals in the population are almost equal