Practical Evolution · ENTM 7230 · Day One

A Life on a Broken Plane

Evolution is an algorithm. Run the life cycle below and watch a single number — offspring size — find its own optimum, generation by generation, with no one steering it.

Generation
0
Mean offspring size
1.00
Planes occupied
1 / 121
Total population
12

The World

phase: reproduce — mothers spend their budget

Offspring size (color = mean trait on a plane)

small · cheap · many · poor jumper large · costly · few · strong jumper

The Life Cycle

for generation in 1, 2, 3, ...: for each occupied plane: for each mother (offspring size = s): n = floor(budget / s) # fewer, if bigger for i in 1..n: offspring.s = s + mutation(0, σ) if random() < V(offspring.s): jump to a random neighboring plane # lost, if none exists there else: stay on the natal plane for each plane with candidates: if candidates > capacity N: survivors = weighted_lottery(candidates, weight = V(size), take N) else: survivors = candidates plane.residents = survivors

mean offspring size (world-wide)

planes occupied

Run It