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?