DEAP (software)
Jump to navigation
Jump to search
This article needs additional citations for verification. (September 2015) |
| DEAP | |
|---|---|
| Original authors | François-Michel De Rainville, Félix-Antoine Fortin, Marc-André Gardner, Marc Parizeau, Christian Gagné |
| Developers | François-Michel De Rainville, Félix-Antoine Fortin, Marc-André Gardner |
| Initial release | 2009 |
| Repository |
|
| Written in | Python |
| Engine | |
| Operating system | Cross-platform |
| Type | Evolutionary computation framework |
| License | LGPL |
| Website | github |
Distributed Evolutionary Algorithms in Python (DEAP) is an evolutionary computation framework for rapid prototyping and testing of ideas.[1][2][3] It incorporates the data structures and tools required to implement most common evolutionary computation techniques such as genetic algorithm, genetic programming, evolution strategies, particle swarm optimization, differential evolution, traffic flow[4] and estimation of distribution algorithm. It is developed at Université Laval since 2009.
Example
[edit | edit source]The following code gives a quick overview how the Onemax problem optimization with genetic algorithm can be implemented with DEAP.
import array
import random
from deap import creator, base, tools, algorithms
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", array.array, typecode="b", fitness=creator.FitnessMax)
toolbox = base.Toolbox()
toolbox.register("attr_bool", random.randint, 0, 1)
toolbox.register(
"individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, 100
)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
evalOneMax = lambda individual: (sum(individual),)
toolbox.register("evaluate", evalOneMax)
toolbox.register("mate", tools.cxTwoPoint)
toolbox.register("mutate", tools.mutFlipBit, indpb=0.05)
toolbox.register("select", tools.selTournament, tournsize=3)
population = toolbox.population(n=300)
NGEN = 40
for gen in range(NGEN):
offspring = algorithms.varAnd(population, toolbox, cxpb=0.5, mutpb=0.1)
fits = toolbox.map(toolbox.evaluate, offspring)
for fit, ind in zip(fits, offspring):
ind.fitness.values = fit
population = offspring
See also
[edit | edit source]- Python SCOOP (software)
- Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).