Evolving Evolvability in a Simple GA Setup
Andrés Moreira
Abstract
The Evolution of EvolvabilitySpecies (biological, digital or whatever) evolve, and the main responsible is (natural) selection. Features that vary between different individuals give them different degrees of fitness, and these in turn cause a bias in the generation of the population's offspring, which eventually leads to the spread of certain traits and a change in the species. A very important property of species, then, is their variability: on one hand, robustness is needed (to be viable, offspring must resemble the parents), and on the other, flexibility is needed if adaptation is wanted. The variability of a species will be a tradeoff between these two aspects; in the language of genetic algorithms, there is a tradeoff between the ability to exploit known candidate solutions, and the need to explore unknown regions of a fitness landscape.How is this degree of variability selected? Variability is, clearly, a feature that is also subject to evolution. But there are two important differences between the evolution of evolvability and the evolution of other species' traits. First, evolvability is not so much a feature of the individual organisms, as it is a feature of the population: the degree of recombination, for instance, depends on the interactions between organisms of the species. After all, it is the "gene pool" of the species that will be rigid or flexible; the genome of individual organisms does not change. Second: the evolution of "usual" traits considers the current advantages of different versions of the organism, shifting the genome pool along the optimizing gradient in a fitness landscape (depending only on the "local" aspect of this landscape). Unlike these traits, evolvability must be tuned to global features, like the topology (ruggedness, for instance) of the landscape and its evolution will happen in a larger time-scale. Besides the topology, another important feature of the fitness landscape is its own variability: species do not, in general, adapt to a constant world, but to a changing one, and the variability of the species will be necessarily linked with the variability of the environment in which the species evolve. Here we use simple genetic algorithms to explore the relation between the speed of change and the ruggedness of the environment and the evolved evolvability of a population. The "environment" will be a real function (which varies over time), and the populations will be usual GA ones.
The first attempt: The first setup I tried failed; I describe it anyway, since it illustrates the point stated above about evolvability of a feature of populations and not of individuals. I considered a population of individuals, each of them consisting in three binary chromosomes, encoding real numbers xi, mi, ci. The first was the "candidate solution", the second was its mutation rate, and the third was a probability of mating. In each round, the fitness function changed (according to the speed S), the individuals mutated and mated their xi-chromosomes (according to their mi and ci), the fitness of all individuals was calculated, and then a new generation was The final setup: There were two ways to go, after trying the first scheme. One was to drop the GA setup, and take some other kind of climbing (an approach like the so-called "simulated annealing", for instance) whose flexibility could be tuned to the change of the environment (in the same way described above). This is a path I still have to try.
The second direction, which I followed, was to divide the population into reproductively closed subpopulations, each of them with a mutation rate and a crossover rate. Selection was divided in two levels: first, there is a lower one, were populations evolve their members to maximize the changing fitness function (using their mutation and crossover rates; this is the SMALL GA). Then there is the higher level, operating on a larger time-scale, were the populations are judged for the average fitness they get, and a new "population of populations" is generated, with mutation and crossover rates generated from the previous ones through, again, mutation and recombination (the BIG GA). A third genetic operator was added (for a while), the "reverse" operator, which reverses the complete binary string . The new scheme is shown in figure 2.
First exploration: Figure 3 shows the resulting values, over time, of the crossover, mutation and reversing rates; 3b is a close-up of the lower part of 3a. Two things can be noticed: first, that there is no definite convergence to a specific point of the 3-dimensional parameter space. Second, that there is a convergence towards some kind of surface in that space: in the small graph, we notice that mutation and reversion rates tend to compensate each other. In order to explore at least something in this space, two of the parameters
Finally, the GA was run for several values of S, and the resulting -evolved- mutation rates (and the associated fitnesses) are shown in Figure 8. Discussion: The setup proved appropriate to observe the adaptation of a population's evolvability to the speed of change of its "environment". However, a number of issues of interest could not be addressed in the current form of the system. It would be interesting, for instance, to draw curves similar to the ones presented here, but for a fixed mutation probability and a varying -and evolving- crossover rate; this could not be done, since the effect of changes in the crossover rate turned out to be very small. Another interesting question was whether the system evolves towards a mutation rate that sets it "on the edge of chaos"; this was not the case, since there was no such edge: a forced increase of the mutation rate over the (evolved) optimal value had smooth consequences in the fitness of the population. Furthermore, the setup turned out to be very robust, and the qualitative results were the same when the fitness function was changed to be piecewise linear, when the jumps of the drift were made more violent, etc. Conclusion: Not all the questions that could be stated could be answered, but the simplicity of the setup and the fact that the most elementary test did work, suggest that it may be useful to explore some other issues. Possible directions to go are changes in the function (Make it more abrupt? Try trigonometric functions?), changes in the reproduction of the populations (Sex? How good is it, depending on S?), etc. Demonstrative applets and any further work can be found at: http://www.dim.uchile.cl/~anmoreir/csss |