Chapter 4 Introduction to Genetic Algorithms
4.4 Advances in Genetic Algorithms
4.4.5 Genetic operators
In the standard genetic algorithm, crossover and mutation are used as genetic operators. In recent work, genetic algorithms have been implemented using only the mutation operator [BEAS93]. The motivation for this type of genetic algorithm is based on organisms in nature that reproduce asexually. In his review of previous work, Beasley [BEAS93] reports that a genetic algorithm using only mutation resembles a primitive form of evolution. Spears [SPEA93] found that a suitably modified mutation operator may perform just as well as the crossover operator.
As genetic algorithms were used to solve various problems, standard genetic operators were found to be insufficient when applied to different problem domains. These operators were then varied or changed based on the problem domain. Section 4.4.5.1 covers different types of mutation operators while section 4.4.5.2 covers the different types of crossover operators that were cited in the literature. Section 4.4.5.3 describes the reproduction operator. Finally, section 4.4.5.4 discusses the difference between application rates and operator probabilities.
4.4.5.1 Mutation
Goldberg initially described mutation as a secondary operator [GOLD89]. However, the use of different representations for solving problems and the development of evolutionary algorithms have resulted in a greater reliance on the mutation operator to explore the search space.
Boundary mutation is used for individuals that are represented using integers or float values [OBIT98]. With this mutation, a gene changes to an upper or lower bound value. For example, consider an individual 6-3-4-7. A boundary mutation will result in changing the 4 to a lower or upper bound value such as 0 or 10. The resultant offspring will be either 6-3-0-7 or 6-3-10-7.
Uniform mutation [OBIT98] changes the gene to a random value within a specified range. In the previous example, the first gene (6) will change to a random value where the range is
specified by the user. If the range is set between 0 and 4, then the resultant offspring will be 1-3-4-7, 2-3-4-7 or 3-3-4-7.
4.4.5.2 Crossover
Besides the one point crossover described in section 4.3.4.2, several other variants of the crossover operator exist.
Two point crossover [SPEA91a] selects two crossover points and the bits between the crossover points are exchanged between individuals. In the example in Figure 4.5, two crossover points are selected. The fragments between these two crossover points are 1110 and 0000 for each parent respectively. These fragments are then swapped between the parents resulting in offspring Z1 and Z2.
Parent X 01100111010101
Parent Y 11111000011110
Resultant offspring Z1 01100000010101 Resultant offspring Z2 11111111011110
Figure 4.5: Two point crossover
In uniform crossover [SPEA91a], bit positions of the two parents are randomly selected. The bits in these positions are then swapped between the parents resulting in offspring Z1 and Z2. In the example in Figure 4.6, five bit positions are randomly selected. The values in these bit positions are swapped between parents resulting in offspring Z1 and Z2. The uniform crossover operator is used to provide a greater exploration of the search space and is controlled by the number of bits that will be exchanged between parents [SPEA91b].
Parent X (crossover points in bold) 01100111010101 Parent Y (crossover points in bold) 11111000011110 Resultant offspring Z1 01100001011100 Resultant offspring Z2 11111110010111
Figure 4.6: Uniform crossover
Goldberg et al. [GOLE89] implemented the “Cut and Splice” crossover operator. This operator is similar to the one point crossover operator with the exception that each parent may have a different crossover point as depicted in Figure 4.7. This results in two or more offspring having different string lengths. According to Mitchell [MICH98], producing individuals with varying string lengths is advantageous as the probability of a string containing the necessary information to produce an acceptable solution is greater.
Parent X (crossover points in bold) 01100111010101 Parent Y (crossover points in bold) 11111000011110
Resultant offspring Z1 011000011110
Resultant offspring Z2 1111100111010101
Figure 4.7: “Cut and Splice” crossover operator
Eiben et al. [EIBE94] considered a multiparent crossover operator. In this case, crossover is applied to three or more parents resulting in three or more offspring. According to Eiben [EIBE95], the use of more than two parents allows for greater diversity, thus reducing the possibility of premature convergence.
Figure 4.8 illustrates a crossover operator involving three parents W, X and Y resulting in an offspring Z1, Z2 and Z3. The first fragment from parent W, the second fragment from parent X and the third fragment from parent Y result in offspring Z1. This is an example of diagonal crossover and involves two crossover points. Alternative implementations of this operator include choosing multiple crossover points as well as recombination based on occurrence (the bits that are included the most in the parents are included in the offspring [EIBE94]) or fitness (the number of bits from each parent is proportional to the fitness of the parent).
Parent W 111100001111
Parent X 001100110011
Parent Y 101010101010
Resultant offspring Z1 111100111010
Resultant offspring Z2 001110101111
Resultant offspring Z3 101000000011
Figure 4.8: Diagonal crossover operator 4.4.5.3 Reproduction
According to Banzhaf [BANZ98], the reproduction operator creates an offspring by copying the parent (the offspring is an exact duplicate of the parent).
4.4.5.4 Genetic operator probability versus genetic operator application rate
In the standard genetic algorithm [GOLD89], each genetic operator is applied with a given probability. Genetic operator application rates can also be used and differ from operator probabilities in that it specifies how many individuals in the new population are created using each genetic operator. For example, having crossover and mutation application rates of 70% and 30% respectively indicate that 70% of the offspring are created using the crossover
operator while 30% of the offspring are created using only the mutation operator. A high mutation application rate results in a more random search while the local search is reduced.
As a result, the genetic algorithm will take longer to converge. A high crossover application rate will result in a more local search which may increase the possibility of premature convergence.