Monday, March 24, 2008

Lessons in Genetic Algorithms

Easy in theory, hard in practice :-)

While Evolutionary Computing and it's most popular "flavour" - Genetic Algorithms - can be easily explained, it turns out that producing usable results with real-world problems can be a daunting task.

I quickly put together a light framework for the manipulation of populations, generations, subjects... and tested the system with kd-trees.

The aim was the optimization of 2d floor plans - for example, the fitness function would define whether more desirable subject would rather have rooms of equal size or maybe rooms of greater variety in size...

While the experiment moved in the right direction, it turned out that the problem of the local optimum quicky moves in place. After a plato in the population fitness is reached, the algorithm cannot find new ways to better subjects, if all new subjects are less fit than the "local optimum".

The local optimum problem is very well known and explored in the theory of Evolutionary Computing, so I wasn't very surprised that I encountered it in my first attempts.

No comments: