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?