The process of evolution by natural selection is able to create complex and beautiful information processing systems (such as primate nervous systems) without the guidance of an intelligent supervisor. Yet intelligent programmers have not been able to produce software systems that match even the full capabilities of insects. Recent experiments demonstrate that evolution by natural selection is able to operate effectively in genetic languages based on the machine codes of digital computers (Ray 1991a, 1991b, 1994c). This opens up the possibility of using evolution to generate complex software.
Ideally we would like to generate software that utilizes the full capability of our most advanced hardware, particularly massively parallel and networked computational systems. Yet it remains an open question if evolution has the ability to achieve such complexity in the computational medium, and if it does, how that goal can be achieved. Successful efforts at the evolution of machine codes have generally worked with programs of under a hundred bytes. How can we provoke evolution to transform such simple algorithms into software of vast complexity?
Perhaps we can gain some clues to solving this problem by studying the comparable evolutionary transformation in organic life forms. Life appeared on Earth roughly 3.5 thousand million years ago, but remained in the form of single celled organisms until about 600 million years ago. At that point in time, life made an abrupt transformation from simple microscopic single celled forms lacking nervous systems, to large and complex multi-celled forms with nervous systems capable of coordinating sophisticated behavior. This transformation occurred so abruptly, that evolutionary biologists refer to it as the ``Cambrian explosion of diversity.''
It is heartening to observe that once conditions are right, evolution can achieve extremely rapid increases in complexity and diversity, generating sophisticated information processing systems where previously none existed. However, our problem is to engineer the proper conditions for digital organisms in order to place them on the threshold of a digital version of the Cambrian explosion. Otherwise we might have to wait millions of years to achieve our goal. Ray (1994a) has reviewed the biological issues surrounding the evolution of diversity and complexity, and they lead to the following conclusions:
Evolution of complexity occurs in the context of an ecological community of interacting evolving species. Such communities need large complex spaces to exist. A large and complex environment consisting of partially isolated habitats differing and occasionally changing in environmental conditions would be the most conducive to a rapid increase in diversity and complexity. These are the considerations that lead to the suggestion of the creation of a large and complex ecological reserve for digital organisms. Due to its size, topological complexity, and dynamically changing form and conditions, the global network of computers appears to be an ideal habitat for the evolution of complex digital organisms.