Figure 2 illustrates the measure of community entropy over a period of one billion CPU cycles. This measure, negative sum of p log p, where p is the proportion of the population occupied by a particular genotype, is the same index that ecologists use to measure community diversity. Initially, the entropy/diversity measures zero, because there is only a single genotype in the community. Mutation introduces new genotypes, and the diversity quickly rises to some ``equilibrium'' value. Over the course of the billion cycles, this equilibrium value slowly drifts up. This is probably due to the fact that during this same period, the average size of the individuals gradually decreases. This results in a gradual rise in the population of creatures in the community (since the area of memory available is fixed). Evidently larger populations are able to sustain a greater equilibrium diversity.
Another feature of the lower graph is the striking peaks representing abrupt drops in entropy/diversity. These peaks are major extinction events. They are not generated by external perturbations to the system, but arise entirely out of the internal dynamics of the evolving system.
The population records for this run were reviewed, and all genotypes which had achieved frequencies representing 20% or more of the total population in the community were identified. Ten genotypes had achieved these frequency levels, and they are listed in Table 3. Each of these ten genotypes is marked with a letter on the lower graph of Figure 2, to indicate the time of its occurrence. It appears that these extremely successful genotypes correspond to all the major peaks of diversity loss.
The upper portion of Figure 2 shows the changes in the size of organisms during the run. A point appears on this graph each time a new genotype increases in frequency across a threshold of 2%. That is to say, that when the population a new genotype first comes to represent 2% of the total population of individuals in the soup, a point appears on the graph indicating the size of that organism, and the time that it reached the threshold. Therefore the upper part of Figure 2 illustrates the size trends for the appearance of successful new genotypes.
Two distinct data clouds can be recognized in the upper part of Figure 2. The upper cloud of points spans the full range of time, and is located principally in the 60 to 80 instruction size range. These points represent ``hosts'', or fully self-replicating algorithms. By contrast, the lower cloud of points represents the smaller parasites. The lower cloud is located principally in the 25 to 45 instruction size range.
While the lower cloud also spans the full range of time, it contains obvious gaps which represent periods where parasites were absent from the community. The coming and going of parasites over time evidently relates to the turns in the evolutionary race between hosts and parasites. Parasites disappear when hosts evolve defenses, and reappear when the defenses are breached, or when the defenses are lost through evolution in the absence of parasites.
Figure 2: Entropy/Diversity Changes in an Evolving Ecological Community. In both graphs, the horizontal axis is time, in millions of instructions executed by the system. The upper graph shows changes in the sizes of the organisms, in the same style as Figure 1. The lower graph shows changes in ecological entropy over time (see text).
Table 3: Most Successful Genotypes, Their Times of Occurrence, and Maximum Frequency. The first column ``Letter'' indicates the letter used to mark the location of the genotype on Figure 2. The second column ``Time'' indicates the time of occurrence of this genotype, in millions of instructions. The third column ``Genotype'' indicates the name of this organism. The fourth column ``Max. Frequency'' indicates the maximum frequency achieved by this genotype, as a proportion of the total population of creatures in the soup.
Letter Time Genotype Max. Frequency a 117 0039aab 0.25 b 166 0037aaf 0.30 c 245 0070aac 0.20 d 313 0036aaj 0.25 e 369 0038aan 0.21 f 542 0027aaj 0.21 g 561 0023abg 0.34 h 683 0029aae 0.24 i 794 0029aab 0.23 j 866 0024aar 0.33