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.
|