AI strikes back!
After rewriting my program and running it all night (20000 evaluations), it's now down to 442 frames.
The difference with the last version of the program is instead of randomly trying to change spring lengths and muscle lengths, it is now possible to keep corresponding lengths the same. The optimization program starts with a template of a model and then generates XML files based on this template.
The optimization method I use is called "evolutionary programming", which is similar to genetic programming but without crossover. The population size I used is 100 models.
The algorithm works as follows:
1. Initialize the initial population by reading the template model from disk. 2. Evaluate the models in the population. 3. Select 5 random models from the population. 4. From these 5 models, select the best and the worst model (this is called tournament selection). 5. Replace the parameters of the worst model with the parameters of the best model and add a small random change. 6. This random change consists of randomly selecting one parameter, and adding a normally distributed random number to it. For the spring lengths, muscle lengths, mass position and velocity, the standard deviation is 1.0. For all other parameters, the standard deviation is 0.01. 7. Evaluate the newly created model. 8. Goto 3
race: http://sodarace.net/upload/StefW/mountainrace442.jnlp
|