Classic GeneHunter Parameters
Chromosome length - recall from Implementation Details in Chapter 2, that the chromosome length is the number of genes in a chromosome (for continuous chromosomes). This translates into the number of bits available to hold the variable in the computer. More bits mean higher precision answers. Suppose, for example, that you decide to find the minimum of y = x^2 for x between -5 and 5, which we already know in advance is zero. If the chromosome length is 8 bits, then the "interval" between possible solutions is 1/256 or approximately .0039. Since -5 will be mapped to 0 and 5 will be mapped to 255, and there are an even number (256) of positions between, then the closest you could get to zero is +-.0039/2 = +-.00195. If the chromosome length is 32 bits, the best solution is closer to +- 0.0000000001! So solutions may be much more precise with 32 bits.
Why not use 32 bit precision all the time? The reason is that with 8 bits there are only 256 values to be searched for each chromosome, while with 32 bits there are 4,294,967,296! Crossovers and mutations take much longer to make similar progress in this "larger space" of possible solutions.
In fact, one possible strategy for problem solving might be to first use 8 bit chromosomes until little progress is being made towards a better solution (no better solutions found after a reasonable number of generations). Then interrupt evolution and change to 16 bits, making sure to tell GeneHunter to "Continue" searching instead of to "Start" searching. Later, switch to 32 bits in the same way. This method assumes, of course, that you require highly precise solutions, which might not be the case.
If you choose continuous chromosomes of the integer type, the parameter "Chromosome length" will not be used. GeneHunter uses 2-byte integers to store integer chromosomes. This allows you to mix, in one model, integer chromosomes with true continuous chromosomes of different ranges.
Crossover rate - the crossover rate is the probability that the crossover operator will be applied to a particular chromosome during a generation. These probabilities range from 0 to 1. This factor should be set fairly high, and the default of .9 is usually good.
Mutation rate - the mutation rate is the probability that the mutation operator will be applied to a particular chromosome during a generation. The probability ranges from 0 to 1, and should be set fairly low. Mutation rates in the range .001 to .05 are usually reasonable, with the default of .01 being good for a wide range of problems.
Generation Gap - It is sometimes desirable that individuals in the population be allowed to "live" longer and go into the next generation. This is especially true if the individuals selected to live are the most fit ones in the population. The fraction of those that do NOT go into the next generation is called the Generation Gap. It is specified as a fraction from 0.0 to 1.0. For example, if the Generation Gap is set at .98, then only 2 percent will go directly into the next generation without being subject to crossover and mutation, and 98 percent will die after possibly reproducing. If the population size is 50, then .02 * 50=1 individuals will be sent to the next generation. If Elitist Strategy is on, then the individuals sent directly to the next generation will always be the most fit individuals. Otherwise, they will be randomly selected. Set the Generation Gap so that only one or two individuals go into the next generation.
Elitist Strategy - When the Generation Gap is set (see previous section), some individuals live into the next generation after they breed or produce mutations. With Elitist Strategy, the individuals who live are the most fit (elite) individuals. Elitist Strategy should almost always be on so that the most desirable genetic characteristics are available for breeding in subsequent generations. In some cases, it is helpful to start GeneHunter with the Elitist Strategy option off to allow the population to evolve without significant selective pressure. After a while, you may turn the Elitist Strategy option on in order to concentrate the optimization process around the best solutions.
Diversity Operator - Diversity is a form of slight mutation, producing individuals that are only slightly changed, as opposed to the major changes in individuals that the mutation operator can produce. For some problems, Diversity can make a major contribution to evolutionary progress; in others it will not make much difference at all. However, it should be utilized in most cases. Diversity has been called “creep” in other genetic algorithm implementations.