Skip to main content

Library for Evolutionary Algorithms in Python (LEAP)...

by Mark A Coletti, Eric Scott, Jeffrey Bassett
Publication Type
Conference Paper
Book Title
GECCO '20: Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion
Publication Date
Page Numbers
1571 to 1579
Conference Name
The Genetic and Evolutionary Computation Conference (GECCO)
Conference Location
Cancun, Mexico
Conference Sponsor
Conference Date

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 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 world’s fastest supercomputer, Summit.