Let’s imagine I have an unknown function that I want to approximate via Genetic Algorithms. For this case, I’ll assume it is y = 2x.
I’d have a DNA composed of 5 elements, one y for each x, from x = 0 to x = 4, in which, after a lot of trials and computation and I’d arrive near something of the form:
best_adn = [ 0, 2, 4, 6, 8 ]
Keep in mind I don’t know beforehand if it is a linear function, a polynomial or something way more ugly, Also, my goal is not to infer from the best_adn what is the type of function, I just want those points, so I can use them later.
This was just an example problem. In my case, instead of having only 5 points in the DNA, I have something like 50 or 100. What is the best approach with GA to find the best set of points?
- Generating a population of 100,
discard the worse 20% - Recombine the remaining 80%? How?
Cutting them at a random point and
then putting together the first
part of ADN of the father with the
second part of ADN of the mother? - Mutation, how should I define in
this kind of problem mutation? - Is it worth using Elitism?
- Any other simple idea worth using
around?
Thanks
Gaussian adaptation usually outperforms standard genetic algorithms. If you don’t want to write your own package from scratch, the Mathematica Global Optimization package is EXCELLENT — I used it to fit a really nasty nonlinear function where standard fitters failed miserably.
Edit:
Wikipedia Article
If you hunt down prints of the listed papers on the article, you can find whitepapers and implementations. In general though, you should have some idea what the solution space for your maximizing the fitness function look like. If the number of variables is small, or the number of local maxima is small or they are connected/slope down to a global maxima, simple least squares works fine. If the area around each local maxima is small (IE you have to get a damned good solution to hit the best one, otherwise you hit a bad one), then fancier algorithms are needed.
Choosing variables for a genetic algorithm depends on what the solution space will look like.