Imagine a machine that could, given the required raw materials and energy, assemble a copy of itself with utmost precision. Would you call it ALIVE?
Self-assembly and self-replication has received a great deal of attention in nanotechnology, especially after K. Eric Drexler's Engines of Creation. However, to produce a machine, at any scale, to make itself is a formidable challenge. Scientists argue that if life is possible naturally via self-replicating molecular machinery in systems such as DNA and cells and tissue, then artificial self-replication is not theoretically impossible. Although self-replication is not restricted to the nanoscale, it seems natural to start at the molecular level just as nature did billions of years ago.
Although the physics of the nanoscale is a bizzare paradigm compared to the Newtonian framework which we are accustomed to living in, many futurists and sci-fi authors begin with a very traditional extension of mechanistic assembly into smaller scales. They envision little nanorobots with arms fitting parts together to make a second nanorobot. These nanorobots may be multi-purpose and even capable of machine evolution. Some of the more fanciful plots conjure up what is now termed "gray goo," where swarms of ultra-smart nanorobots become uncontrollable. But before going further into details, it is imperative to remove ourself from this fantasy world and examine things with a more academic poise. A mechanistic assembler, even at large scales, is very difficult to design. Imagine a modified multi-purpose tool such as a robotic arm or CNC lathe. In fact, we can combine these two into a single machine where the arm is used for materials transport, and the lathe is for machining. Trying to plan out this sort of scheme quickly becomes extraordinarily complicated. Important questions dealing with the prefabrication of parts need to be addressed. How complex can the available raw materials be for the machine to qualify as a self-assembler. We may need to compare it to cell, which receives the water, simple nutrients, and energy it needs to perform mitosis. It is not desirable to have an assembler of too great a complexity so that it becomes a design issue to plan the copying process. However, we do not want something too simple either or it won't be able to replicate itself. Clearly, there needs to be an equilibrium between these factors for a simple, elegant self-replicator. Moreover, it is important to point out the end-result need not be a useful machine. Purely accomplishing this for even academic purposes is enough to get the wheels of industry in motion.
What may look good on TV and in sci-fi novels just may not fly when it comes to engineering. So some scientists are taking a very different view to nano self-assembly and self-replication: an approach based mainly on biochemistry. We simply cannot ignore the quantum effects, thermal noise, and fluid viscosities when a machine's size is reduced to the order of one hundred thousandth of the thickness of a human hair. It seems that the next generation of nano-devices will be "soft machines," a term coined by Prof. Richard Jones from the University of Sheffield, UK. These machines will be actively using biological and chemical principles to manipulate molecules. Many of these machines try to imitate what already exists in cells and proteins, while others even steal parts of natural molecular machinery.
How does DNA miraculously replicate itself? Rather than delve into the depths of biochemistry, we can take a very unorthodox approach to understanding the mechanism of self-assembly: computer science. Although the concepts are greatly simplified (no physical movement of atoms), a great deal can be gleaned from "virtual" self-assembly, perhaps the purest form (because no errors are made). First, we examine the work of John von Neumann, one of the most prolific mathematicians of the 20st century. Most importantly, he proved theorems on the existence of a self-replicator and developed the theory of cellular automata. In addition, he worked with concepts such as open-ended machine evolution. He designed the first "universal constructor" with a total of 29 states. His designs have been significantly simplified since. Here are some definitions for quick reference:
Cellular Automaton (Wikipedia):
"A cellular automaton (plural: cellular automata) is a discrete model studied in computability theory, mathematics, theoretical biology and microstructure modeling. It consists of a regular grid of cells, each in one of a finite number of states.The grid can be in any finite number of dimensions. Time is also discrete, and the state of a cell at time t is a function of the states of a finite number of cells (called its neighborhood) at time t − 1. These neighbors are a selection of cells relative to the specified cell, and do not change (though the cell itself may be in its neighborhood, it is not usually considered a neighbor). Every cell has the same rule for updating, based on the values in this neighbourhood. Each time the rules are applied to the whole grid a new generation is created."
Open-ended evolution (University of Hertfordshire, UK - http://homepages.feis.herts.ac.uk/~comqcln//al7ev/nehaniv-cpx/node3.html):
"An evolutionary system E exhibits open-ended evolution if for every integer N, there exists a time t such that at time t, the system includes an entity e whose complexity is at least N, i.e. cpx(e) >= N.
Now, using these concepts as background, consider a program that will output only its own source code. This is known as a quine. In a sense, this is like a virtual organism. We can by analogy, extend several of it's components (lines of code) to have physical meaning. Consider the following: "A quine exists in any programming language that has the ability to output any computable string, as a direct consequence of Kleene's recursion theorem." (Wikipedia) It may seem simple to write a quine, but reality is that it cannot be done without some clever tricks. For example, some programmers use recursion to feed the program to itself, therefore making it the input and the output. Others try to reconstruct it from the strings used to write the code. Some make use of the preprocessor, where the code is read before being executed. A friend of mine suggested a UNIX shell script (text file) that would, when executed, display itself using something similar to this:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPxmSlqFvB7HH0Pid5hEdozmBN_66j_685yBY1vJMJfk-QkpQclZJ1SG-aPhwldp4t19N7Rpus0ETjuf7W4goHPm8ySCm7MuN5vwKubZVsuY_XaXhHck2L68wKDQxB-xZQJzIjpId0Fdm/s400/Advanced_Automation_for_Space_Missions_figure_5-29.gif)
The image shown above depicts a simple idea for a macroscopic self-replicator. In fact, many teams across the world are pursuing this lofty goal. The concept of rapid prototyping has become of great relevance to this topic. Rapid prototyping is defined as, "the automatic construction of physical objects using solid freeform fabrication." (Wikipedia) Most notably, the RepRap team at the University of Bath, UK has made enormous headway with this technique. As of May 2008, the team claims that their machine, essentially a 3-D printer, has reproduced all of its parts (which need to be manually assembled to create the copy).
Links:
John von Neumann - Wikipedia
http://en.wikipedia.org/wiki/Von_Neumann
Cellular automaton - Wikipedia
http://en.wikipedia.org/wiki/Cellular_automata
Conway's Game of Life - Wikipedia
http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
Quine (computing) - Wikipedia
http://en.wikipedia.org/wiki/Quine_%28computing%29
Rapid prototyping - Wikipedia
http://en.wikipedia.org/wiki/Rapid_prototyping
RepRap Home
http://reprap.org/bin/view/Main/WebHome