This module contains code related to fitness evaluation. The
main purpose of the code is to both evaluate fitnesses of individuals
and to sort individuals by fitness. These are intended to all be
higher order functions that assume nothing about the purpose of the
individuals or the types of inputs being used for fitness testing.
The only assumption made currently is that the outputs for test cases
are floating point numbers. That likely should change for general
|:: a||Expressed individual
|-> a -> b -> Double -> Double -> Double||Fitness function
|-> [b]||List of symbol tables for test cases
|-> [Double]||List of expected outputs for test cases
|-> Double||Range of selection. M in original
GEP paper equations for fitness.
|-> Double||Fitness value for given individual
|Fitness evaluator for generic individuals. This needs to go away
and use a more general approach like evaluateFitness above.
|:: [Double]||Fitness values
|-> [(Double, Individual)]||Paired fitness/individuals after
|Given a list of fitness values and a corresponding list of individuals,
return a list of tuples pairing the fitness value with the individuals for
only those individuals that have a valid fitness value. This means those
that are +/- infinity or NaN are removed.
|Sort a set of individuals with fitness values by their fitness
|Produced by Haddock version 2.6.1|