Joined: 09/01/2006 07:25:14
The first time that you create a new population in BioLogo, you are presented with the New Population dialog box. The dialog contains a few text fields, and a number of sliders. Other than the number of turtles in the population, most of the settings in this dialog are a mystery. This post will attempt to document this dialog.
The dialog inputs are broken down into three categroies:
The population inputs deal with the initial generation of the turtle population.
# Turtles The number of turtles the population will contain.
Max Children The maximum number of children in a program node. When a turtle program is parsed, it looks like a tree. Children are nodes that all share a common parent. Increasing this number allows turtle programs to get more complex.
Max Depth The maximum number of levels of children nodes a program can contain. This value also controls the complexity of turtle programs.
The probability settings affect the population generation and evolutionary processes. When the initial population is being generated, each turtle's program is randomly constructed by rolling dice to determine the program's nodes. Each time you evolve a new generation, there are certain steps that depend on the roll of dice. For example, the selection of two turtles for mating is done randomly. The parameters below affect the "dice" and how they roll.
Crossover When two turtles are chosen to mate, there is a question of the resulting offspring. The offspring can be a result of "crossover" of the two parents, or they can be straight clones of their parents. This probability determines how often crossover occurs, versus cloning. The higher this value, the higher the probability of crossover.
Mutation When a turtle is chosen to reproduce, there is always the chance of a mutation. An incorrect copying of the turtle's program or DNA. The higher the value the higher the probability of mutation. Be warned, if this value is too high, your populations will become "unstable".
FuncNode When a population is initially generated, each turtle gets a randomly generated program. Each program consists of two types of "nodes": function or terminal. Terminal nodes are "leaves on the tree", because they have no children nodes. For example, FORWARD_1 is a terminal, since it moves forward one step and nothing more. REPEAT_5 is a function node, since it has children nodes, and will repeat its children's steps five times. The value of this slider will determine how often a function node is generated versus a terminal node. The higher the value, the higher the probability of a function node. The more function nodes your turtle's program contains, the more complex the program can be.
Color When a population is initially generated, each turtle gets a randomly generated program. This slider determines how many color change instructions will be included in that program. The higher this value, the higher the probability that a terminal node will be a color instruction, as opposed to any other terminal instruction. In other words, the higher this value, the more colorful your turtles will tend to be.
Each time a turtle population is asked to evolve a new generation (reproduce), the process involves randomly selecting two turtles to mate and performing the crossover which produces two children. The random selection of two turtles to reproduce is influenced by the "fitness" factor. Each turtle is assigned a "fitness" based on certain measurable characteristics of the drawing that the turtle makes. The fitness factor is computed by adding together a number of characteristics of the turtle. Each characteristic has a "weight", which makes the characteristic more or less important. The higher the weight, the more important. Each of the multiplier sliders in the dialog sets the weight for the named characteristic.
Forward The number of forward steps that the turtle makes. The higher this multiplier, the more the turtle draws.
Turns The number of turn instructions the turtle performs. The higher this multiplier, the more the turtle will turn.
Loops The number of times that the accumulated turning the turtle makes adds up to 360 degrees in either direction. The higher this multiplier, the more "circling" your turtle will perform.
Colors The number of color changes the turtle makes. The higher this multiplier, the more colorful your turtles will tend to be.
Repeats The nuimber of REPEAT instructions your turtle has performed. The higher this multiplier, the more complex, and yet repetitive, your turtles will be.
Repititions The number of steps within REPEAT instructions. The higher this multiplier, the more times your turtle will repeat parts of its drawing, typically leading to more symmetry.