Grammatical evolution (GE) is a famous evolutionary computing algorithm proposed by Conor Ryan et al. In its original form, it uses a genetic algorithm at the back end to evolve genotype of a solution. On the front end, there is a mapper and production rules from a context-free grammar that form the phenotype of a possible solution. Originally it was written in C++. Its library could be downloaded. Recently I came to know that it has a port in Java as well, developed by Michael O’Neil. Its known as GEVA.
The idea I have is to port this to GroovyLab. Groovy is a java-like scripting language. Moreover, all valid java code is also valid groovy code. Add to this the fact, that despite being a scripting language, and requiring an interpreter, Groovy code can also be pre-compiled and run on JRE.
Once GEVA is ported to GroovyLab, the resulting package can be run on Octave or Matlab. It is not necessary, however, to port the code to GroovyLab. GEVA can be wrapped into Groovy and pre-compiled. The code can then be called in Octave or Matlab. Having GE available in Matlab would mean that it would be easier to use it for research.
We present grammatical evolution, an evolutionary algorithm that can evolve complete programs in an arbitrary language using a variable-length binary strin
The NCRA group logo was evolved using Grammatical Evolution using a Lindenmayer system grammar and output in the Postscript language. The resulting work was published in IEEE Congress on Evolutionary Computation in 2008. An alternative implementation is provided as a demo problem in GEVA. A poster describing the Logo evolution is provided.
Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.
If you found an error, highlight it and press Shift + Enter or click here to inform us.