jaga.evolve
Class SAGAMutator

java.lang.Object
  |
  +--jaga.evolve.SAGAMutator
All Implemented Interfaces:
GeneticOperator, java.io.Serializable

public class SAGAMutator
extends java.lang.Object
implements GeneticOperator

This Genetic Operator attempts to implement the mutation rate m = ln( rho ), where rho is the selective advantage of the fittest possible individual compared to the population average.

In this implementation we can configure the floor and roof of this rate (in mutations per genotype) as well, so we can set what the maximum and minimum mutation rates are; such that:

m_max = km * ln( inf ) + kc = mutRoof and m_min = km * ln( 1 ) + kc = mutFloor.

kc is clearly mutFloor. km is calculated using the a minimum fitness value d, so mutRoof = km * ln( 1 / d ) + 1.

See Also:
Serialized Form

Constructor Summary
SAGAMutator(int mutFloor, int mutRoof)
          Creates new SAGAMutator
SAGAMutator(int mutFloor, int mutRoof, int fitnessIndex)
           
SAGAMutator(int mutFloor, int mutRoof, int fitnessIndex, int rangeStart, int rangeEnd)
           
 
Method Summary
 void operate(Selector selector, Population oldPopulation, Population newPopulation, int howMany)
          method that adds genotypes to the new population by extracting some from the old one and manipulating them in some way.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SAGAMutator

public SAGAMutator(int mutFloor,
                   int mutRoof,
                   int fitnessIndex,
                   int rangeStart,
                   int rangeEnd)

SAGAMutator

public SAGAMutator(int mutFloor,
                   int mutRoof,
                   int fitnessIndex)

SAGAMutator

public SAGAMutator(int mutFloor,
                   int mutRoof)
Creates new SAGAMutator
Method Detail

operate

public void operate(Selector selector,
                    Population oldPopulation,
                    Population newPopulation,
                    int howMany)
method that adds genotypes to the new population by extracting some from the old one and manipulating them in some way.

WARNING: Will not work with pops with unevaluated individuals.

Specified by:
operate in interface GeneticOperator
Parameters:
oldPopulation - in parameter having all the original genotypes
newPopulation - in/out parameter where the next generation of genotypes is being built
howMany - how many new genotypes to add to the new population

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object