For the sake of simplicity, we are going to illustrate the mechanisms of inversion using the compact, linear representation of chromosomes used to describe the
structural organization of
chromosomes in the previous chapter. In this representation, each element (function or terminal) is represented by a single character so that each element can be easily identified by its position in the chromosome.
In Gene Expression Programming, the inversion operator is restricted to the heads of
genes. Here any sequence might be randomly selected and inverted. The default value for the
inversion rate in GeneXproTools 4.0 is 0.1, as this operator is usually used together with other, more powerful operators such as
mutation. But if you want to introduce genetic modification by using this operator alone,
you will obtain better results with inversion rates of 1.0.
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.
Consider the following chromosome composed of three genes, each with a head length of 7:
012345678901234012345678901234012345678901234
-/Qbaadcdbadbdc-cbd+Qdbaabdacd+QbddQ-ddabdbbb
Suppose that the sequence “/Qb” in gene 1 (positions 1-3) was picked up to be inverted. Then the following chromosome is formed:
012345678901234012345678901234012345678901234
-bQ/aadcdbadbdc-cbd+Qdbaabdacd+QbddQ-ddabdbbb
Note 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.
|