A Python framework for rapid prototyping and testing of evolutionary algorithms, including genetic algorithms, genetic programming, and evolution strategies.
DEAP is a Python framework for evolutionary computation that enables rapid prototyping and testing of evolutionary algorithms. It provides tools for implementing genetic algorithms, genetic programming, evolution strategies, and multi-objective optimization with transparent data structures and seamless parallelization.
Researchers, data scientists, and developers working on optimization problems, machine learning pipeline tuning, or algorithmic research who need a flexible and efficient framework for evolutionary computation.
DEAP stands out for its flexibility in algorithm design, support for diverse representations, and built-in parallelization, making it ideal for both academic research and practical applications in optimization and machine learning.
Distributed Evolutionary Algorithms in Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports diverse representations including lists, arrays, sets, and NumPy arrays, enabling custom evolutionary algorithms as highlighted in the README's feature list.
Implements advanced algorithms like NSGA-II and SPEA2 for complex optimization, a key strength mentioned in the documentation and publications.
Integrates with multiprocessing and SCOOP for parallel fitness evaluations, improving performance on multi-core systems as described in the framework's philosophy.
Includes benchmarks, genealogy tracking compatible with NetworkX, and checkpoints, facilitating academic research and experimental reproducibility.
Requires deep understanding of evolutionary algorithms to implement custom solutions, as it emphasizes explicit design over simplicity, making it less accessible for novices.
Features like CMA-ES depend on NumPy, and Python 3 compatibility issues with setuptools add installation hurdles, as noted in the requirements section.
Does not offer drop-in algorithms for common tasks; users must manually configure toolboxes and operators, increasing initial development time.