LushGA is a machine learning toolkit that implements multiple variants of the genetic algorithm (GA). This includes evolution (standard evolution), non-spatial co-evolution, spatial evolution and spatial co-evolution. The implementation supports user-defined fitness functions, the performance measurement tools to study evolutionary dynamics, and highly configurable evolutionary search parameters. Intended use of this toolkit is for educational, scientific, and engineering needs.
(Note: This software is targeted for Lush2.0 and not for the generic Debian version of lush).
This project is licensed under the MIT License. See project website (LICENSE.txt) for more information.
A list of implemented features:
User defined GA parameters:
Analysis Tools for Evolutionary Dynamics:
Plots:
Logs:
Proposed direction and things to do:
For additional information and resources see:
NOTE: A recent bug in Lush's Ogre library causes execution failure of this application, as soon as the bug is fixed, I will re-post the code.
This GUI (written for Lush2.0) allows user viewing an execution of an arbitrary two-dimensional cellular automata (2DCA: synchronous, homogeneous, regular Von Neumann neighborhood) on a user defined or randomly generated initial configurations. User can select different output formats that include a lattice snapshot at a given time-step or a movie starting at the initial configuration and lasting for a user defined number of time-steps. The execution of a 2DCA rule can be viewed in forward or backwards direction with an option of one-step at a time or as a motion image.
So far, GUI can generate random initial configurations for three different tasks: the two dimensional density classification task, the pixel bounding and the rectangular image bounding. The generation of the starting configurations is controlled by user defined parameters.
Although this application is meant as a viewing tool for 2DCA, it also provides very basic highlighting of spatio-temporal patterns that appear during execution of 2DCA rule on a given initial configuration. The highlighting tool is basically a modified majority rule: version (1) is a Moore neighborhood GKL rule, version (2) is a Von Neumann neighborhood GKL rule, and version (3) and (4) are modified local neighborhood majority rules. These filters provide simple highlighting of black and white domains, but to highlight more complex domains such as checkerboard patterns etc.
Lush 2.0 is not, by any means, my creation. Lush is a programming language I chose to use for most of my research, so I feel it needs a word of mention and a little bit of advertisement.
Lush is a great tool for numerical and graphics intensive research such as artificial intelligence, computer vision, machine learning, data mining, signal processing, and different types of simulations. As a common lisp derivative, over time is acquired a lot of desired features that include: object oriented design, garbage collected memory management, interpreted or compiled execution, strongly or weekly typed data types, and an easy interface with packages written in different languages. Lush is clean, simple, powerful, and flexible language.
List of reasons to choose Lush2.0:
.... and the list keeps on growing.