GeneXproTools 4.0 implements the Mean Absolute Error
(rMAE, with the small "r" indicating that it is based on
the relative error rather than the absolute) fitness function both with and without parsimony pressure. The
version with parsimony
pressure puts a little pressure on the size of the evolving
solutions, allowing the discovery of more compact models.
The rMAE fitness function of
GeneXproTools is, as expected, based on the standard
mean absolute error,
which is usually based on the absolute error, but obviously the relative error can also be used
in order to create a slightly different fitness measure.
The rMAE E_{i} of an individual program
i is evaluated by the equation:
where P_{(ij)} is the value predicted by the individual program
i for fitness case j (out of n fitness cases); and
T_{j} is the target value for fitness case j.
For a perfect fit, P_{(ij)} = T_{j}
and E_{i} = 0. So, the rMAE index ranges from 0 to infinity, with 0 corresponding to the ideal.
As it stands, E_{i} can not be used directly as fitness since, for fitness proportionate selection, the value of fitness must increase with efficiency.
Thus, for evaluating the fitness f_{i} of an individual program
i, the following equation is used:
which obviously ranges from 0 to 1000, with 1000 corresponding to the ideal (the coefficient 1000 allows a fairer distribution of fitnesses for selection).
Its counterpart with parsimony pressure, uses this fitness
measure f_{i}
as raw fitness rf_{i} and complements
it with a parsimony term.
Thus, in this case, raw maximum fitness rf_{max} =
1000.
And the overall fitness fpp_{i} (that is, fitness with parsimony pressure) is evaluated by the formula:
where S_{i} is the size of the program, S_{max} and
S_{min} represent, respectively, maximum and minimum program sizes and are evaluated by the formulas:
S_{max} = G (h + t)
S_{min} = G
where G is the number of genes, and h and t are the head and tail sizes (note that, for simplicity, the linking function was not taken into account). Thus, when
rf_{i} = rf_{max} and S_{i} =
S_{min} (highly improbable, though, as this can only happen for very simple functions as this means that all the subETs are composed of just one node),
fpp_{i} = fpp_{max}, with fpp_{max} evaluated by the formula:
