next up previous contents
Next: Low Mutation and Flaw Up: High Mutation and Flaw Previous: High Mutation and Flaw

Results

With high mutation and flaw rates, eight of the nine runs rapidly fell into the degenerative Class 1 dynamics. The transition occurred within the first 300,000 time slices in all of these cases. One of the runs, number 2, showed slightly different behaviour. The population size settled down to around 400 programs as is typical for Class 1 systems, but the diversity was somewhat lower than expected for Class 1 dynamics, it had non-zero mean cumulative activity and mean new activity, and the length of the programs was much shorter than is typical (around 400 bits, compared to the more usual 1000-1200 bits for Class 1 systems).

Analysis of the programs that lived in Run 2 after the initial transition from Class 2 dynamics revealed that they were almost identical to the ancestral program 348AAAA. The only major differences were that the programs had lost the ability to move (as is the case for normal Class 1 programs), but they also had in the order of ten extra et_collect instructions in their copy loops, in addition to the two which were present in the ancestor. Now, the addition of these energy collection instructions to the copy loop is the standard method by which the programs improve their ability to survive, as we saw in the analysis of the standard run in Section 5.2.7. However, in that analysis, we only saw programs which had gained an additional seven et_collect instructions in their copy loops.

It could be that a threshold exists at a certain number of extra et_collects, after which point the programs are extracting too much energy from their neighbours to allow them all to coexist, thereby bringing on the Class 1 dynamics. This scenario would just be a slightly different method of bringing about the same result: in the Class 1 systems we have seen before, the programs execute more instructions per time slice because of their length, and therefore can run through several iterations of the copy loop and consequently execute many et_collect instructions per time slice; in the present case, the programs execute fewer instructions per time slice (because they are shorter), but still execute many et_collect instructions in a single iteration of the copy loop. To test this explanation, a number of runs were conducted using different ancestor programs for inoculation. Between runs, the ancestors differed in the number of et_collect instructions contained in their copy loops. Apart from this, they were the same as the standard ancestor 348AAAA, except that they all also had the move instruction removed so that they were sessile. All of the parameters took on their default values, except that mutations and flaws were switched off to enable us to study the neutral (non-adaptive) dynamics of the model. Each run lasted for 25,000 time slices. The population size graphs for four of these experiments are shown in Figure 6.13, for ancestors with 2, 5, 9 and 13 et_collect instructions inside the copy loop. These graphs clearly demonstrate that the dynamics do indeed start to change as the number of et_collects rises, as predicted. It therefore seems reasonable to classify Run 2 as a Class 1 run, along with the other eight runs. In other words, all nine runs can therefore be classified as Class 1.


  
Figure 6.13: Population size graphs for ancestors with different numbers of et_collect instructions within copy loop. See text for details.
\resizebox{0.9\linewidth}{!}{\includegraphics{graphs/etcollects-in-cpylp/popsizes.ps}}


next up previous contents
Next: Low Mutation and Flaw Up: High Mutation and Flaw Previous: High Mutation and Flaw
Tim Taylor
1999-05-29