• No results found

2.4 Evolutionary algorithms

2.4.4 Genetic operators

A brief overview of some fundamental genetic algorithm operators, namely selection, crossover and mutation, is presented in this section. Because these operators are applicable to both single and multiobjective problems, no differentiation is made between these two classes of optimisation problems in this section.

Selection operators

Selection refers to the process of selecting parent solutions from a population based primarily on their fitness values and, secondarily on their relative density values, to form a mating pool from which offspring solutions are created. In evolutionary algorithms, selective pressure is a term widely used to characterise the high emphasis on selection of the best individuals [3]. Selection pressure may be interpreted as the driving force behind improving the average population fitness over the course of generations which, in turn, has an impact on the convergence properties of the algorithm. Because selection is completely independent of the remaining operators applied in the algorithm, it may be characterised as a universal, problem-independent, operator. According to Back [3], the impact of the control parameters on the selection pressure should be simple and predictable to some extent. Additionally, a single parameter is preferred for the implementation of selective pressure, and the range of selective pressure that may be achieved by varying this control parameter should be as large as possible.

Many types of selection operators are described in the literature, all essentially with the single collective purpose of selecting individuals from the population in a probabilistic manner and inserting them in the mating pool. Examples of selection operators which may be employed in evolutionary algorithms include fitness proportion selection (also known as roulette wheel selection), where the probability of an individual being selected is simply assessed as the quotient of its fitness level and the sum of the fitness levels of all individuals in the population; stochastic universal sampling, where weaker individuals are given a fairer chance of being selected than in fitness proportion selection; tournament selection, where a certain number of individuals chosen at random from the population compete with one another in terms of fitness levels from whence a victor is selected8; and truncation selection, where the population members are ranked by fitness, and a certain proportion of the fittest individuals are all selected, each to reproduce a certain number of times. The interested reader is referred to [81] for a description on the workings of these selection procedures.

Crossover operators

The crossover genetic operator combines the chromosomes of two parent solutions in order to produce one or more offspring solutions. The motivation behind the use of this operator is that an offspring solution might turn out better than both of its parents if it acquires good sets of genes from each of them. There exist many types of crossover operators in the literature, and the type of operator to be implemented depends mostly on the type of optimisation problem at hand and, in particular, on the nature of the solution representation scheme adopted.

Examples of crossover operators which may be employed include single point crossover, in which all genetic data beyond the crossover point in each chromosome string is swapped between the two strings; two-point crossover, in which all genetic material between two crossover points in each chromosome string is swapped between the two strings; cut-and-splice crossover, in which each parent solution has a separate crossover point, causing the resulting offspring chromosome strings to vary in size; and uniform crossover, which may be viewed as a multipoint crossover in which the number of crossover points is unspecified a priori. The interested reader is referred to [81] for a more thorough description on the workings of these crossover procedures. Graphical illustrations of the first three crossover operators listed above may be found in Figure 2.5 for the case where the chromosome strings are represented as binary coded genotypes.

8With tournament selection, selection pressure is adjusted by altering the tournament size, where a larger

2.4. Evolutionary algorithms 33 1 1 0 0 1 0 1 1 Parent 1 genotype 0 1 1 0 1 0 1 0 Parent 2 genotype 1 1 0 0 1 0 1 0 Offspring 1 genotype 0 1 1 0 1 0 1 1 Offspring 2 genotype

(a) Single point crossover.

1 1 0 0 1 0 1 1 Parent 1 genotype 0 1 1 0 1 0 1 0 Parent 2 genotype 1 1 1 0 1 0 1 1 Offspring 1 genotype 0 1 0 0 1 0 1 0 Offspring 2 genotype (b) Two-point crossover. 1 1 0 0 1 0 1 1 Parent 1 genotype 0 1 1 0 1 0 1 0 Parent 2 genotype 1 1 0 0 1 1 0 Offspring 1 genotype 0 1 1 0 1 0 0 1 1 Offspring 2 genotype (c) Cut-and-splice crossover.

Figure 2.5: Illustration of three popular crossover procedures in the literature.

Mutation operators

The individuals having the best fitnesses are reproduced more often than the others and replace the worst ones. If the variation operators are inhibited, the best individual should reproduce more quickly than the others, until its copies completely take over

the population. — J. Dr´eo [48]

Mutation is often considered a minor operator in genetic algorithms. It is aimed at maintaining a minimum level of diversity among population individuals, which the crossover operator may perhaps not be able to ensure at all times, in an attempt to move the search toward unexplored regions of the search space with the hope of finding high-quality solutions there. A mutation operator typically modifies an offspring solution stochastically in such a way that the result of the transformation is close to its original chromosome form (i.e. a local search is performed). The proportion of mutated individuals in the offspring population is controlled using a mutation rate parameter. A mutation operator with a significantly high mutation rate is expected to produce the desired results in terms of preservation of diversity, particularly in respect of preventing population individuals from becoming too similar to one another. As a result, it is expected to slow down the evolution progress to a certain extent. Moreover, according to Dr´eo [48], mutations may be particularly useful for significantly improving the quality of solutions discovered when most of the population is located in the neighbourhood of a global optimum or Pareto front (whereas the importance of the crossover operator diminishes once the population reaches that stage in the algorithm), provided that the mutation rate is high enough. Setting the mutation

rate too high, however, may result in individuals being produced almost independently from the genetic material passed on to them from their parents, which may cause the algorithmic progress to mimic a collection of primitive random walks in the solution space.

Mutation is typically performed by altering the state of a gene in a chromosome string according to a certain probability, which is obtained from the mutation rate parameter. As with crossover operators, the type of mutation operator to be implemented depends mostly on the type of opti- misation problem at hand. Examples of mutation operators which may be employed include bit string mutation, where alleles of binary coded genotypes are each altered according to a certain probability based on the length of the chromosome string and the mutation rate; boundary mu- tation, where alleles are replaced by either one of user-defined upper or lower bounds according to a certain probability; uniform mutation, where alleles are replaced by a uniform random value selected between user-defined bounds according to a certain probability; and non-uniform mutation, where the mutation rate is altered throughout the algorithm in order to prevent the population from stagnating during the early stages of evolution while increasing the expected number of mutated offspring solutions during later stages of the process. An example of bit string mutation is shown in Figure 2.6. The interested reader is referred to [81] for a more detailed description of the workings of the mutation operators mentioned above.

1 1 0 0 1 1 0 1

Pre-mutated genotype

1 1 0 0 1 0 0 1

Post-mutated genotype

Figure 2.6: Illustration of a bit string mutation operator.