# Introduction to Complex Systems

Prof. Dirk Brockmann, Winter Term 2021

# Practical Problem 11: Evolutionary dynamics

In this problem we will design a models that capture the key elements of evolutionary processes

1. replication
2. variation (mutation)

The idea is to reimplement the explorables:

## Simulation 1

This is a turtle based simulation.

• Write a model in which turtles move around randomly like we did in many previous simulations.
• Each turtle should have a turtle specific property called fitness which you can implement using the turtles-own command
• The initial turtle community can have uniform fitness say $$1$$

### Reactions

• All turtles should die at a constant rate
• All turtles should reproduce at a rate proportional to a basic reproduction rate multiplied by the individual fitness, e.g. you could define a slider variable basic-reproduction and implement this

ask turtles [
if random-float 1 < basic-reproduction * fitness [
hatch 1
...
...
]
]

• turtles should be able to mutate which means that if a turtle hatches a new baby like above with a tiny probability that baby should have a different fitness either slightly less of slightly larger than the parent
• when a mutation occurs the baby should also have a different color, so individuals with different fitness should be distinguishable by color. You can pick an random color using set color one-of base-colors.

## Simulation 2

This is a similar model based on patches.

• Like above we assign a fitness value to a patch using the patches-own command and initialize the fitness value of each patch.
• In this simulation patches can turn neighboring patches into their own type (color and fitness) with a probability function that looks like this

[ P = \frac{1}{1+\exp\left( - \sigma (f_1 - f_2) \right)} ]

• where $f_1$ and $f_2$ are the fitness parameters of the competing patches and $\sigma$ is a steepness parameter (slider), you can start with a value of $1$.

• Implement mutations just like in simulation 1.