es.udc.gii.common.eaf.algorithm.operator.replace.mmga
Class ParetoFrontReplaceOperator

java.lang.Object
  extended by java.util.Observable
      extended by es.udc.gii.common.eaf.algorithm.operator.replace.ReplaceOperator
          extended by es.udc.gii.common.eaf.algorithm.operator.replace.mmga.ParetoFrontReplaceOperator
All Implemented Interfaces:
Operator, Configurable

public class ParetoFrontReplaceOperator
extends ReplaceOperator

This class implements a replace operator for the Pareto-front of MMGAAlgorithm. It uses an adaptative grid (hypercube) for managing the unformity of the Pareto-front.

Configuration example:

 <MaximumParetoFrontSize>100</MaximumParetoFrontSize>
 <HypercubeDivisions>25</HypercubeDivisions>
 
 
The values showed are the default values for these parameters. If some parameter is not explicitly set, it takes the default value.

The MaximumParetoFrontSize states how big the Pareto front can get, i.e. how many solutions in the Pareto front are allowed at most.

The HypercubeDivisions parameter states how many divisions per dimension has the hypercube used for crowding.

Since:
1.0
Author:
Grupo Integrado de IngenierĂ­a (www.gii.udc.es)

Field Summary
private  int hypercubeDivisions
           
private  int maximumParetoFrontSize
           
 
Constructor Summary
ParetoFrontReplaceOperator()
          Creates a new instance of ParetoFrontReplaceOperator
 
Method Summary
 void configure(org.apache.commons.configuration.Configuration conf)
          Configures the specific element that implements this method.
 int getHypercubeDivisions()
           
 int getMaximumParetoFrontSize()
           
protected  java.util.List<Individual> replace(EvolutionaryAlgorithm algorithm, java.util.List<Individual> toPopulation)
           
 void setHypercubeDivisions(int hypercubeDivisions)
          Estabishes the number of divisions per dimension of the hypercube.
 void setMaximumParetoFrontSize(int maximumParetoFrontSize)
          Sets the maximum size of the Pareto front.
 
Methods inherited from class es.udc.gii.common.eaf.algorithm.operator.replace.ReplaceOperator
operate
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

maximumParetoFrontSize

private int maximumParetoFrontSize

hypercubeDivisions

private int hypercubeDivisions
Constructor Detail

ParetoFrontReplaceOperator

public ParetoFrontReplaceOperator()
Creates a new instance of ParetoFrontReplaceOperator

Method Detail

replace

protected java.util.List<Individual> replace(EvolutionaryAlgorithm algorithm,
                                             java.util.List<Individual> toPopulation)
Specified by:
replace in class ReplaceOperator

configure

public void configure(org.apache.commons.configuration.Configuration conf)
Description copied from interface: Configurable
Configures the specific element that implements this method.

Specified by:
configure in interface Configurable
Overrides:
configure in class ReplaceOperator
Parameters:
conf - a Configuration object.
See Also:
Configuration

getMaximumParetoFrontSize

public int getMaximumParetoFrontSize()
Returns:
The maximum size of the Pareto front.

setMaximumParetoFrontSize

public void setMaximumParetoFrontSize(int maximumParetoFrontSize)
Sets the maximum size of the Pareto front.

Parameters:
maximumParetoFrontSize - The new maximum Pareto front size.

getHypercubeDivisions

public int getHypercubeDivisions()
Returns:
The number of divisions per dimension of the hypercube.

setHypercubeDivisions

public void setHypercubeDivisions(int hypercubeDivisions)
Estabishes the number of divisions per dimension of the hypercube.

Parameters:
hypercubeDivisions - The new number of divisions per dimension of the hypercube.