In comparing the patterns of evolution across the four instruction sets, two major differences are apparent: 1) The degree and rate of optimization attained. 2) The patterns of gradualism, punctuation and equilibrium. These results are summarized in Table 1, and described below.
Table 1: Comparison of optimizations in the four instruction sets, I1, I2, I3 and I4 (described in Appendix B). The first column, ``Set'', specifies which of the four sets. The second column, ``Ancestor'', specifies the size in instructions, of the ancestral algorithm of that set. The following eight columns, ``R0'' through ``R7'' refer to the eight runs, and contain the size of the smallest algorithms evolved during that run. The column ``Avg. Opt.'' shows the average optimization for that set. This is calculated by averaging the sizes of the smallest algorithms to evolve in each run for that set, and dividing by the size of the ancestral algorithm. The column ``Max. Opt.'' shows the maximum optimization achieved by this set. This is calculated by dividing the size of the smallest algorithm to evolve by the size of the ancestral algorithm.
Set Ancestor R0 R1 R2 R3 R4 R5 R6 R7 Avg. Opt. Max. Opt. I1 73 27 27 26 22 .35 .30 I2 94 54 57 54 55 60 56 57 55 .60 .57 I3 93 54 37 34 36 49 53 54 40 .48 .37 I4 82 26 23 23 26 35 24 43 23 .34 .28
Figure 1: Optimization Patterns in Four Instruction Sets. For each of the twenty-eight graphs, the horizontal axis is elapsed time in generations, and the vertical axis is the size of the algorithm in instructions. Points appear on the graph when a new genotype increases in frequency across some threshold. Each group of four graphs is labeled as to which instruction set, e.g., INST 1 is the first set, INST 3 is the third.
The original instruction set (Figure 1) shows the most rapid optimization, generally reaching its final plateau within 600 generations. In addition, this instruction set showed one of the highest degrees of optimization, with the best performance reducing the seed program from seventy-two to twenty-two instructions, 30% of its original size, and the average reduced to 35%. This instruction set generally showed a pattern of gradualism, with an occasional punctuation. This pattern could be described as punctuated gradualism.
The second instruction set (Figure 1) shows slower optimization, generally taking about 1000 generations to reach its final plateau. Also, the degree of optimization shown by this set is not as great. The best performance reduced the algorithm from ninety-four to fifty-four instructions, 57% of its original size, and the average reduced to 60%. This instruction set generally showed a pattern of gradualism, punctuations were completely absent.
The third instruction set (Figure 1) performed much like the second, taking about 1000 generations to reach its final plateau, and showing a pattern of gradualism, completely lacking in punctuations. This instruction set showed somewhat better optimization than the second, with the best performance reducing the algorithm from ninety-three to thirty-four instructions, 37% of its initial size, and the average reduced to 48%.
The fourth instruction set (Figure 1) showed very distinctive patterns of evolution. The time to reach its final plateau varied widely, ranging from about 350 generations to about 2000 generations. The greatest degree of optimization resulted in reducing the algorithm from eighty-two to twenty-three instructions, 28% of the original size, and the average reduced to 34%. This instruction set showed what could only be described as punctuated equilibrium, with no clear signs of gradualism.