The above discussions of the nature of sexuality are intended to make the point that it is an important process in evolutionary biology, and should be included in synthetic implementations of life. The sexual process is implemented with the ``cross-over'' genetic operator in the field of genetic algorithms, where it has been considered to be the most important genetic operator .
The cross-over operator has also been implemented in synthetic life systems [76,91]. However, it has been implemented in the spirit of a genetic algorithm, rather than in the spirit of synthetic life. This is because in these implementations the cross-over process is not under the control of the organism, but rather is forced on the individual. In addition, these implementations are based on haploid sex not diploid sex (see below). In order to address many of the interesting evolutionary questions surrounding sexuality, the sexual process must be optional, at least through evolution, and should be diploid.
Primitive sexual processes have appeared spontaneously in the Tierra synthetic life system . However, there apparently has still not been an implementation of natural organized sexuality in a synthetic system. I would like to discuss my conception of how this could be implemented, with particular reference to the Tierra system.
It would seem that the simplest way of implementing an organized sexuality that would give rise to an evolving gene pool would involve the use of ``ploidy''. Ploidy refers to a system in which each individual contains multiple copies of the complete genome. In the most familiar sexual system (that used by humans), the gametes (egg and sperm) contain one copy of the genome (they are haploid), and all other stages of the life cycle contain two copies (they are diploid), which derive from the union of a sperm and egg.
In a digital organism whose body consists of a sequence of machine code, it would be easy to duplicate the sequence and include two copies within the cell. However, some problems can arise with this configuration, if the two copies of the genome occupy adjacent blocks of memory. Which copy of the genome will be executed? When the organism contributes one of its two copies of the genome to an offspring, which of the two copies will be contributed, and how can the mother cell recognize where one complete genome begins and ends?
A solution to these problems that has been partially implemented in the Tierra system is to have the two copies of the genome intertwined, rather than in adjacent blocks of memory. This can be done by letting alternate bytes represent one genome, and the skipped bytes the other genome. Tierran instructions utilize only five bits, and so are mapped to successive bytes in memory. If we instead place successive instructions in successive sixteen bit words, one copy of the genome can occupy the high order bytes, and the other genome can occupy the low order bytes of the words.
This arrangement facilitates relatively simple solutions to the problems mentioned above. Execution of the genome takes place by having the instruction pointer execute alternate bytes. In a diploid organism there are two tracks. The track to initially be executed can be chosen at random. At a certain frequency, or under certain circumstances, the executing track can be switched so that both copies of the genome will be expressed.
Having two parallel tracks helps to resolve the problem of recognizing where one copy of the genome ends and the other begins, since both genomes usually begin and end together. Copying of the genome, like execution, can occur along one track. Optionally, tracks could be switched during the copy process, to introduce an effect similar to crossing over in meiosis. In addition, the use of both tracks can be optional, so that haploid and diploid organisms can coexist in the same soup, and evolution can favor either form, according to selective pressures.