next up previous
Next: Operating System Up: No Title Previous: Transposons

Artificial Death

Death must play a role in any system that exhibits the process of evolution. Evolution involves a continuing iteration of selection, which implies differential death. In natural life, death occurs as a result of accident, predation, starvation, disease, or if these fail to kill the organism, it will eventually die from senescence resulting from an accumulation of wear and tear at every level of the organism including the molecular.

In normal computers, processes are ``born'' when they are initiated by the user, and ``die'' when they complete their task and halt. A process whose goal is to repeatedly replicate itself is essentially an endless loop, and would not spontaneously terminate. Due to the perfection of normal computer systems, we can not count on ``wear and tear'' to eventually cause a process to terminate.

In synthetic life systems implemented in computers, death is not likely to be a process that would occur spontaneously, and it must generally be introduced artificially by the designer. Everyone who has set up such a system has found their own unique solutions. Todd [94] recently discussed this problem in general terms.

In the Tierra system [71] death is handled by a ``reaper'' function of the operating system. The reaper uses a linear queue. When creatures are born, they enter the bottom of the queue. When memory is full, the reaper frees memory to make space for new creatures by killing off the top of the queue. However, each time an individual generates an error condition, it moves up the reaper queue one position.

An interesting variation on this was introduced by Barton-Davis [3] who eliminated the reaper queue. In its place, he caused the ``flaw rate'' (see section on Flaws above) to increase with the age of the individual, in mimicry of wear and tear. When the flaw rate reached 100%, the individual was killed. Skipper [81] provided a ``suicide'' instruction, which if executed, would cause a process to terminate (die). The evolutionary objective then became to have a suicide instruction in your genome which you do not execute yourself, but which you try to get other individuals to execute. Litherland [51] introduced death by local crowding. Davidge caused processes to die when they contained certain values in their registers [16]. Gray [29] allowed each process six attempts at reproduction, after which they would die.



next up previous
Next: Operating System Up: No Title Previous: Transposons



Thomas S.Ray
Thu Aug 3 13:59:36 JST 1995