Wallace is a high-performance, easy-to-use evolutionary computation framework written in Julia built for researchers, students, and software engineers alike.
To simultaneously achieve performance and ease-of-use, Wallace utilises computational reflection to compile problem-specific data structures and algorithms at run-time, using a beautiful and compact domain-specific language.
The result is a framework that is more concise than the smallest existing alternatives, such as DEAP, and at least as fast, if not faster than the leading alternative solutions, such as ECJ and JCLEC.
- A compact, extensible domain-specific language.
- Multi-processing and multi-threading.
- Just-in-time compilation of problem-optimised algorithms.
- Data logging, plotting and visualisation.
- An interactive shell, with an embedded documentation browser.
- Community-based module system for sharing components.
Algorithms, Representations, and Operations
- Grammatical evolution.
- Genetic programming: Koza, Strictly-Typed GP, Grammar-Guided GP, PushGP, Cartesian GP.
- Multiple objective optimisation: NSGA, NSGA-II, SPEA, SPEA2, VEGA, and more.
- Co-operative and competitive co-evolution approaches.
- Island model support, for same and different species islands.