by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 06 08:36
    anjanikeshari edited #496
  • Jul 31 16:58
    anjanikeshari commented #496
  • Jul 31 16:48
    anjanikeshari opened #496
  • Jul 30 22:44
    eyinlojuoluwa commented #495
  • Jul 30 22:08
    fmder commented #495
  • Jul 30 21:43
    eyinlojuoluwa commented #495
  • Jul 30 17:54
    eyinlojuoluwa commented #495
  • Jul 30 12:25
    fmder commented #495
  • Jul 30 12:00
    eyinlojuoluwa commented #495
  • Jul 30 11:50
    eyinlojuoluwa commented #495
  • Jul 30 11:47
    eyinlojuoluwa commented #495
  • Jul 30 11:46
    eyinlojuoluwa commented #495
  • Jul 30 11:30
    fmder commented #495
  • Jul 30 08:03
    eyinlojuoluwa commented #495
  • Jul 30 08:02
    eyinlojuoluwa commented #495
  • Jul 30 02:49
    DMTSource commented #495
  • Jul 27 17:16
    eyinlojuoluwa commented #495
  • Jul 27 17:05
    eyinlojuoluwa commented #495
  • Jul 27 15:34
    fmder commented #494
  • Jul 27 11:52
    fmder labeled #495
enoD
@enod
Hello, anyone had the experience of having single objective performs much better than multiobjective function?
Jackzhang
@mingzhangPHD
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
blueshrapnel
@blueshrapnel
Can someone point me to a working code sample using automatically defined functions (ADFs)?
Manuel Parra
@manuparra
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
@manuparra
Is it possible?
Artem Muterko
@micgeronimo
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
@fmder
@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
@manuparra
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
@manuparra
@fmder Solved ! Modification in-place !
jcbro
@jcbro

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 deap.tools as tools

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

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

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

        for i in range(self.count_individual):
            self.list_individual.append(Individual())

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

my_population = Population()
my_population.fitness_calc()

sel_population = tools.selStochasticUniversalSampling(individuals=my_population.list_individual,
                                                      k=10,
                                                      fit_attr="fitness")

print("complete")

This fails with traceback:

Traceback (most recent call last):
  File "/home/calvin/PycharmProjects/go/go_test.py", 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/selection.py", 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/selection.py", 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?

jcbro
@jcbro
Hmmm, it seems that fit_attr must be a type of DEAP class Fitness in order to access that .values?
Curi0
@xCuri0
How can I have multiple gene types ?
I need 2 floats, 1 bool and 1 int
Curi0
@xCuri0
lol this chat is so dead
Nirvana Dogra
@NirvanaDogra
Can I use DEAP to do a time series prediction ?
François-Michel De Rainville
@fmder
@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
@NirvanaDogra
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
@fmder
@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
@NirvanaDogra
@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.
Nitrooo
@Nitrooo
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
@fmder
@Nitrooo your description is way too vague, a better place to ask this would be DEAP users mailing list.
Franek Magiera
@franekmagiera
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)
buse
@buseoz_gitlab
image.png
image.png
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
@fmder
@franekmagiera I think you should mate and mutate trees by pair using a for loop on zip(individual1, individual2)
François-Michel De Rainville
@fmder
@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 : https://stackoverflow.com/questions/1412787/picklingerror-cant-pickle-class-decimal-decimal-its-not-the-same-object
Philipp Kraus
@flashpixx
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
@yxliang01
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
@flashpixx
I need only the "population creation" and the "individual selection" calls from the toolbox, I would like to use the SwarmParticle System https://deap.readthedocs.io/en/master/examples/pso_basic.html 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
@yxliang01
@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
@fullstackguru_gitlab
@fmder Is multiprocessing working with deap in python3.6?
admin
@arbitrage-technology
deap is surely the most complicated ga package...not clear
Terahertz0
@Terahertz0
Why the population size in the onemax examples decreases from 300 as the starting population size to 180 in the last generation?
image.png
Oren Amsalem
@orena1
Hello, how can I use the history class to extract the generation number from an individual?
Thanks
Francisco Palomares
@FranciscoPalomares
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
@fmder
@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
@FranciscoPalomares
def feasible(individual):
    """Feasability function for the individual. Returns True if feasible False
    otherwise."""
    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
@FranciscoPalomares
Hi, How can I apply diversity to the population? in multiple generations the individuals in the population are almost equal
François-Michel De Rainville
@fmder

@FranciscoPalomares Documentation for DeltaPenalty and tutorial . 7.0 is the penalty applied to invalid individuals. It is a required argument.

Diversity strongly depends on your response domain. If your population converges too fast you can try to play with crossover and mutation parameters. Moreover having selection with randomness (like tournament with a low number of participant) may help.

Hananel Hazan
@Hananel-Hazan
Hello, thanks for this wonderful tool!
I have two parameters that I want to maximize with some fitness function. But each parameter has a certain limit to its range, i.e. parameter value is limit between -1 to 100, and parameter b range limit is between -50 to -10.
How can I limit the evolution of values to a certain range?
Thanks to the helpers :-)
François-Michel De Rainville
@fmder
@Hananel-Hazan Hey, you can either use soft constraints, operators that handle bounds (bounded operators), or repair in your evaluation function.
Hananel Hazan
@Hananel-Hazan
Thanks @fmder