The announcement of the invention of a 3-D printer that can make 3-D printers that can make 3-D printers . . . prompts me to offer this extract from my book Computing With Quantum Cats:
Like Alan Turing, the computer pioneer “Johnny” von Neumann was fascinated by the idea of artificial intelligence, although he had a different perspective on the rise of the robots. But unlike Turing, he lived long enough (just) to begin to put flesh on the bones of those ideas.
There were two parts to von Neumann’s later work. He was interested in the way that a complex system like the brain can operate effectively even though it is made up of fallible individual components, neurons. With the early computers (and many even today), if one component, such as a vacuum tube, failed the whole thing would grind to a halt. Yet in the human brain, quite apart from everyday operation, it is possible for the “hardware” to suffer massive injuries and continue to function effectively, if not quite in the same way as before. Von Neumann was also interested in the problem of reproduction. Jumping off from Turing’s idea of a computer that could mimic the behaviour of any other computer, he suggested first, that there ought to be machines that could make copies of themselves and, secondly, that there could be a kind of universal replicating machine that could make copies of itself and also of any other machine.
Both kinds of mimic, or copying machine, come under the general heading “automata”. Von Neumann’s interest in working out how workable devices can be made from parts prone to malfunction, and his interest in how complex a system would have to be in order to reproduce itself, began to grow in 1947. This was partly because he was moving on from the development of computers like the one then being built at the IAS and other offspring of EDVAC, but also because he became involved in the pressing problem for the US Air Force in the early 1950s of developing missiles controlled by “automata” that would have to function perfectly, if only during the brief flight time of the rocket.
Von Neumann came up with two theoretical solutions to the problem of building near-infallible computing machines out of fallible, but reasonably accurate, components. The first is to set up each component in triplicate, with a means to compare automatically the output of each of the three subunits. If all three results, or any two results, agree, the computation proceeds to the next step, but if none of the subunits agree the computation stops. This “majority voting” system works pretty well if the chance of any individual subunit making a mistake is small enough. It is even better if the number of voters for each step in the calculation is increased to five, seven, or even more. But this has to be done for every step of the computation (not just every “neuron”), vastly (indeed, exponentially) increasing the amount of material required. The second technique involves replacing single lines for input and output by bundles containing large numbers of lines — so-called multiplexing. The data bit (say, 1) from the bundle would only be accepted if a certain proportion of the lines agreed that it was correct. This involves complications which I will not go into here; the important point is that although neither technique is practicable, von Neumann proved that it is possible to build reliable machines, even brains, from unreliable components.
As early as 1948, von Neumann was lecturing on the problem of reproduction to a small group at Princeton. The biological aspects of the puzzle were very much in the air at the time, with several groups looking for the mechanism by which genetic material is copied and passed from oner generation to the next; it would not be until 1952 that the structure of DNA was determined. And it is worth remembering that von Neumann trained as a chemical engineer, so he understood the subtleties of complex chemical interactions. So it is no surprise that von Neumann says that the copying mechanism performs “the fundamental act of reproduction, the duplication of the genetic material.” The surprise is that he says this in the context of self-reproducing automata. It was around this time that he also surmised that up to a certain level of complexity automata would only be able to produce less complicated offspring, but above this level they would not only be able to reproduce themselves but “syntheses of automata can proceed in such a manner that each automaton will produce other automata which are more complex and of higher potentialities than itself.” He makes the analogy with the evolution of living organisms, where “today’s organisms are phylogenetically descended from others which were vastly simpler”. How did the process begin? Strikingly, von Neumann points out that even if the odds are against the existence of beings like ourselves, self-reproduction only has to happen once to produce (given time and evolution) an ecosystem as complex as that on Earth. “The operations of probability somehow leave a loophole at this point, and it is by the process off self-reproduction that they are pierced.”
By the early 1950s, von Neumann was working on the practicalities of a cellular model of automata. The basic idea is that an individual component, or cell, is surrounded by other cells, and interacts with its immediate neighbours. Those interactions, following certain rules, determine whether cell reproduces, dies, or does nothing. At first, von Neumann thought three-dimensionally. Goldstine:
[He] bought the largest box of “Tinker Toys” to be had. I recall with glee his putting together these pieces to build up his cells. He discussed this work with [Julian] Bigelow and me, and we were able to indicate to him how the model could be achieved two-dimensionally. He thereupon gave his toys to Oskar Morgenstern’s little boy Karl.
The two-dimensional version of von Neumann’s model of cellular automata can be as simple as a sheet of graph paper on which squares are filled in with a pencil, or rubbed out, according to the rules of the model. But it is also now widely available in different form that run on computers, and is sometimes known as the “game of life.” With a few simple rules, groups of cells can be set up that perform various things familiar from living organisms. Some just grow, spreadIng as more cells grow around the periphery; others pulsate, growing to a certain size, dying back, and growing again; others move, as new cells are added on one side and other cells die on the opposite side; and some produce offspring, groups of cells that detach from the main body and set off on their own. In his discussion of such systems, von Neumann also mentioned the possibility of arbitrary changes in the functioning of a cell, equivalent to mutations in living organisms.
Von Neumann did not live long enough to develop these ideas fully. He died of cancer on 28 February 1957, at the age of 53. But he left us with the idea of a “universal constructor”, a development of Turing’s idea of a universal computer — a machine which could make copies of itself and of any other machine, a self-reproducing robot. Such devices are now known as von Neumann machines, and they are relevant to one of the greatest puzzles of our, or any other time — is there intelligent life elsewhere in the Universe? One form of a von Neumann machine would be a space-travelling robot that could move between the stars, stopping off whenever it found a planetary system to explore it and build copies of itself to speed up the exploration while sending other copies off to other stars. Starting with just one such machine, and travelling at speeds well within the speed of light limit, it would be possible to explore every planet in our home Milky Way Galaxy in a few million years, an eyeblink as astronomical timescales go. The question posed by Enrico Fermi (why, if there are alien civilizations out there, haven’t they visited us?) then strikes with full force.
There’s one other way to spread intelligence across the Universe, which von Neumann was also aware of. A universal constructor would operate by having blueprints, in the form of digitally coded instructions which we might as well call programs, telling it how to build different kinds of machines. An even more efficient means to spread this information across the Universe would be in the form of a radio signal travelling at the speed of light, rather than in a von Neumann machine pottering along more slowly between the stars. If a civilization like ours detected such a signal, it would be surely be copied and analysed on the most advanced computers available, ideal hosts for the program to come alive and take over the operation of the computer. In mentioning this possibility, George Dyson makes an analogy with the way a virus takes over a host cell; he seems not to be aware of the entertaining variation on this theme discussed back in 1961 by astrophysicist Fred Hoyle in his fictional work A for Andromeda, where the interstellar signal provides the instructions for making (or growing) a human body with the mind of the machine. Hoyle though, was well aware of the work of Turing and von Neumann.