Skip to content

Fitness Scaling

KilianB edited this page Oct 8, 2018 · 8 revisions

Fitness Scaling

Each individual possess a fitness value indicating how good of a solution this object represents. The lower the value, the better the gene combination. A fitness of 0 represents an optimal solution. In order to work with fitness values they has to be normalized to a known range. The genetic algorithm uses the newly computed metric to determine which individuals are picked how often as parents for the next generation see: selection strategies for more information how it is used.

On the contrary to the normal fitness value a higher scaled fitness indicates a better result.

On the scaled fitness value ... depend e.g. parent selection and in some cases crossover strategies. Depending on how fitness scaling alters the fitness value

In order to work with fitness values

Rank Scaling Default

Rank scaling allows fit individuals to play a more dominant role in reproduction while still giving weaker individuals a chance to participate in the overall procedure. Individuals are sorted ascendingly based on their fitness value and assigned a rank equivalent to it's position. Individuals with the exact same fitness will be assigned the same rank.

Init

.withScalingStrategy(new RankScaling())

Top Scaling

Top scaling .withScalingStrategy(new TopScaling(double topPercentage))

Proportional scaling

.withScalingStrategy(new ProportionalScaling())

Age Scaling

.withScalingStrategy(new AgeScaling(ScalingStrategy starat))

Take the scaled fitness and multiply the incomming with rank scaling..