GA_MUTATE Function
Performs the mutation operation on an individual’s chromosome.
Usage
result = GA_MUTATE (p, individual)
Input Parameters
p—A scalar float value indicating the mutation probability. p can be any value between 0 and 1. Most applications set the probability to a value in the range 0.01 to 0.001.
individual—An existing individual that undergoes mutation.
Returned Value
result—The GA_MUTATE function returns the mutated data structure.
Input Keywords
Double—If present and nonzero, then double precision is used.
Print—If present and nonzero, this option turns on printing of summary information for the individual showing the chromosome before and after mutation. By default, results are not printed.
Swapmutation—If present and nonzero, this option turns on swap mutation for nominal phenotypes which ensures that after mutation the new individual contains the same nominal phenotype values with at most two of them having swapped positions. Swap mutation has no effect on the mutation of binary, integer or real phenotypes. By default, swap encoding of nominal phenotype values is not used.
Discussion
The GA_MUTATE function performs the genetic algorithm mutation operation on the chromosome of an individual data structure. Each bit assigned to binary, integer and real phenotypes undergoes the mutation operation using probability p. If the bit is zero it is switched to one and vice versa.
Mutation for nominal phenotypes is handled differently since these are not encoded as binary bits. Each bit assigned to a nominal phenotype can take on a range of values from 0, 1, ..., N_categories(i) – 1. Any mutation must preserve this encoding. If the nominal phenotypes are further encoded using PMX crossover, then mutation must preserve that encoding as well.
For non-PMX encoded nominal phenotypes, each nominal phenotype value is mutated with probability p. If it is selected for mutation, its new value is randomly selected from the uniform discrete distribution of values from 0, 1, ..., N_categories(i) – 1.
If PMX encoding is being used, the Swapmutation keyword should be employed. This invokes swap mutation for the nominal phenotypes. Two nominal phenotypes are randomly selected and then their values are swapped with probability p. This ensures that the resulting new individual has the same nominal values, with at most two of them having switched positions.