I have 2 new ideas relating to optimization. One is a short cut to creating multi-scale mutations. If you take a 32 bit random number and clear the second most significant bit then as a floating point number it is multi-scale mutation between -2 and 2. Put another way it is equally likely that you will get a mutation of 0.1, 0.01, 0.001, 0.0001....

That means you don't need to find a characteristic scale where mutations are likely to be effective.

Also I have implemented as similar idea in terms of the number of population elements the mutation is applied to. This should greatly help evolving really big sets of parameters.

Mutations in the range -2 to 2 are ideal for mutating parameters in the range -1 to 1, so that's the way I've set it up.

http://www.mediafire.com/download/ub87v52cla51buf/MonaLisaInCircles.zip

If you are affected by strobing lights maybe you don't want to run the Mona Lisa in Circles demo, and just look at the source code instead. Anyway as is typically the case in such matters you need to run the demo for a fairly long time to see results. Also for whatever reason I couldn't get transparency working, which would have helped the demo work better.

Sean O'Connor