Results and analysis of evolutionary algorithm. For all simulations in this figure, the algorithm was started with 100 random rules and ran for 1000 iterations. Rule fitness was estimated by an average over 50 random initial conditions with CA size of L = 100. Each iteration, rules were mutated and, if less fit than the mutant, replaced by the mutant rule. Then, the 30 least fit rules were substituted by random ones. (cf. alg. S1) (a) Average and best fitness of the 100 rules in the list at each iteration as a function of evolutionary algorithm iterations. (b) Comparison between the ‘full’ EA using both mutations and replacement by random rules to modify the rule list, as well as modifications of the EA either only mutating the rules or only randomizing the least fit ones. (c) Distribution of maximum rule fitness found by the algorithm over 1619 runs (1620 for only mutation of rules, 1621 for only insertion of random rules) with the parameters specified before. (d) Phenotype of the fittest rule at the end of the run in (a), also fittest rule of the Full EA distribution in (c), for length L = 30, 100, and 300. (e) Dependence of the fitness of the rule in (a, b, d) on system length L for an average over 50 random initial conditions as in (a, b, c). Length L = 100 for which the fitness is usually calculated is marked with the red, dashed line.