We know already that the modifications bound to make a big impact occur usually in the heads of genes. Therefore, the inversion operator was restricted to these regions.
Here any sequence might be randomly selected and inverted.
In gene expression programming, the inversion operator randomly chooses the chromosome, the gene to be modified, and the start and termination points of the sequence to be inverted. It is worth pointing out that this is the first time the inversion operator is described in gene expression programming.
Consider, for instance, the following three-genic chromosome:
012345678901201234567890120123456789012 |
/+aQ*aaabaaab/aa/baaababab-Q++aQababaab |
Suppose that the sequence “aQ*” in gene 1 (positions 2-4) was picked up to be inverted. Then the following chromosome is formed:
012345678901201234567890120123456789012 |
/+*Qaaaabaaab/aa/baaababab-Q++aQababaab |
It is worth pointing out that, since the inversion operator was restricted to the heads of genes, there is no danger of a function ending up in the tails and, consequently, all the new individuals created by inversion are syntactically correct programs.
|