Algorithms for Grammatical Evolution
AGE is a complete opensource framework for grammatical evolution (GE) written in C++ and Lua and aims to support other grammar-based genetic programming methods. Its current version boasts the following features:
- a clean, comprehensive implementation of standard algorithms (general evolutionary algorithms and the GE mapping),
- modular architecture,
- both user and developer documentation,
- versatile output,
- reproducible results,
- good performance.
Note to Czech- and Slovak-speaking visitors: You can download Czech presentation handout (PDF, 32 slides) about grammatical evolution and AGE.
About grammatical evolution
There have been a number of attempts at grammar-based genetic programming (GP). The several approaches have tried to complement, constrain, or supplant the explicit tree structures traditionally used in GP with derivations based on formal grammars. Formal grammars are a flexible tool for adapting GP to a specific problem, yet their integration with evolutionary algorithms raises a number of issues concerning the encoding of individuals, and design of operators. The proposed methods include introduction of bias in GP using context-free grammars (Whigham, 1996), integration of GP and logic programming based on logic grammars (Wong and Leung, 2000), and grammatical evolution (O’Neill and Ryan, 2003).
You can learn more about GE on a web site maintained by Micheal O’Neil or in the documentation of this project.
Project goals
The project started as my bachelor thesis (Adam Nohejl: Grammatical Evolution) about grammatical evolution and I am continuing my work on it, as it serves as a tool for my diploma thesis. The goal of the diploma thesis is to (1) describe the problems arising from integration of grammars and genetic programming or evolutionary algorithms, (2) compare the approaches of existing methods, and (3) analyse their shortcomings and attempt to improve on them. Appropriateness and performance will be compared in the following applications: symbolic regression, Santa Fe ant trail, and exam time tabling.
In the course of working on my thesis I will extend AGE to make these experiments and analyses possible.
If you would to use the software, modify it or extend it, feel free to do it. As AGE will develop and more people will be working on it I expect to set up a repository and a mailing list. In the meantime, you can drop me a line.
Licence
AGE is opensource and can be used for personal, academic, and commercial purposes at no cost.
AGE itself is licensed under the terms of the standard three-clause BSD licence. The distribution also includes other software distributed under the BSD licence or similarly liberal licences.