310 likes | 422 Views
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!
E N D
Introduction At the heart of the growth of a multi-cellular organism is the process of cellular division… … aka (in computing) self-replication
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 • The Pulser • 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) Output (sequence) Pulser P Input
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
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!
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 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
The Tom Thumb algorithm Note: the genome must be injected twice
The Tom Thumb algorithm Loop of 2x4 molecules
The Tom Thumb algorithm Loop of 4x4 molecules
Basic cell made of 12 x 6 = 72 molecules The Tom Thumb algorithm - Example Original specifications
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 kindof structures is it interesting to self-replicate • And why would you want to do it anyway?