Mutations can occur anywhere in the chromosome. However, the structural organization of chromosomes must remain intact. In the heads, any symbol can change into another (function or terminal); in the tails, terminals can only change into terminals. This way, the structural organization of chromosomes is maintained, and all the new individuals produced by mutation are structurally correct programs.
Typically, I use a mutation rate (pm) equivalent to two point mutations per chromosome. Consider the following three-genic chromosome:
012345678900123456789001234567890
Q+bb*bbbaba-**--abbbaaQ*a*Qbbbaab |
Suppose a mutation changed the ‘*’ at position 4 in gene 1 to ‘/’; the ‘-’ at position 0 in gene 2 to ‘Q’; and the ‘a’ at position 2 in gene 3 to ‘+’, obtaining:
012345678900123456789001234567890
Q+bb/bbbabaQ**--abbbaaQ*+*Qbbbaab |
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 ET is 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. In summary, in GEP there are no constraints neither in the kind of mutation nor the number of mutations in a chromosome: in all cases the newly created individuals are syntactically correct programs.
|