Tips on evolution design, parameters, etc. 

Framsticks has a powerful, flexible simulator capable of performing various evolutionary processes. Here you will find help concerning setting simulation parameters and general tips on evolutionary process design. The text below concerns the "standard" experiment definition only. Other experiment definitions can be used, extended or developed.

The first question you have to answer is whether you want to simulate a directed or a spontaneous evolution. If you want to run a directed evolution, you will have to explicitly define the fitness criteria used for evaluating of evolved creatures. The simulator will select creatures which are better according to the criteria you choose. You may try to run some kind of a spontaneous evolution, where you will have to define the rules of living/survival of virtual creatures, and use life span as the selection criterion. Thus the life span will serve as an estimate of reproductive abilities of creatures. A better realization of a spontaneous evolution is available within the reproduction.expdef experiment definition.

Directed evolution

When performing a directed evolution, the user has to choose the optimization criteria explicitly. This is generally set in the Experiment | Parameters | Selection window. There you set weights for all the criteria. For example, if you set all the weights to zero except "Structure size", the fitness of creatures will correspond exactly to their size. Thus during the evolution bigger creatures will be selected more often than smaller ones. All other fitness criteria of creatures will be ignored.

You can choose many criteria with different weights. You can even use negative numbers. For example, setting "Velocity" to a positive number and "Structure size" to a negative number causes a preference for fast, but small creatures. Of course you have to carefully adjust the actual weight values so that the proper tradeoff is maintained. Setting the "Lifespan" criterion to a non-zero value simulates a spontaneous evolution and you should read the "Spontaneous evolution" section (below).

It is important to consider turning on the scaling mechanism, which allows scaling of fitness values in a population. This mechanism normalizes fitness values so that the best genotype is (after scaling) always the same number of times better than the average one. Therefore, better individuals are constantly more preferred during selection, no matter how much better they are. If you are using a tournament selection, consider the tournament size (the bigger the size, the stronger the selection pressure).

In most cases, during a directed evolution effects of interaction of many individuals in the simulated world are not important. Thus you can set "Simulated creatures" to 1 (to evalutate only one creature at a time).

When simulating speed-oriented evolution, you should generally set high values for "Performance sampling period", enable "Performance calculation" after stabilization, set "Starting energy" to 100 or more (to allow a reasonable time of living and speed evaluation after stabilization), and set world "Boundaries" to "None". You can also exclude some characters from the genotype. See "General remarks".

Spontaneous evolution

With spontaneous evolution, the user has to define more parameters and be more careful. The "Lifespan" criterion should be set to a positive weight. The number of simultaneously "Simulated creatures" should be adjusted in conjunction with the world size, so that not too many of them are simulated, but the interaction is still possible.

"Aging time" should be set to a positive value. You might also set positive values for "Muscle static work", "Muscle dynamic work", "Assimilation energy" and "Automatic feeding", depending on how realistic model you wish to simulate. "Boundaries" may be set to "Teleport" and the world can be land or water.

Remember, the evolution is not directed by any criteria except the life span. The creatures are not evaluated for their specific actions; any behavior that causes prolonged life span is rewarded.

General remarks

Note that most of the settings described are to be adjusted reasonably, and it is recommended that you know how they work. Being familiar with genetic algorithms and other evolutionary optimization techniques is a great advantage and help.

You should study the meaning of the parameters and anticipate their behavior; it is also good to think over the loop of the evolutionary process simulated in Framsticks and ensure that the settings are rational. Always read hints (tips) about the parameters.

To allow speciation, you can set the "Similarity speciation" and, possibly, the "Genetics: similarity" parameters. See also the "Minimal similarity" parameter. The way similarity is computed is described in scientific papers [1], [2].

To simplify the creatures, you may disable some modifiers, receptors and control. You can also disallow undesirable behavior in this way. For example, when simulating creatures on land and evolving them for speed, the S (Smell) receptor is not required. A lot of modifiers (ingestion, assimilation etc.) are also redundant in this situation and should be excluded. Similarly, the T (Touch) receptor is not needed under water (except for touching the bottom, which should most probably not be perceptible by creatures).

Good default values that you should not worry about are those in "Genetics: structure", "Genetics: neuron net" and "Genetics: similarity". "Death" should generally be turned on, unless you are interactively experimenting with the simulation.

A detailed description of all the parameters is available here.