I started a rubyforge (
http://rubyforge.org/projects/rgenetic/)
project implementing genetic algorithms
(
http://en.wikipedia.org/wiki/Genetic_algorithm) using Ruby. I
haven't worked on the project in the last year or so (getting married
and starting graduate school kept me pretty busy...), but since I just
got through my qualifying exam here in grad school I hope to have some
time to start up work on it again in the near future (as in after the
holidays).
Why am I using ruby for this? Essentially, I wanted to provide a
*very* user friendly genetic algorithm package. As the project stands
right now, all the user has to provide is a "properties" file, most of
which specifies mutations rates, population sizes and such. Right
now, the hardest thing for the end user to come up with is the
encoding and fitness evaluation of their genetic algorithm (which you
really can't get out of doing), all of which can be specified in the
properties file. Since I am using Ruby, I can easily dynamically load
this information or change it at run time. Heck, if I decide halfway
through a very long execution that I want to change my fitness
evaluation, I can!
Oh, and because Ruby is so darn easy to write and understand, I was
able to prototype the library fairly quickly and easily.