Introduction 5 of 5
There is a strong link between self-replication and computation. An SRM must have some mechanism for ordering and coordinating its actions. For an SRM based around a constructor that operates serially (i.e. works on one part at a time) a control unit may output a sequence of instructions that corresponds to the construction operations that the SRM performs. The control unit need not contain a general purpose computer, but there are at least two advantages to be had if it does. Firstly, redundancy in the sequence of instructions can be eliminated, resulting in a compact program. Secondly, once the SRM has finished making as many children as it is going to, the control unit can be put to use to perform a useful computation.
Set against these advantages is the disadvantage that a general purpose computer may be larger than a simpler control unit.
One of the goals that I have been working towards is that of trying to reduce the set of component parts from which discrete-space kinematic self-replicating systems can be built. In order to do this, I have been investigating mechanical computing schemes in an attempt to do away with the logic-function component parts that are present in CBlocks and CBlocks3D.
One result of this investigation is shown below. It is not clear whether this result has any application in self-replicating systems, but it is interesting. Consider the parts shown in the picture below. These parts exist in a two-dimensional discrete grid (rather like the CBlocks environment).
Neighbouring parts repel one another, and some parts can be fixed in place (indicated by a cross in the picture above). The picture above shows how three different configurations of parts change from one time step to another.
Logic gates can be made that are based on this simple behaviour, as shown below.
This is a dual-rail NOR gate.
Software to simulate this system can be found on the downloads page of this website.