Transcript Tierra
Contents
•
•
•
•
•
Introduction
Tierra system description
Mac-tierra
Results
Discussion
Introduction
• Exploration of life in general is limited
• Tierra is an artificial life model to explore
the origin of diversity
What Is Life?
• “I would consider a system to be living if it is
– Self-replicating and
– Capable of open-ended evolution
• Synthetic life should self replicate, and evolve
structures or processes that were not designed
in or preconceived by the creator.”
The Tierra Simulator
• Virtual parallel computer
• Cellularity: each program gets its own
memory and CPU time. Each cell can read
and execute every instruction but has write
permission to its own or its daughter cell
• The operating system executes the code of
each cell in the computer’s memory
operating system
fetch - decode - execute
main memory
instruction
codes
cells
daughter
cell
The Language
• Special machine language to be portable
and secure
• Small instruction set (32 instructions,
operands included), that is less fragile when
the code is mutated
• Jumps: addressing by templates
The Operating System
• The slicer: processor time sharing mechanism
– Control time for large/small creatures
• The reaper: kills cells when the memory is full
from the top of a queue
– The creature starts at the bottom of the queue
– It moves up the queue when it fails to execute
instructions (because its algorithm is flawed), and
stays where it is, or moves down when it succeeds
• The genebank saves information about each
genome
Mutation
• Cosmic mutations cause the flipping of
random bits in the soup at a low frequency
• Copy errors result in replication errors
• Flaws can occur during execution. The
result is off by 1 at some low frequency
• Creatures activity scramble the soup
The Digital Environment: Self-replicating computer programs
(colored geometric objects) occupy the RAM memory of the
computer (orange background).
Mutations (lightning) cause random changes in the code.
Death (the skull) eliminates old or defective programs.
Natural life
Tierra
Energy
CPU time
Territory
Memory
Abiotic environment
Operating system
Amino acids
Assembler instructions
Genome
Program
The ancestor
• The simulation start with one simple self
replicating ancestor - 80 instructions.
• This ancestor evolve communities of
interacting “living” creatures, due to
mutations.
Ancestor’s Genome
01 (nop_1)
01 (nop_1)
01 (nop_1)
01 (nop_1)
04 (zero)
02 (or1)
03 (shl)
03 (shl)
18 (mov_cd)
1c (adrb)
00 (nop_0)
00 (nop_0)
00 (nop_0)
00 (nop_0)
07 (sub_ac)
19 (mov_ab)
1d (adrf)
00 (nop_0)
00 (nop_0)
00 (nop_0)
01 (nop_1)
08 (inc_a)
06 (sub_ab)
01 (nop_1)
01 (nop_1)
00 (nop_0)
01 (nop_1)
1e (mal)
16 (call)
00 (nop_0)
00 (nop_0)
01 (nop_1)
01 (nop_1)
1f (divide)
14 (jmp)
00 (nop_0)
00 (nop_0)
01 (nop_1)
00 (nop_0)
05 (if_cz)
01 (nop_1)
01 (nop_1)
00 (nop_0)
00 (nop_0)
0c (push_ax)
0d (push_bx)
0e (push_cx)
01 (nop_1)
00 (nop_0)
01 (nop_1)
00 (nop_0)
1a (mov_iab)
0a (dec_c)
05 (if_cz)
14 (jmp)
00 (nop_0)
01 (nop_1)
00 (nop_0)
00 (nop_0)
08 (inc_a)
09 (inc_b)
14 (jmp)
00 (nop_0)
01 (nop_1)
00 (nop_0)
01 (nop_1)
05 (if_cz)
01 (nop_1)
00 (nop_0)
01 (nop_1)
01 (nop_1)
12 (pop_cx)
11 (pop_bx)
10 (pop_ax)
17 (ret)
01 (nop_1)
01 (nop_1)
01 (nop_1)
00 (nop_0)
05 (if_cz)
Ancestor
1111
self exam
find 0000 [start] bx
find 0001 [end] ax
calculate size cx
1101
reproduction loop
Allocate daughter ax
call 0011 (copy procedure)
cell division
jump 0010
1100
copy procedure
Save registers to stack
1010
move |bx| |ax|
decrement cx
if cx==0 jump 0100
increment ax & bx
jump 0101
1011
restore registers
return
1110
The Ancestral Program consists of three “genes” (green solid objects).
The CPU (green sphere) is executing code in the first gene,
which causes the program to measure itself.
The Parasite
• Uses the ancestor’s copy procedure to copy
himself
• The host is not affected by the parasite
• Superior competitor
• 45 instructions
• Population cycles
1111
self exam
find 0000 [start] bx
find 0001 [end] ax
calculate size cx
1101
reproduction loop
Allocate daughter ax
call 0011 (copy procedure)
cell division
jump 0010
1100
copy procedure
Save registers to stack
1010
move |bx| |ax|
decrement cx
if cx==0 jump 0100
increment ax & bx
jump 0101
1011
restore registers
return
1110
Ancestor & parasite
1111
self exam
find 0000 [start] bx
find 0001 [end] ax
calculate size cx
1101
reproduction loop
Allocate daughter ax
call 0011 (copy procedure)
cell division
jump 0010
1110
A Parasite (blue, two piece object) uses its CPU (blue sphere)
to execute the code in the third gene of a neighboring host
organism (green) to replicate itself, producing daughter parasite
(two-piece wire frame object).
The Hyper-Parasite
• Robust self-replicate program by itself
• When a parasite tries to use the hyperparasite, the hyper-parasite cause the
parasite to replicate the hyper-parasite
• Drive the parasites to extinction
1111
self exam
find 0000
[start] bx
find 0001
[end] ax
calculate
size cx
Hyper-parasite
1101
reproduction loop
Allocate
daughter ax
call 0011
cell division
jump 0000
1100
copy procedure
1010
move |bx| |ax|
decrement cx
if cx==0 jump 1100
increment ax & bx
jump 0101
1110
parasite
1111
self exam
find 0000 [start] bx
find 0001 [end] ax
calculate size cx
1101
reproduction loop
Allocate daughter ax
call 0011 (copy procedure)
cell division
jump 0010
1110
A Hyper-parasite (red, three piece object) steals the CPU
from a parasite (blue sphere). Using the stolen CPU, and its own
CPU (red sphere) it is able to produce two daughters
(wire frame objects on left and right) simultaneously.
Symbionts
• Manually created
• One contains the self-exam and copy
procedure
• The other contains the self-exam and
reproduction loop
• 46 and 64 instructions
1111
self exam
find 0000 [start] bx
find 0001 [end] ax
calculate size cx
jump 0010
1100
copy procedure
Save registers to stack
1010
move |bx| |ax|
decrement cx
if cx==0 jump 0100
increment ax & bx
jump 0101
1011
restore registers
return
1110
symbionts
1111
self exam
find 0000 [start] bx
find 0001 [end] ax
calculate size cx
jump 0010
1101
reproduction loop
Allocate daughter ax
call 0011 (copy procedure)
cell division
jump 0010
1110
Social Hyper-Parasites
• Appear when there is genetic uniformity
• Cooperate with the previous social hyperparasite cell
• 61 instructions
• Jumping templates of size 3
Cheaters: Hyper Hyper Parasites
• Invade the social system
• Position themselves between aggregating
hyper parasites to capture the instruction
pointer
• 27 instructions
Experiments (Simulations)
Hosts, red, are very common. Parasites, yellow,
have appeared but are still rare.
Hosts, are now rare because parasites have become very common.
Immune hosts, blue, have appeared but are rare.
Immune hosts are increasing in frequency,
separating the parasites into the top of memory.
Immune hosts now dominate memory,
while parasites and susceptible hosts decline in frequency.
The parasites will soon be driven to extinction.
Experiments (Simulations)
• Changing parameters:
– Mutation rate
– Selection for small/large cells
• Exploring the ecology in controlled
environment
– Run two competing cells without mutation
– Run a fixed population of cells
• Micro/macro scales
Emergence
• Cariani defined emergence relative to the
expected model as the state when the model
no longer describes the system
• Emergence types:
– Syntactic
– Semantic
– Pragmatic
AL and Biology Theory
AL
experimental study
test biological
theories
suggest the model
suggest the factors
Biology
Biological Factors of Diversity
• Adaptation to biologic evolving
environment vs. To physical environment
– Emergent fitness function
• Size, shape, distribution, fragmentation,
heterogeneity
Possible Extensions
•
•
•
•
Predators
Multi-cellular organs
Introducing energy costs
Separating genotype from phenotype
Summary
• A framework for synthesis of life was
presented
• Natural-like behavior was detected in the
system
• This system opens the way for interdisciplinary future research
Resources
• The Tierra homepage - Thomas Ray
www.hip.atr.co.jp/~ray/tierra/tierra.html
• Mac Tierra - Simon Fraser
www.santfe.edu/~smfr/mactierra.html
• Core life - Erik de Neve
www.xs4all.nl/~alife/corelife.htm