pyeasyga package¶
Submodules¶
pyeasyga.pyeasyga module¶
pyeasyga module
- class pyeasyga.pyeasyga.Chromosome(genes)[source]¶
Bases: object
Chromosome class that encapsulates an individual’s fitness and solution representation.
- class pyeasyga.pyeasyga.GeneticAlgorithm(seed_data, population_size=50, generations=100, crossover_probability=0.8, mutation_probability=0.2, elitism=True, maximise_fitness=True)[source]¶
Bases: object
Genetic Algorithm class.
This is the main class that controls the functionality of the Genetic Algorithm.
A simple example of usage:
>>> # Select only two items from the list and maximise profit >>> from pyeasyga.pyeasyga import GeneticAlgorithm >>> input_data = [('pear', 50), ('apple', 35), ('banana', 40)] >>> easyga = GeneticAlgorithm(input_data) >>> def fitness (member, data): >>> return sum([profit for (selected, (fruit, profit)) in >>> zip(member, data) if selected and >>> member.count(1) == 2]) >>> easyga.fitness_function = fitness >>> easyga.run() >>> print easyga.best_individual()
- calculate_population_fitness()[source]¶
Calculate the fitness of every member of the given population using the supplied fitness_function.
- create_first_generation()[source]¶
Create the first population, calculate the population’s fitness and rank the population by fitness according to the order specified.
- create_new_population()[source]¶
Create a new population using the genetic operators (selection, crossover, and mutation) supplied.
- create_next_generation()[source]¶
Create subsequent populations, calculate the population fitness and rank the population by fitness in the order specified.
Module contents¶
pyeasyga
A simple and easy-to-use genetic algorithm implementation library in Python.
For a bit array solution representation, simply instantiate the GeneticAlgorithm class with input data, define and supply a fitness function, run the Genetic Algorithm, and retrieve the solution!
Other solution representations will require setting some more attributes.