com.brownsoft.ag
Class OperadorMultiple

java.lang.Object
  |
  +--com.brownsoft.ag.OperadorMultiple
All Implemented Interfaces:
ICruzamiento, IMotorListener, IMutacion

public class OperadorMultiple
extends java.lang.Object
implements ICruzamiento, IMutacion

Esta clase es utilizada ejecutar un operador genetico (cruzamiento y mutación) a individuos multiparámetros Cada uno de los parametros puede tener un operador distinto

Version:
1.0
Author:
Gustavo Brown
See Also:
IndividuoMultiple

Field Summary
protected  ICruzamiento[] cruzamientos
           
protected  MotorAG motor
           
protected  IMutacion[] mutaciones
           
 
Constructor Summary
OperadorMultiple(ICruzamiento[] cruzamientos)
          Constructor Crea una instancia de OperadorMultiple solamente con el operador de cruzamiento
OperadorMultiple(ICruzamiento[] cruzamientos, IMutacion[] mutaciones)
           
OperadorMultiple(IMutacion[] mutaciones)
          Constructor Crea una instancia de OperadorMultiple solamente con el operador de mutacion
 
Method Summary
 IIndividuo[] cruzar(IIndividuo[] seleccionados)
          Cruza un grupo de individuos
 void finAlgoritmo()
          Avisa que finalizó la ejecución del algoritmo
 void finIteracion()
          Indica que se finaliza la iteracion
 void inicializar(MotorAG motor)
          Inicializa el operador de cruzamiento
 void inicializar(MotorAG motor, double pMutacion)
          Inicializa el operador de mutacion
 void inicioIteracion()
          Avisa que se inicia una nueva iteración
 IIndividuo mutar(IIndividuo individuo)
          Muta un individuo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cruzamientos

protected ICruzamiento[] cruzamientos

mutaciones

protected IMutacion[] mutaciones

motor

protected MotorAG motor
Constructor Detail

OperadorMultiple

public OperadorMultiple(ICruzamiento[] cruzamientos)
Constructor Crea una instancia de OperadorMultiple solamente con el operador de cruzamiento

Parameters:
cruzamientos - Array de ICruzamiento con el operador de cruzamiento para cada parametro

OperadorMultiple

public OperadorMultiple(IMutacion[] mutaciones)
Constructor Crea una instancia de OperadorMultiple solamente con el operador de mutacion

Parameters:
mutaciones - Array de IMutacion con el operador de mutacion para cada parametro

OperadorMultiple

public OperadorMultiple(ICruzamiento[] cruzamientos,
                        IMutacion[] mutaciones)
Method Detail

inicializar

public void inicializar(MotorAG motor)
Inicializa el operador de cruzamiento

Specified by:
inicializar in interface ICruzamiento
Parameters:
motor - MotorAG asociado

inicioIteracion

public void inicioIteracion()
Avisa que se inicia una nueva iteración

Specified by:
inicioIteracion in interface IMotorListener

finIteracion

public void finIteracion()
Indica que se finaliza la iteracion

Specified by:
finIteracion in interface IMotorListener

finAlgoritmo

public void finAlgoritmo()
Avisa que finalizó la ejecución del algoritmo

Specified by:
finAlgoritmo in interface IMotorListener

cruzar

public IIndividuo[] cruzar(IIndividuo[] seleccionados)
                    throws InvalidCrossException
Cruza un grupo de individuos

Specified by:
cruzar in interface ICruzamiento
Returns:
grupo de individuos cruzados
Throws:
InvalidCrossException - en caso de que ocurra algun error

inicializar

public void inicializar(MotorAG motor,
                        double pMutacion)
Inicializa el operador de mutacion

Specified by:
inicializar in interface IMutacion
Parameters:
motor - MotorAG asociado
pMutacion - probabilidad de mutacion

mutar

public IIndividuo mutar(IIndividuo individuo)
                 throws InvalidMutationException
Muta un individuo

Specified by:
mutar in interface IMutacion
Parameters:
individuo - a mutar
InvalidMutationException