ABSTRACT

The mutation operator currently used in canonical genetic algorithms to manipulate binary vectors (also called binary strings or bitstrings, see Chapter 15) a = (a1, . . . , a) ∈ I = {0, 1} of fixed length was originally introduced by Holland (1975, pp 109-11) for general finite individual spaces I = A1×. . .×A, where Ai = {αi1 , . . . , αiki }. According to his definition, the mutation operator proceeds by: (i) determining the positions i1, . . . , ih (ij ∈ {1, . . . , }) to undergo mutation

by a uniform random choice, where each position has the same small probability pm of undergoing mutation, independently of what happens at other positions, and

(ii) forming the new vector a′ = (a1, . . . , ai1−1, a′i1 , ai1+1, . . . , aih−1, a′ih , aih+1, . . . , a) where a′i ∈ Ai is drawn uniformly at random from the set of admissible values at position i.