Mutation Rate Modulation for Faster GAs


Welcome
Quick Background
Goal and Motivation
GA Setup Details
Expected Results
Actual Results
Code & Numbers
About

Details of this GA Implementation

Two populations of strings.

There are two separate string populations. The first, the "rate population," encodes the mutation rate time-series. The second, the "dummy population," provides the strings that are evolved against a given fitness function.

Actually, there are several dummy populations of 100 strings each. Each rate string has its own dummy population which contains several dummy strings. Each of 100 rate-strings encodes the mutation rates that will be applied to its dummy-population.

Both the dummy and rate populations have 32 bits per string.

Time periods.

Time is divided into epochs and generations. Each epoch contains up to 2000 generations, but the number of generations will terminate after a certain convergence condition has been satisfied. After each generation, the dummy strings are evolved by application of the genetic operators. The rate-strings are evolved at the conclusion of each epoch.

Applying the GA to the rate population.

Reproduction of the rate strings is effected in the normal way: probability of reproduction is based on that rate string's fitness relative to the aggregate fitness of the population of rate strings. The fitness of each rate string is based on the speed of convergence of its associated dummy population. The fitness is the inverse of the number of generations it took the relevant dummy population to converge.

Mutation of the rate-strings is done at a constant probability of 0.0033. Cross-over is also done, with constant probability of 0.6. The election operator is not used on the rate population.

Applying the GA to the dummy populations.

Dummy population evolution is very much the same as as in the simple GA. After each generation, the dummy-string is applied to the fitness function to get a fitness value for that string. That fitness value determines the probability of reproduction for that string in the same way as the rate-strings. Then, cross-over is applied with constant probability 0.6, and then mutation

The mutation rate applied depends on the degree of convergence of the string population. Initially, the first byte of the rate string is used for the mutation rate. If all the strings are within 30% of the true fitness-function optimum, then the mutation rate is the value of the second eight bits of the rate-string divided by 1000. If all the strings are within 15%, the mutation rate is set by the third byte. The fourth byte sets the rate for when all dummy-strings are within 8% of the optimum. When all strings are within 2% of the optimum, the evolution of the dummy strings stops and the dummy population is considered converged.

Ending the simulation.

The simulation is run until 1000 epochs have elapsed or until the rate-strings are all identical, whichever comes first.

Fitness functions applied to the dummy population.

Two fitness functions were tested. The first is a Gaussian fitness function. The second is a sum of a broad (large variance) Gaussian and a narrow Gaussian. The narrow Gaussian's mean is offset from that of the broad Gaussian, producing a doubly-peaked fitness function. The addition of the two Gaussians was done such that there was a false-maximum from the broad Gaussian and a narrow true-optimum at the mean of the narrow Gaussian.[INSERT IMAGES OF FF's]


All contents © 2000 by Gabriel Au and Baldeep Sadhal.