Here you can get a short documentation on Framsticks.
In FRAMSTICKS, the genotype encodes all parameters of a creature, including morphology, sensors and actuator placement as well as the control network. The type of encoding plays an important role in the evolutionary process, at the level of genetic operators, the fitness landscape and, finally, the speed and quality of evolution. The goal of this first exercise is to familiarize yourself with the encoding implemented in FRAMSTICKS.
1.1 Develop manually a genotype generating the following structure:Give your comments.... (to place your structure in the correct sense in the environment, CTRL-click on the "head")
1.2 Develop manually a genotype generating the same structure but with sensors and actuators as following:
1.3 Develop manually a genotype generating the same structure as in 1.2 but with the following control:
When the left leg touches the ground, the head turns to the left. When the right leg touches the ground, the head turns to the right (or the other way around).
The evolutionary process in based on several operators. We will look here at the crossover and mutation operators. Their implementation depends very much on the encoding structure of the genotype. The goal of this second part is to analyze the properties and effect of these operators.
2.1 Mutation2.1.1 The mutation operator
The following 10 genotypes have been obtained applying pure mutation on the original genotype showed at the beginning of the list. Please comment the mutations you can observe and give some conclusions about the mutation operator implemented in FRAMSTICKS.Original creature:
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
Mutated creatures (10 examples):
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[0:1])
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:2.869,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
fffXX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
fffX(fffIX[S:-1.556],RRlFFFMMMX[|!:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:2.339],fffIX[S:1])
fffX(fffIX[S:-1.556]X,RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
fffX(fffIX[S:-2.439],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-243.653,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-0.836],fffIX[S:1.756])
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:3.854])
fffX(fffIX[@S:-1.556],RRlFFFMMMX[|-1:-10,3:-1.733]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
2.1.2 Simulation of pure mutation
Set the fitness to optimize horizontal speed, take the genotypes of the "walking" file and make 1mio of steps of simulation allowing only mutation. Compare the results with those obtained in 2.2.2 (only crossover operator).
2.2 Crossover2.2.1 The crossover operator
The following 10 genotypes have been obtained applying pure crossover on the original genotypes showed at the beginning of the list. Please comment the crossover you can observe and give some conclusions about the crossover operator implemented in FRAMSTICKS.Original creatures:
Basic Quadruped : MX[@*:-.4,2:-2.890,1 :-1.808](RX(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X),,RX(X,)),rX(,FX))
Food finder worm : fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])Crossover results (10 examples):
Crossing over of 'Basic Quadruped' (44.85%) and 'Basic Quadruped' (55.15%):
MXMX[@*:-.4,2:-2.890,1 :-1.808](RX(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X),,RXX,)),rX,FX))Crossing over of 'Food finder worm' (56.12%) and 'Basic Quadruped' (43.88%):
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFMMMX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X),,RXX,)[|G:-1.404],fffIX[S:1])Crossing over of 'Food finder worm' (29.25%) and 'Basic Quadruped' (70.75%):
fffX(fffIX[S:-1.556]X(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X),,RX(X,)),rXfffIX[S:1])Crossing over of 'Basic Quadruped' (66.67%) and 'Food finder worm' (33.33%):
MX[@*:-.4,1:-2.890,1 :-1.808](RX(llFFMMMX[|0:-4.450]RlllFFFMMM(rX(,X),,RX(X,)),rX,FX))Crossing over of 'Basic Quadruped' (46.91%) and 'Basic Quadruped' (53.09%):
MX[@*:-.4,2:-2.890,1 :-1.808](RX(FMX[@*:-.4,2:-2.890,1 :-1.808](RX(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5][|-1 :1.287,0:.5](rX(,X),,RXX,)),rX,FX))Crossing over of 'Basic Quadruped' (86.72%) and 'Basic Quadruped' (13.28%):
MX[@*:-.4,2:-2.890,1 :-1.808](RX(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](r(rX(,X),,RX(X,)),X(,X),,RX(X,)),rX(,FX))Crossing over of 'Food finder worm' (44.07%) and 'Basic Quadruped' (55.93%):
fffX(X(FX,),MX[@0 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX,X),,RXMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])Crossing over of 'Basic Quadruped' (95.10%) and 'Basic Quadruped' (4.90%):
MX[@*:-.4,2:-2.890,1 :-1.808](RX(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X)X,),MFX)Crossing over of 'Basic Quadruped' (99.07%) and 'Basic Quadruped' (0.93%):
MX[@*:-.4,2:-2.890,1 :-1.808](RX(FX,),MX[@-1 :1.849,0:3.094,0:-1.387][|-1 :1.287,0:.5](rX(,X),,RX(X,)),,X)Crossing over of 'Food finder worm' (95.96%) and 'Food finder worm' (4.04%):
fffX(fffIX[S:-1.556],RRlFFFMMMX[|-1:-10,3:10]llllFFFMX[|1:-4.450]RlllFFFMMMX[|G:-1.404],fffIX[S:1])
2.2.2 Simulation of pure crossover
Set the fitness to optimize horizontal speed, take the genotypes of the "walking" file and make 1mio of steps of simulation allowing only crossover. Compare the results with those obtained in 2.1.2 (only mutation operator). Can you make a link between the result of the simulations, the operators and the encoding of the genotype?
Evolution of morphology 1 (high and moving) (pdf, 96kb).
Evolution of morphology 2 (oscillation) (pdf, 96kb).
Evolution of morphology 3 (the tower) (pdf, 96kb).
Evolution of morphology 4 (small and fast) (pdf, 96kb).
Evolution of morphology 5 (big and fast) (pdf, 96kb).
Evolution of morphology 6 (jumping) (pdf, 96kb).