Advanced Design *************** Parsimony Pressure ================== KGP provides the ability to use fitness functions which apply parsimony pressure. This technique allows for programs to be penalised based on their length as a means to combat bloat in the population. Bloat is the phenomena where individuals in the population continue to grow without a corresponding increase in fitness. Parsimony pressure allows longer but better solutions to be promoted in the population, while denying longer programs that aren't any better in terms of fitness. The ``kgp.fitness.Metric`` module provides the basic ``BaseMetric`` which is a metric with no penalty applied, but the ``ParsimonyAwareMetric`` applies a penalty based on a specified coefficient and the program length. In combination with a high percentage of hoist mutations (a destructive operation), the population should remain relatively bloat free. Parallelism =========== KGP's base evolution model makes use of parallelism when evaluating the fitness of individuals in the population. This causes a dramatic speed up over sequential case-by-case evaluation.