Skip to content

Latest commit

 

History

History
166 lines (150 loc) · 22.5 KB

Introduction-to-Evolutionary-Computation-(EC).md

File metadata and controls

166 lines (150 loc) · 22.5 KB

An Introduction to Evolutionary Computation (EC)

Motivations from Biological Evolution via Natural Selection: Population-based Diversity and Randomness-based Adaptation

directed evolution

Some Useful and Interesting Applications

Open-Source Software

Python-based Software

The following order regarding a set of EC-related Python libraries makes no sense (just roughly from a download statistic perspective). We are actively updating this interesting list as we believe new libraries will be generated in the future.

  • cmaes: A Python library for CMA-ES (Downloads).
  • DEAP: Distributed EAs in Python (> 2000 Citations + Downloads).
    • Fortin, F.A., De Rainville, F.M., Gardner, M.A.G., Parizeau, M. and Gagné, C., 2012. DEAP: Evolutionary algorithms made easy. Journal of Machine Learning Research, 13(1), pp.2171-2175.
  • pycma: Python implementation of CMA-ES (Downloads).
  • pymoo: Multi-objective Optimization in Python (Downloads).
  • TPOT: A Python AutoML tool that optimizes ML pipelines using GP (Downloads).
  • nevergrad: A Python toolbox for performing gradient-free optimization (Downloads).
  • PyBrain: The Python ML Library (Downloads).
    • Schaul, T., Bayer, J., Wierstra, D., Sun, Y., Felder, M., Sehnke, F., Rückstieß, T. and Schmidhuber, J., 2010. PyBrain. Journal of Machine Learning Research, 11, pp.743-746.
  • PySwarms: A research toolkit for PSO in Python (Downloads).
    • "NOTICE: The author of this library is not actively maintaining this open-source repository anymore."
  • pygmo2: A scientific Python library for massively parallel optimization (Downloads).
  • PySR: High-Performance Symbolic Regression in Python and Julia (Downloads).
  • Gradient-Free-Optimizers: Simple and reliable optimization with local, global, population-based and sequential techniques in numerical discrete search spaces (Downloads).
  • PINTS: Probabilistic Inference on Noisy Time Series (Downloads). [CMA-ES + XNES + SNES + PSO]
  • evosax: ES in JAX (Downloads).
  • PyPop7: A Pure-Python Library for POPulation-based Black-Box Optimization (BBO), especially their Large-Scale versions/variants (Downloads).
  • EvoJAX: Hardware-Accelerated Neuroevolution (Downloads).
  • Platypus: A framework for EC in Python with a focus on Multi-Objective EAs (Downloads).
  • Vega: AutoML tools chain (Downloads).
  • LEAP: A general purpose Library for EAs in Python (Downloads).
  • EvolutionaryForest: A Python library for automated feature engineering based on GP (Downloads)
  • EvoTorch : Advanced EC library built directly on top of PyTorch, created at NNAISENSE (Downloads).
  • EC-KitY: A Python library for doing EC compatible with scikit-learn (Downloads).
  • QDax: A Python tool to accelerate QD and neuro-evolution algorithms through hardware accelerators and massive parallelization (Downloads).
    • Chalumeau, F., Lim, B., Boige, R., Allard, M., Grillotti, L., Flageat, M., Macé, V., Richard, G., Flajolet, A., Pierrot, T. and Cully, A., 2024. QDax: A library for quality-diversity and population-based algorithms with hardware acceleration. Journal of Machine Learning Research, 25(108), pp.1-16.
  • pyribs: A Python library for QD optimization (Downloads).
  • paradiseo: An EC framework to (automatically) build fast parallel stochastic optimization solvers.

Some (Rather All) Applications from Different Disciplines

Although we have given many problem instances where EAs showed satisfactory (not necessarily optimal) performance, NOT all problems could be best solved by EAs: e.g., [1], just to name a few. We believe that the amount of problem instances tackled effectively by EA will still keep increasing in the future.

Computer Graphics

Reference

visitors