Hide Comments
Hide Comments

Comments (0)

Specifies the parsimony coefficient to use when trying to control bloat using bsSizeParsimonyPressure and bsDepthParsimonyPressure.

When generating the  WeightedFitness of an individual, the  Fitness is reduced by the size or depth its genetic program multiplied by the ParsimonyCoefficient. This has the effect for evolving for smaller genetic programs over larger genetic programs.


bsCovariantSizeParsimonyPressure and bsCovariantDepthParsimonyPressure also use the ParsimonyCoefficient when evaluating the WeightedFitness. However, these two methods recalculate the ParsimonyCoefficient themselves every generation using the formula CoVariance(ProgramData, FitnessData) / Variance(ProgramData).

Namespace: RSGenerics.GeneticProgramming



  property ParsimonyCoefficient: TGAFloat read FParsimonyCoefficient write SetParsimonyCoefficient stored IsParsimonyCoefficientStored;

Property Value

Type: TGAFloat


For bsSizeParsimonyPressure and bsDepthParsimony methods, the value of the ParsimonyCoefficient property is very important. As stated in A Field Guide to Genetic Programming, "the parsimony pressure method effectively treats the minimisation of size as a soft constraint and attempts to enforce this constraint using the penalty method, i.e., by decreasing the fitness of programs by an amount that depends on their size. The penalty is typically simply proportional to program size. The intensity with
which bloat is controlled is, therefore, determined by the parsimony coefficient. The value of this coefficient is very important: too small a value and runs will still bloat wildly; too large a value and GP will take the minimisation of size as its main target and will almost ignore fitness, thus converging towards extremely small but useless programs"

expandingSee Also

Comments (0)