The GEP-RNC algorithm
of GeneXproTools 4.0 uses an additional gene domain
(Dc) for encoding random numerical constants (RNCs). In the Dc, the symbols used to represent the random numerical constants can obviously be replaced by other symbols of the same kind.
For the sake of simplicity, we are going to illustrate the mechanisms of RNC mutation 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, terminal, or random constant) is represented by a single character so that each element can be easily identified by its position in the chromosome.
You know already that all the genetic operators contribute, directly or indirectly, to move the random numerical constants around. And, in fact, this constant shuffling is more than sufficient to allow an effective evolution of good models as the appropriate number
of numerical constants is randomly created at the beginning of each run. However,
GeneXproTools 4.0 has a special mutation operator that can be used to replace the value of a particular numerical constant by another
one also randomly generated.
This operator, called direct mutation of random numerical constants or
RNC mutation for short, randomly selects particular targets in the arrays where the random numerical constants are kept, and randomly generates a new constant.
Consider for instance the array:
C = {-0.433, -1.823, 1.255, 0.028, -1.755, -0.036, -0.128, -1.163, 1.806, 0.083}
encoding the random numerical constants of a particular gene. Suppose a mutation occurred at position 7, changing the constant -1.163 occupying that position by -0.494, giving:
C = {-0.433, -1.823, 1.255, 0.028, -1.755, -0.036, -0.128, -0.494, 1.806, 0.083}
The consequences of this kind of mutation are very diverse: they might be neutral in effect (for instance, when the gene itself is neutral; or when the random numerical constant has no expression on the
sub-ET) or they might have manifold effects. The latter occurs whenever the
mutated random numerical constant happens to be used more than once in the
expression of the affected gene.
Let’s illustrate this with an example. Consider, for instance, the following chromosome composed of two genes, each with a Dc length of 8:
0123456789012345678901201234567890123456789012
+-Q?+-c?c?aabcb13168489Q++/d?+cca??dab06383015
For which the random numerical constants of each gene are kept in the following arrays:
C1 = {-0.148, 1.83, -0.503, -1.786, 0.313, -0.302, 0.768, -0.947, 1.487, 0.075}
C2 = {-0.256, -0.026, 1.874, 1.488, -0.8, -0.804, 0.039, -0.957, 0.462, 1.677}
Now suppose a mutation occurred at position 1 in C1, changing the constant 1.83 into -0.036; and the constant
0.039 at position 6 in C2 into 1.255. In this case, the following arrays are obtained:
C1 = {-0.148, -0.036, -0.503, -1.786, 0.313, -0.302, 0.768, -0.947, 1.487, 0.075}
C2 = {-0.256, -0.026, 1.874, 1.488, -0.8, -0.804, 1.255, -0.957, 0.462, 1.677}
As you can see (you’ll need to draw the expression
trees, of course), these chromosomes (before and after mutation) encode different solutions because the random constants expressed in the original individual are slightly different from the ones expressed in the
daughter chromosome.
|