<< NewsNet | Home | Simple Parser in JavaCC >>

Evolutionary Computation and General Programming

Why you should write your own

I've recently been conducting research on the various mapping from permutations strings of floating point values for use in differential evolution. This gave me an opportunity to sit down and develop a generic framework for evolutionary computation. I could plug in various algorithms and did so for particle swarm optimization, a standard genetic algorithm and differential evolution. It all works great. It even reads in a list of experiments from an XML file. I implemented a number of different standard problems to work on, also available as plug ins.

The problem with all this is that the system ends up being optimized for none of the various algorithms. It works. It does the job it was intended to do, but some of my experiments take months of computer time. It turned out that I would have been better off writing special purpose programs for each of the different algorithms, possibly using libraries for some of the more general portions of the program e.g. the problem definitions.

So if you are working on comparing the performance of various methods of evolutionary computation, I would suggest that you write a few special purpose programs rather than trying to tie them all together in a neat general purpose library. It really isn't worth the effort except for the purpose of educating yourself on the algorithms themselves.




Add a comment Send a TrackBack