Parameters of the Evolutionary Operators
The type of crossover for continuous chromosomes is specified by the second argument of the function SetOperators. It is set by the SIMPLE_CONT_CROSS constant defined in GALIB32.BAS. We can regulate the degree of chromosome mixing with the help of the third argument of the SetOperators function. This parameter sets the probability that the crossover operator will be applied to a pair of corresponding chromosomes. If this probability is equal to 0, all chromosomes are copied from one of the parents to the offspring. On the average, if we would like to have one crossover point per all chromosomes of an individual, we may use the probability equal to 1/n, where n stands for the number of chromosomes per individual.
As we discussed in Chapter 2 , mutation is performed after a new offspring is generated, i.e., we have to decide whether to invert each particular binary bit in each chromosome. To do this, we use a mutation rate parameter, which gives the probability of inverting the value of a bit (or in more biological terms, of changing the value of an allele). If we set the third parameter of the SetOperators function to zero, switch off crossover, and set the mutation probability equal to 1, it will lead to a completely stochastic search with no succession from generation to generation. Note that the mutation rate is given per bit in a chromosome. Continuous chromosomes may have different bit resolutions, so the probability of mutation per chromosome is given by the expression:
total_mutation_rate = 1-(1-mutation_rate)^k,
where total_mutation_rate is the probability of a chromosome mutation; mutation rate is the rate of mutation per bit; and k is the number of bits in a chromosome (8, 16 or 32). The probability of mutation of an individual is calculated by:
where m stands for the total number of bits in the representation of all chromosomes of an individual.