In gene expression programming, mutations can occur anywhere in the chromosome. However, the structural organization of chromosomes must remain intact, that is, in the heads any symbol can change into another (function or terminal), whereas in the tails terminals can only change into terminals. This way, the structural organization of chromosomes is preserved, and all the new individuals produced by mutation are structurally correct programs.
Consider the following three-genic chromosome:
012345678901201234567890120123456789012 |
/bQa**bbbbaba--+*Q-abbbabaQ*a+**baabbba |
Suppose a mutation changed the “*” at position 5 in gene 1 to “a”; the “-” at position 1 in gene 2 to “Q”; and the “a” at position 2 in gene 3 to “*”. In this case the following chromosome is obtained:
012345678901201234567890120123456789012 |
/bQa*abbbbaba-Q+*Q-abbbabaQ**+**baabbba |
Note that if a function is mutated into a terminal or vice versa, or a function of one argument is mutated into a function of two arguments or vice versa, the expression tree is usually modified drastically. Note also that the mutation on gene 1 is an example of a neutral mutation, as it occurred in the non-coding region of the gene. It is worth emphasizing that the non-coding regions of GEP chromosomes are ideal places for the accumulation of neutral mutations which are known to play an important role in evolution
(Kimura 1983; Ferreira
2002b).
In summary, in gene expression programming there are no constraints both in the kind of mutation and the number of mutations in a chromosome as, in all cases, the newly created individuals are syntactically correct programs.
|