Pacman as an evolving organism

advertisement
Pacman as an evolving organism

A 2D world of moving “animals” ala Pacman
eating “plants”.





Graphically
represented
Different zoom
levels
Run status
Extra info
Torus topology (no
boundaries)








Size of the world
Initial population
Max attainable energy per grown
plant
Value of growing plants (vs grown)
One metabolic parameter
Graphic, background or analysis
mode
Loading of previous run
Switching on or off evolution (mutation)

2 variants
 Growing – dark green, will turn into a grown plant
after a given time
 Grown – green, can seed growing plants into
unoccupied neighbor areas.

Eaten by the “animals”, who can focus their
digestion on either grown or growing plants




Moves about in the world.
Eat plants
Can multiply
Has a number of characteristics attached to them
1) Phenotype
2) Fixed status (ID, birth time, death time, parent)
3) Dynamic states: energy, location, direction of
movement, activity, age

Mutations directly on the phenotype
(genotype=phenotype). Almost no pleiotropy
(Diagonal G matrix)

Physiological parameters

 Speed
 Turning speed

 Sense of touch

Behavioral parameters
 Coloration (neutral)
 Probability of going straight,
 Size/mass
turning left, turning right or sitting
down and trying to eat
 Probability of eating growing and
grown plants (conditioned on
touch)
 Probability of using memory to
start in the same direction as one
stopped.
Reproduction parameters
 Energy level for reproduction
(*mass)
 Mutation rate

Sensory parameter
Metabolic parameters
 Specialization for eating grown or
growing plants.
 Mass
Energy is consumed by
 Creature maintenance (proportional to mass)
 Movement
 Proportional to mass*speed2
 Starting after having stopped costs more than just
maintaining a speed.

Reproducing
 Parent looses energy proportional to its mass, then
splits the energy in half between it and its child.
Energy≤0 means death.
Energy is gained by eating plants (either stopping
randomly and trying to eat, or by sensing a plant and
deciding to stop).
Digestion is divided into that for grown plants,
Do, growing plants, Dg, and unused digestive
capabilities (Du=1-Do-Dg).
 Eating grown plants yields energy
Eo=Dob-constant (b is a metabolic run parameter).
 Eating grown plants yields energy
Eg=Dgb-constant.

Phenotypes for which I know in which direction
they should go, actually do go that way.
Sense of touch as a function of time
Unused digestion (x-axis) as a function of
time. Coloration indicates probability of
eating a growing plant, if you can feel it.
r
The energy limit for reproduction has increases as
a function of time, here.
Without evolution
(no variation for
selection to act
on):
Size of population
With evolution:
Size of population
Digest grown phenotype
(Simulation run for 8 times the
time as for no evolution, and
still no extinction for two
simulations)
Extinction
Looks like
specialization on
digesting grown
plants is preferred:
But then the animals
“change their
minds”:
If we start with the
same run conditions
and the same
animals, we don’t
get exactly the
same evolutionary
trajectory.
Digest grown, two runs
Number of animals,
two runs
time

While we may see
evolution in the
changing mean,
the variance may
also be changing:
The division into growing and grown plants was an easy
extension to allow for speciation.
Speciation only seen for one run with extremely fine-tuned
digestion setup and a huge world.
With contingency and (pseudo)randomness,
there’s always a chance that the population
will dwindle and disappear.
#animals
Eventually all such
populations will go
extinct.
However, that doesn’t
need to happen in a
ludicrously long time.
time
(a huge amount of it)
Histogram of number of animals for nonevolving population given a little more
energy per plant.
If I pump too much energy into each plant (or
increase the hunting efficiency) then extinction
by over-grazing becomes a near certainty.
Same run parameters, but world area x100:
Large world, mutations switched on:
It might look like the
population size is getting
more noisy with time…
#animals
time
But it’s really
predator-prey
cycles.
With evolution
switched off, the
population would
crash, or with slightly
higher energy levels,
stabilize.



Lotka-Volterra:
cHL
(H )
)dt + σ H HdBt
dH = (aH H − bH H +
d+H
kcHL
( L)
dL = (−aL L +
)dt + σ L LdBt
d+H
With low k and c, the Advantage of
deterministic
catching each prey Catchment efficiency
(without noise)
system will stabilize
#animals
to a single value.
2
With stochasticity,
the process will
nevertheless reach a
stable distribution.
time
In the start, the system remains
deterministically stable, but
quickly becomes stochastically
cyclic.
After a while, cycles even without
noise.
Cycles become more and more
extreme. Population under
considerable extinction risk.
#animals
time
#animals
#animals
time
time
It’s entirely possible for a species to adapt itself to
#animals
death! *
 For a particular run option,
a non-evolving system
seem to work stably.
 The corresponding
evolving system develops
gradually more extreme
predator-prey-cycles until
the plants are wiped out.
The animals then starve to
death.
time
(a huge amount of it)
#animals, #plants
* Colleen Webb (2005): A Complete Classification of Darwinian Extinction in
Ecological Interactions, The American Naturalist 161(2), DOI: 10.1086/345858
time
Poor starting phenotype (low sense of
touch/digestive capabilities) means either
immediate extinction due to inefficiency (low plant
energy) or later Darwinian extinction (high plant energy).
Can’t start off with having too much evolutionary
potential, that is.
Darwinian extinction seems somewhat softened
by world size.
Did 15 runs with under the same run
conditions.
A histogram of time to system crash
shows stochasticity. Not an
exponential distribution, though.
Phenotype at end also varies a little
(about 7% for important phenotypic
characters).
For some runs, the phenotype was
almost stable for a long time before
the crash. => You don’t get a
specific phenotype, then die. You
get near a specific phenotype and
then come under increasing risk.
Survival curve suggesting increasing
hazard (risk).
3 of the 15 runs ended with a green
world.
tend
Suggests constant
hazard for nonevolving organisms.
Decreasing hazard for
young to moderately
old.
Increasing hazard for
really old organisms?
(Surviving until evolution
catches up to them?)



Source code can be found in my library named
hydrasub: http://folk.uio.no/trondr/hydrasub
For Linux (64 bit RedHat) users at CEES, the
exectuable is found at ~trondr/prog/evol12
Presentation: http://folk.uio.no/trondr/pacman_evol/
Download