[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3377929.3398147acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
research-article

Library for evolutionary algorithms in Python (LEAP)

Published: 08 July 2020 Publication History

Abstract

There are generally three types of scientific software users: users that solve problems using existing science software tools, researchers that explore new approaches by extending existing code, and educators that teach students scientific concepts. Python is a general-purpose programming language that is accessible to beginners, such as students, but also as a language that has a rich scientific programming ecosystem that facilitates writing research software. Additionally, as high-performance computing (HPC) resources become more readily available, software support for parallel processing becomes more relevant to scientific software.
There currently are no Python-based evolutionary computation frameworks that adequately support all three types of scientific software users. Moreover, some support synchronous concurrent fitness evaluation that do not efficiently use HPC resources. We pose here a new Python-based EC framework that uses an established generalized unified approach to EA concepts to provide an easy to use toolkit for users wishing to use an EA to solve a problem, for researchers to implement novel approaches, and for providing a low-bar to entry to EA concepts for students. Additionally, this toolkit provides a scalable asynchronous fitness evaluation implementation friendly to HPC that has been vetted on hardware ranging from laptops to the worlds fastest supercomputer, Summit.

References

[1]
Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Levenberg, Dandelion Mané, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viégas, Oriol Vinyals, Pete Warden, Martin Wattenberg, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng. TensorFlow: large-scale machine learning on heterogeneous systems, 2015. URL: https://www.tensorflow.org/. Software available from tensorflow.org.
[2]
Shumeet Baluja. Population-based incremental learning. a method for integrating genetic search based function optimization and competitive learning. Technical report, Carnegie-Mellon Univ Pittsburgh Pa Dept Of Computer Science, 1994.
[3]
Jeffrey K. Bassett. Methods for Improving the Design and Performance of Evolutionary Algorithms. PhD thesis, George Mason University, 2012.
[4]
Jeffrey K. Bassett and Kenneth A. De Jong. Using multivariate quantitative genetics theory to assist in ea customization. In Proceedings of the 11th workshop proceedings on Foundations of genetic algorithms, pages 219--230, 2011.
[5]
Antonio Bentez-Hidalgo, Antonio J. Nebro, Jos Garca-Nieto, Izaskun Oregi, and Javier [Del Ser]. jMetalPy: a Python framework for multi-objective optimization with metaheuristics. Swarm and Evolutionary Computation, 51:100598, 2019. URL: http://www.sciencedirect.com/science/article/pii/S2210650219301397.
[6]
Greg Brockman, Vicki Cheung, Ludwig Pettersson, Jonas Schneider, John Schulman, Jie Tang, and Wojciech Zaremba. Openai gym. arXiv preprint arXiv:1606.01540, 2016.
[7]
François Chollet et al. Keras. https://keras.io, 2015.
[8]
M. Coletti, A. Fafard, and D. Page. Troubleshooting deeplearner training data problems using an evolutionary algorithm on summit. IBM Journal of Research and Development:1--1, in press.
[9]
Dask Development Team. Dask: Library for dynamic task scheduling. 2016. URL: https://dask.org.
[10]
Kenneth De Jong. Evolutionary Computation: A Unified Approach. The MIT Press, 2006.
[11]
Kenneth De Jong. Learning with genetic algorithms: an overview. Machine learning, 3(2-3):121--138, 1988.
[12]
Félix-Antoine Fortin, François-Michel De Rainville, MarcAndré Gardner, Marc Parizeau, and Christian Gagné. DEAP: evolutionary algorithms made easy. Journal of Machine Learning Research, 13:2171--2175, 2012.
[13]
A. Garrett. Inspyred: bio-inspired algorithms in python. 2017. URL: http://aarongarrett.github.io/inspyred/.
[14]
Nikolaus Hansen, Sibylle D Müller, and Petros Koumoutsakos. Reducing the time complexity of the derandomized evolution strategy with covariance matrix adaptation (cma-es). Evolutionary computation, 11(1):1--18, 2003.
[15]
Yannick Hold-Geoffroy, Olivier Gagnon, and Marc Parizeau. Once you scoop, no need to fork. In Proceedings of the 2014 Annual Conference on Extreme Science and Engineering Discovery Environment, page 60. ACM, 2014.
[16]
June 2019 | TOP500 supercomputer sites, 2019. URL: https://www.top500.org/lists/2019/06/.
[17]
Maarten Keijzer, Juan J Merelo, Gustavo Romero, and Marc Schoenauer. Evolving objects: a general purpose evolutionary computation library. In International Conference on Artificial Evolution (Evolution Artificielle), pages 231--242. Springer, 2001.
[18]
Mehdi Khoury et al. pySTEP or Python strongly typed genetic programming. https://sourceforge.net/projects/pystep/.
[19]
Sean Luke. ECJ evolutionary computation library, 1998. Available for free at http://cs.gmu.edu/~eclab/projects/ecj/.
[20]
ORNL Leadership Computing Facility. Summit: america's newest and smartest supercomputer, 2019. URL: https://www.olcf.ornl.gov/for-users/system-user-guides/summit/summit-user-guide/#system-overview.
[21]
Gary Pamparà and Andries P Engelbrecht. Evolutionary and swarm-intelligence algorithms through monadic composition. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, pages 1382--1390, 2019.
[22]
Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and Soumith Chintala. Pytorch: an imperative style, high-performance deep learning library. In Advances in Neural Information Processing Systems 32, pages 8024--8035. 2019. URL: http://papers.neurips.cc/paper/9015-pytorch-an-imperative-style-high-performance-deep-learning-library.pdf.
[23]
Christian S Perone. Pyevolve: a python open-source framework for genetic algorithms. Acm Sigevolution, 4(1):12--20, 2009.
[24]
Adrian M. Price-Whelan and Daniel Foreman-Mackey. Schwimmbad: a uniform interface to parallel processing pools in python. The Journal of Open Source Software, 2(17), 2017.
[25]
Ayodeji Remi-Omosowon and Yasser Gonzalez. Pyeasyga: A simple and easy-to-use implementation of a Genetic Algorithm library in Python. https://github.com/remiomosowon/pyeasyga, 2014.
[26]
Matthew Rocklin and John Jacobsen. Toolz. 2020. URL: https://toolz.readthedocs.io/en/latest/index.html.
[27]
Ralf Salomon. Re-evaluating genetic algorithm performance under coordinate rotation of benchmark functions. A survey of some theoretical and practical aspects of genetic algorithms. BioSystems, 39(3):263--278, 1996.
[28]
Eric O Scott and Kenneth A De Jong. Understanding simple asynchronous evolutionary algorithms. In Proceedings of the 2015 ACM Conference on Foundations of Genetic Algorithms XIII, pages 85--98, 2015.
[29]
Eric O Scott and Sean Luke. Ecj at 20: toward a general metaheuristics toolkit. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, pages 1391--1398, 2019.

Cited By

View all
  • (2024)Embracing the Hairball: An Investigation of Recurrence in Spiking Neural Networks for Control2024 Neuro Inspired Computational Elements Conference (NICE)10.1109/NICE61972.2024.10548512(1-5)Online publication date: 23-Apr-2024
  • (2024)Realistic Tax Planning with Evolutionary Algorithms2024 IEEE Congress on Evolutionary Computation (CEC)10.1109/CEC60901.2024.10612201(1-8)Online publication date: 30-Jun-2024
  • (2024)Varying Difficulty of Knowledge Reuse in Benchmarks for Evolutionary Knowledge Transfer2024 IEEE Congress on Evolutionary Computation (CEC)10.1109/CEC60901.2024.10612149(01-08)Online publication date: 30-Jun-2024
  • Show More Cited By

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
GECCO '20: Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion
July 2020
1982 pages
ISBN:9781450371278
DOI:10.1145/3377929
Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the United States government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 July 2020

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

  • UT Batelle

Conference

GECCO '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,669 of 4,410 submissions, 38%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)45
  • Downloads (Last 6 weeks)4
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Embracing the Hairball: An Investigation of Recurrence in Spiking Neural Networks for Control2024 Neuro Inspired Computational Elements Conference (NICE)10.1109/NICE61972.2024.10548512(1-5)Online publication date: 23-Apr-2024
  • (2024)Realistic Tax Planning with Evolutionary Algorithms2024 IEEE Congress on Evolutionary Computation (CEC)10.1109/CEC60901.2024.10612201(1-8)Online publication date: 30-Jun-2024
  • (2024)Varying Difficulty of Knowledge Reuse in Benchmarks for Evolutionary Knowledge Transfer2024 IEEE Congress on Evolutionary Computation (CEC)10.1109/CEC60901.2024.10612149(01-08)Online publication date: 30-Jun-2024
  • (2024)Enhancing a Hierarchical Evolutionary Strategy Using the Nearest-Better ClusteringComputational Science – ICCS 202410.1007/978-3-031-63759-9_43(423-437)Online publication date: 2-Jul-2024
  • (2023)Multiobjective Hyperparameter Optimization for Deep Learning Interatomic Potential Training Using NSGA-IIProceedings of the 52nd International Conference on Parallel Processing Workshops10.1145/3605731.3608931(172-179)Online publication date: 7-Aug-2023
  • (2023)Zespol: A Lightweight Environment for Training Swarming AgentsProceedings of the 2023 International Conference on Neuromorphic Systems10.1145/3589737.3606002(1-5)Online publication date: 1-Aug-2023
  • (2023)Initialization Matters for Asynchronous Steady-State Evolutionary AlgorithmsProceedings of the Companion Conference on Genetic and Evolutionary Computation10.1145/3583133.3596404(1570-1578)Online publication date: 15-Jul-2023
  • (2023)Configuring a Hierarchical Evolutionary Strategy Using Exploratory Landscape AnalysisProceedings of the Companion Conference on Genetic and Evolutionary Computation10.1145/3583133.3596403(1785-1792)Online publication date: 15-Jul-2023
  • (2023)Maelstrom: An Accelerator-compatible GP FrameworkProceedings of the Companion Conference on Genetic and Evolutionary Computation10.1145/3583133.3596359(1882-1890)Online publication date: 15-Jul-2023
  • (2023)Gaggle: Genetic Algorithms on the GPU using PyTorchProceedings of the Companion Conference on Genetic and Evolutionary Computation10.1145/3583133.3596356(2358-2361)Online publication date: 15-Jul-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media