For anyone who is interested, I've been working on a Grammatical Evolution 
(GE) [Conor Ryan, JJ Collins and Michael O'Neill, 1998] 
<http://en.wikipedia.org/wiki/Grammatical_evolution#cite_note-1> library:

https://github.com/abeschneider/GrammaticalEvolution

It is not quite ready to reach version 0.0.0, though it does have decent 
test coverage. Included is an example to optimize a mathematical expression 
to match some arbitrary ground truth.

For those who are not familiar with (GE), it is an Evolutionary Technique 
that is similar to Genetic Programming (GP). However, unlike GP, it doesn't 
suffer the same problems with fixing damaged trees. Instead, it uses a 
grammar that is combined with a genome of integers. The genome is used to 
select which branch to follow for or-rules.

Julia is a really nice language to implement GE due to its ability to 
inject new code into the current program (thus no need for an auxiliary 
grammar or parsing of strings) as well as macros that allow a grammar to be 
easily defined. Add to that the ability to easily distribute code that can 
be compiled in a JIT manner means it's possible to get very good speeds 
with the library (note: currently no benchmarking has been done and I still 
haven't written the code to distribute the workload).
 

Reply via email to