es.udc.gii.common.eaf.algorithm.operator.reproduction
Class SeparableColonizationOperator

java.lang.Object
  extended by es.udc.gii.common.eaf.algorithm.operator.reproduction.ReproductionOperator
      extended by es.udc.gii.common.eaf.algorithm.operator.reproduction.SeparableColonizationOperator
All Implemented Interfaces:
Operator, Configurable

public class SeparableColonizationOperator
extends ReproductionOperator

Modification of the colonzation operator (@see ColonizationOperator) to deal with separable functions. It allows filling vacant sites that are freed by extinct individuals (that is, those such that Si = 0. This operator is applied to each extinct individual in two ways.

With a probability τ, a totally new solution pn ∈ Ω will be generated. Otherwise exploitation on surviving solutions takes place throughh colonization. For a given solution p i, we choose one of the surviving solutions, say p b. Now the extinct solution will be "attracted" toward pb. The solution implemented in this case is:

pi(t+1) = pb(t) + ρ*λ*( pb(t) - pi(t)), if ε > τ

pi(t+1) = pn, if ε ≤ τ

where ε ∈ [0,1] is a random number, λ ∈ [-1,1] (both with uniform distribution) and ρ and τ are given constants of our operator. So we can see that ρ describes a maximum radius around surviving solutions and τ acts as a temperature.

Author:
Grupo Integrado de Ingenieria (http://www.gii.udc.es)

Field Summary
private  IndividualChooser chooser
           
private  Parameter lambdaGenerator
           
private  Parameter rho
           
private  Parameter tau
           
 
Constructor Summary
SeparableColonizationOperator()
           
 
Method Summary
 void configure(org.apache.commons.configuration.Configuration conf)
           
 IndividualChooser getChooser()
           
 Parameter getRho()
           
 Parameter getTau()
           
 java.util.List<Individual> operate(EvolutionaryAlgorithm algorithm, java.util.List<Individual> individuals)
          Execute this operator over a group of individuals.
 void setChooser(IndividualChooser chooser)
           
 void setRho(Parameter rho)
           
 void setTau(Parameter tau)
           
 
Methods inherited from class es.udc.gii.common.eaf.algorithm.operator.reproduction.ReproductionOperator
checkBounds
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rho

private Parameter rho

tau

private Parameter tau

chooser

private IndividualChooser chooser

lambdaGenerator

private Parameter lambdaGenerator
Constructor Detail

SeparableColonizationOperator

public SeparableColonizationOperator()
Method Detail

configure

public void configure(org.apache.commons.configuration.Configuration conf)
Specified by:
configure in interface Configurable
Overrides:
configure in class ReproductionOperator

operate

public java.util.List<Individual> operate(EvolutionaryAlgorithm algorithm,
                                          java.util.List<Individual> individuals)
                                   throws OperatorException
Description copied from interface: Operator
Execute this operator over a group of individuals. This method will be invoked by the current algorithm during its execution. It will be applied on a list of individuals and will return a list of modified individuals.

This method will recive two parameters. The current algorithm, to visit it if it is necessary, for example, to get some parameter of the current execution. And a list of individuals on wich we will apply this operator.

Parameters:
algorithm - the current algorithm, to visit when it is necessary.
individuals - list of individuals on wich we will apply the operator.
Returns:
the result of apply this operator to a individuals' lisr.
Throws:
OperatorException - when occurs some type of error during the execution of this operator.

getChooser

public IndividualChooser getChooser()

setChooser

public void setChooser(IndividualChooser chooser)

getRho

public Parameter getRho()

setRho

public void setRho(Parameter rho)

getTau

public Parameter getTau()

setTau

public void setTau(Parameter tau)