These are points found in the testing of numerical problems.
The representations used are: base 10?, base 2?, Gray coding?, real coding?.
The functions are De Jong's, Rosenbrock's valley, Rotated hyper-ellipsoid function, Rastrigin's function, Schwefel's function, Griewangk's function, and Ackley's Path function.
base 10 | base 2 | Gray | real | |
---|---|---|---|---|
De Jong's (1) | All perform equally | |||
Hyper-ellipsoid (3) | All similar | Notably better | ||
Rosenbrock's (4) | All similar | Notably better, right from start | ||
Rastringin's (5) | All similar | Very slightly worse | ||
Schwefel's (6) | All similar | Notably worse* | ||
Griewangk's (7) | All perform equally | |||
Ackley's (9) | All similar | Notably worse | ||
Branins's (12) | All similar | Somewhat better |
* This shows an interesting pattern: the real coding is very marginally better for a while, and then all of a sudden it stops increasing as fast.
Preliminary conclusions:
- base 10, base 2 and Gray all perform very similarly
- real coding performs the same as the others where the problem is quite simple
- real coding performs better than the others where the area is easy to find, but the minima hard to pin down, i.e. a fairly wide, shallow space
- real coding performs worse than the others when the search space is deceptive, i.e there are many local minima
- the larger the local minima, the worse the real coding performance seems to be, compared to the others
- Changing the mutation method of real numbers from adjusting by [-0.1:0.1], to a Gaussian distribution with standard deviation 0.25 seems to have no significant effect.
Thoughts about the why:
- Why it does bad: all the encodings other than real have the ability to change a specific coordinate value by crossover, as crossover can operate in the middle of a part of the phenotype, whereas the real representation is much closer to the phenotype, and can't alter a phenotype unit (i.e. coordinate) without relying on mutation. This puts it at a disadvantage, as if the specific value of the minima isn't in the population, it must be created by mutation. This becomes more evident when mutation is switched off totally, as then real does worse in all but Rosenbrock's valley. (not verified, but stands up to the evidence that I have so far)
- Why it does good: no certain ideas yet
Things to look at around this:
- NB: the base 10 coding simply picks a new value over it's range at the moment. Try a new random value for real perhaps?
- check to see the effect of increasing/decreasing the mutation
- double-check to ensure the genetic operators for the real numbers are working correctly.
- see why it is that base 10 and base 2 especially don't perform well when real performs well.
Page last modified on January 12, 2006, at 07:07 PM