Package com.brownsoft.ag.fitnessScaler

Class Summary
FitnessScaler Esta clase debe ser extendida por las clases que desean escalar el fitness de un Individuo (por ejemplo para la seleccion) El fitness escalado de un individuo se obtiene mediante la ejecución de MotorAG.getFitness(IIndividuo)
FitnessScalerAxB Este scaler realiza la operacion A * x + B donde x es el fitness actual a escalar Los parametros A y B se indican al momento de instanciacion
FitnessScalerEspeciacion Este scaler implementa un algoritmo de nichos paralelos, como se describe en el libro de Goldberg(capitulo 5) El fitness se escala mediante la siguiente fórmula fitness_escalado = fitness_original/ Sum(s(d(xi, xj)) donde Sum denota sumatoria d indica distancia entre 2 individuos s indica la 'sharing function' que en este caso es triangular La funcion de sharing triangular es como sigue: sharing(distancia) = (sigmaShare - distancia) / sigmaShare y para distancias mayores que sigmaShare la funcion de sharing da 0 Este scaler solo funciona con individuos del tipo bitString
FitnessScalerInversa Este scaler realiza la operacion (1/fitness) con lo cual invierte el tipo de optimizacion Es decir, que para cada fitness que llega en la cadena, retorna el inverso de ese fitness
FitnessScalerPositive Este scaler se asegura que al momento de iniciar una iteración, se ajusten los parametros para que todos los fitness de la poblacion actual sean positivos.
FitnessScalerSink Esta clase implementa el último eslabon de una cadena de FitnessScalers Es decir, que por ejemplo puedo definir una cadena de scalers de esta manera motor.setFitnessScaler(new FitnessScalerAxB(new FitnessScalerPositive(new FitnessScalerSink()), 2,3));