Transcript pps
Introduction
At the heart of the growth of a multi-cellular
organism is the process of cellular division…
… aka (in computing) self-replication
Von Neumann’s UC
Self-replicating CA
After von Neumann, nothing much happened for
almost 30 years!
Why? Probably because the hardware wasn’t
ready.
In 1984, Chris Langton designed Langton’s Loop
Von Neumann’s Constructor
Output (sequence)
The Pulser
Pulser P
Input
Generation of a sequence of
0s and 1s
For u 0s and k 1s, the pulser
has width 2 x k and height u
+ 2 (if there’s only a single 0
in the sequence, then the
height is 2)
Von Neumann’s Constructor
Pulser P (101001)
k = 3, width = 2 x 3 = 6
u = 3, height = 3 + 2 = 5
Von Neumann’s Constructor
Pulser P (101001)
k = 3, width = 2 x 3 = 6
u = 3, height = 3 + 2 = 5
Langton’s Loop
Environment: 8 (?) states, 5 neighbours (von
Neumann), rules designed by hand
Initial configuration: 94 active cells (vs. 200k+ in
von Neumann’s Universal Constructor)
Replication occurs after 151 iterations
Langton’s Loop
Environment: 8 (?) states, 5 neighbours (von
Neumann), rules designed by hand
Initial configuration: 94 active cells (vs. 200k+ in
von Neumann’s Universal Constructor)
Replication occurs after 151 iterations
Langton’s Loop
Aim: studying self-replication as “Artificial Life”
Problem: does nothing but self-replicate
Langton’s Loop
After Langton, the loops were optimized
In one case (Perrier et al.) a Turing machine was
added to the loop (but at a high cost)
Towards functional self-replication
Environment: 7+ states, 9 neighbours (Moore),
rules designed by hand
Simple initial configuration, easily simulated
Towards functional self-replication
Can be extended by adding “applications” (the
complexity depends on the task)
Self-replicating CA
After von Neumann, nothing much happened for
almost 30 years!
Why? Probably because the hardware wasn’t
ready.
In the 90’s, FPGAs changed the scenario
PROGRAMMABLE
CONNECTIONS
PROGRAMMABLE
FUNCTIONS
CONFIGURATION
LOGIC
ELEMENTS
I/O ELEMENTS
Self-replicating CA
Question: are the “standard” self-replicating
loops well adapted to self-replication in FPGAs?
Not really! Lots of empty space, huge lookup
tables, and infinite grids!
New algorithms are needed
The Tom Thumb algorithm
In an FPGA, self-replication = copy of the
configuration (seen as a state)
Need algorithms that can evolve in an FPGA
environment – look at von Neumann!
PROGRAMMABLE
CONNECTIONS
PROGRAMMABLE
FUNCTIONS
CONFIGURATION
LOGIC
ELEMENTS
I/O ELEMENTS
The Tom Thumb algorithm
Simple(st) example: Assume a configuration
(shift) register of 4x4 bits
The Tom Thumb algorithm - States
Data information
The Tom Thumb algorithm - States
M
: mobile molcode
M : fixed molcode
F
: mobile flag
F
: fixed flag
Data information
The Tom Thumb algorithm - States
Flag data
The Tom Thumb algorithm - States
Flag data
The Tom Thumb algorithm - Rules
Instead of a look-up table, the rules are defined
by the motion of data and signals
The Tom Thumb algorithm - Rules
Instead of a look-up table, the rules are defined
by the motion of data and signals
load data:
M’’
F’’ M’ F’
t
M’’ F’’ M’ F’
t +1
The Tom Thumb algorithm
4 2
1
2
3
3 2
4
1
3 1
4
1
2
2 3
3
4
1 3
2
3
4
4 1
1
2
2 4
3
4
1
1 4
2
3
Note: the genome must be injected twice
The Tom Thumb algorithm
The Tom Thumb algorithm
Loop of 2x4 molecules
The Tom Thumb algorithm
Loop of 4x4 molecules
The Tom Thumb algorithm - Example
Original specifications
Basic cell made of 12 x 6 = 72 molecules
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
2
2
2
2
2
2
1
1
2
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
2
2
2
2
2
2
1
1
2
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
1
1
2
1
1
1
1
2
1
1
2
2
2
2
2
2
1
1
2
2
2
2
2
2
1
1
2
2
2
2
2
2
1
The Tom Thumb algorithm - Example
Genome made of 144 characters
Ontogenetic hardware
Ok, so the Tom Thumb algorithm can self-
replicate an arbitrary structure within an FPGA
But what kind of structures is it interesting to self-
replicate
And why would you want to do it anyway?