scaling: Linear fitness scaling

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/scaling.R

Description

This function implements a linear fitness scaling algorithm. For multiple subpopulations scaling is performed separately for each subpopulation.

Usage

1
scaling(ObjV, Smul = 2, SUBPOP = 1)

Arguments

ObjV

a vector containing the values of individuals fitness.

Smul

an optional value used to determine the upper bound, default is set to 2.

SUBPOP

an optional value indicating subpopulations. Default is set to 1 subpopulation.

Details

scaling converts the objective values, ObjV, into a fitness measure with a known upper bound, determined by the value of Smul, such that,

F(xi) = a*f(xi) + b

where f(xi) is the objective value of individual xi, a is a scaling coefficient, b is an offset and F(xi) is the resulting fitness value of individual xi. If fave is the average objective value in the current generation, then the maximum fitness of the scaled population is upper bounded at fave * Smul. If Smul is ommited the the default value is set to 2. The average fitness of the scaled population is also set to fave.

In the case of some of the objective values being negative, scailing attempts to provide an offset, b, such that the scaled fitness values are greater than zero.

Value

a vector containing the individual fitnesses for the current population.

Note

scaling is not recommended when fitness functions produce negative results as it will become unreliable. It is included in this version of package only for the sake of completeness.

Author(s)

The original matlab implementation of scaling was written by Andrew Chipperfield. The R implementation was written by David Zhao.

References

Goldberg, D. E. (1989) Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley.

See Also

ranking, reins, rws, select, sus

Examples

1
2
3
4
5
Chrom = crtbp(40,10)$Chrom

#Ojbective function is the sum of individuals
ObjV = apply(Chrom,1,sum)
FitnV = scaling(ObjV)

drizztxx/gatbxr documentation built on Dec. 27, 2021, 2:26 a.m.