|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.brownsoft.ag.fitnessScaler.FitnessScaler | +--com.brownsoft.ag.fitnessScaler.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
Field Summary | |
(package private) double |
sigmaShare
|
(package private) java.util.Hashtable |
sumSigmaShare
|
Fields inherited from class com.brownsoft.ag.fitnessScaler.FitnessScaler |
motor |
Constructor Summary | |
FitnessScalerEspeciacion(IFitnessScaler parent,
double sigmaShare)
Constructor |
Method Summary | |
protected int |
getDistance(IndividuoBitStreamSimple individuo1,
IndividuoBitStreamSimple individuo2)
Obtiene la distancia entre 2 individuos |
protected double |
getSharing(int distance)
Obtiene el sharing (es decir, le aplica la funcion de sharing a la distancia) La implementacion por defecto es un sharing triangular, pero se puede derivar esta clase para cambiar la función |
void |
inicioIteracion()
Avisa que se inicia una nueva iteración |
protected double |
scaleFitness(double fitness)
Este metodo debe ser definido por las subclases de FitnessScaler |
protected void |
setupSigmaShare(IndividuoBitStreamSimple individuo)
Calcula el sigmaShare para un individuo |
Methods inherited from class com.brownsoft.ag.fitnessScaler.FitnessScaler |
fireInicioIteracion, getMotor, getProcessingIndividual, getScaledFitness, getScaledFitness, initScaler |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
java.util.Hashtable sumSigmaShare
double sigmaShare
Constructor Detail |
public FitnessScalerEspeciacion(IFitnessScaler parent, double sigmaShare)
parent
- El parent de este fitness scaler (o FitnessScalerSink)sigmaShare
- el sigma de la funcion de sharing medido en bits de distanciaMethod Detail |
protected double scaleFitness(double fitness)
scaleFitness
in class FitnessScaler
protected int getDistance(IndividuoBitStreamSimple individuo1, IndividuoBitStreamSimple individuo2)
protected double getSharing(int distance)
protected void setupSigmaShare(IndividuoBitStreamSimple individuo)
public void inicioIteracion()
inicioIteracion
in interface IFitnessScaler
inicioIteracion
in class FitnessScaler
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |