Yet Another cGA Implementation, Now in Haskell.

A year ago, I mentioned that I always write a cGA implementation when I learn a new language. Then, I was trying to get back to fluent in Haskell. A couple of days ago, Martin Pelikan just did the same and wanted to compare implementations. So, what did I do? I looked for my implementation to post it here. I took a look at the code and change a couple of things, but I can say that the Haskell implementation is the shortest working implementation that I have ever written in any language. It is shorter than the versions I wrote in Scala and Erlang. Python could get awkwardly compressed using some functional flavor to get close to this, but dynamic typing… C, C++, Java, Go and other friends, are far away when you look in the rear Haskell mirror. Anyway, the code below implements cGA for binary strings. You chose the population size, the number of bits, and the evaluation function. Also, some of the constructs are simple and elegant that do not need much explanation (not to mention maintainability…) ...

Mar 22, 2014 · 2 min · 389 words · Xavier Llorà

cGA, Parallelism, Processes, and Erlang

Back in Fall 2006 I was lucky to be at the right place, at the right time. Kumara Sastry and David E. Goldberg were working to pulverize some preconceptions about how far you could scale genetic algorithms. As I said, I was lucky I could help the best I could. It turned out that the answer was pretty simple, as far as you want. The key to that result was, again, built on Georges Harik’s compact genetic algorithm. The results were published on a paper titled Toward routine billion-variable optimization using genetic algorithms if you are curious. Anyway, back on track. A few days ago, I was playing with Erlang and I coded, just for fun, [yet another cGA implementation, now in Erlang]({{ ref “/posts/yet-another-cga-implementation-now-in-erlang.md” >}} yet another cGA implementation, now in Erlang"). The code was pretty straight forward, so why not take another crack at it and write an Erlang version that uses some of the ideas we used on that paper. The idea we used on the paper was simple. Slice the probabilistic model into smaller segments and update all those model fragments in parallel. The only caveat, if you go over the cGA model, is that you need the evaluation of two individuals to decide which way to update the model. Also, you need to know when to stop, or when your global model has converged. The flow is pretty simple: ...

Jul 24, 2013 · 5 min · 950 words · Xavier Llorà

Yet Another cGA Implementation, Now in Erlang.

Wanna have some Sunday afternoon fun? Just refresh your Erlang skills. Since this is me having fun, what better way to do so than to write yet another implementation of the compact Genetic Algorithm originally (cGA) proposed by Georges Harik? I am going to skip describing the original algorithm and focus a bit on how to implement it in Erlang instead. You can find some nice books elsewhere and more information on the Erlang site. Erlang is an interesting mix of functional and logic programming languages. If you ever wrote code in ProLog, Erlang is going to look familiar. It will also look familiar if you are coming from Haskell, although, being Erlang a dynamically typed language, you will miss the type system and inference. Nevertheless, give it a chance. It concurrent model is worthwhile reading about. I will it for further posts thought. ...

Jul 8, 2013 · 4 min · 761 words · Xavier Llorà

GECCO 2012 Deadline Extended to January 27

Is that time of year. Rushing to get your papers ready for GECCO 2012? Here are some good news. The deadline has been pushed back to January 27 to help those last minute pushes :). You can find more infomaion at the conference website http://www.sigevo.org/gecco-2012/ or you can follow GECCO 2012 updatse on Twitter (http://www.twitter.com/gecco_2012), Google+ (+GECCO http://goo.gl/F4ZTM), or Facebook (http://goo.gl/IqEbW).

Jan 8, 2012 · 1 min · 61 words · Xavier Llorà

GECCO 2011 Healthier Than Ever

I just got a note from Pier Luca Lanzi about some raw number on this year’s GECCO 2011 conference. The numbers are stagering. I will start with the numbers from the previous editions since GECCO become an ACM conference, just to build up suspense. The numbers of paper submissions to the main conference for the previous editions are listed below. Year Submissions 2006 446 2007 577 2008 451 2009 531 2010 373 And after this prelude, here comes the number of submission for this year: 686. Yes you read it correctly 686 papers submitted to the conference. The number just brakes the record of submissions since GECCO joined ACM. 686 papers is 109 papers more than the previous 2007 record. But, do you want to know what is even better than that? That you can still participate by submitting workshop and late breaking papers. Do you want to learn more about it, just check the conference calendar. ...

Feb 18, 2011 · 1 min · 157 words · Xavier Llorà