org.biojavax.ga
Interface GeneticAlgorithm

All Superinterfaces:
Changeable
All Known Implementing Classes:
AbstractGeneticAlgorithm, SimpleGeneticAlgorithm

public interface GeneticAlgorithm
extends Changeable

The class that runs the cycles of reproduction, evolution and selection, potentially on multiple Populations

Since:
1.5
Version:
1.0
Author:
Mark Schreiber

Field Summary
static ChangeType CROSS_OVER_FUNCTION
           
static ChangeType FUNCTION
           
static ChangeType MUTATION_FUNCTION
           
static ChangeType POPULATION
           
static ChangeType SELECTION_FUNCTION
           
 
Method Summary
 CrossOverFunction getCrossOverFunction()
           
 int getGeneration()
           
 MutationFunction getMutationFunction()
           
 Population getPopulation()
          The registered Population
 SelectionFunction getSelectionFunction()
           
 void run(GAStoppingCriteria stoppingCriteria)
          Iterates the Algorithm until the stopping criteria are met.
 void setCrossOverFunction(CrossOverFunction function)
          Changes the CrossOverFunction used to CrossOver Chromosomes
 void setMutationFunction(MutationFunction function)
          Sets the current MutationFunction
 void setPopulation(Population pop)
          Sets the Population of Organisms to the Algorithm.
 void setSelectionFunction(SelectionFunction function)
          Changes the SelectionFunction used to select candidates for the next generation
 
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
 

Field Detail

POPULATION

static final ChangeType POPULATION

FUNCTION

static final ChangeType FUNCTION

CROSS_OVER_FUNCTION

static final ChangeType CROSS_OVER_FUNCTION

MUTATION_FUNCTION

static final ChangeType MUTATION_FUNCTION

SELECTION_FUNCTION

static final ChangeType SELECTION_FUNCTION
Method Detail

setPopulation

void setPopulation(Population pop)
                   throws ChangeVetoException
Sets the Population of Organisms to the Algorithm.

Parameters:
pop - the population to add.
Throws:
ChangeVetoException - if new populations are not allowed.

getPopulation

Population getPopulation()
The registered Population

Returns:
the Population being operated on.

setSelectionFunction

void setSelectionFunction(SelectionFunction function)
                          throws ChangeVetoException
Changes the SelectionFunction used to select candidates for the next generation

Parameters:
function - a SelectionFunction
Throws:
ChangeVetoException - if the SelectionFunction is not allowed to be changed

getSelectionFunction

SelectionFunction getSelectionFunction()
Returns:
the current SelectionFunction

setCrossOverFunction

void setCrossOverFunction(CrossOverFunction function)
                          throws ChangeVetoException
Changes the CrossOverFunction used to CrossOver Chromosomes

Parameters:
function - a CrossOverFunction
Throws:
ChangeVetoException - if the CrossOverFunction is not allowed to be changed

getCrossOverFunction

CrossOverFunction getCrossOverFunction()
Returns:
the current CrossOverFunction

setMutationFunction

void setMutationFunction(MutationFunction function)
                         throws ChangeVetoException
Sets the current MutationFunction

Parameters:
function - a MutationFunction
Throws:
ChangeVetoException - if the MutationFunction change is Vetoed by a listener.

getMutationFunction

MutationFunction getMutationFunction()
Returns:
the current MutationFunction

getGeneration

int getGeneration()
Returns:
the Current generation number

run

void run(GAStoppingCriteria stoppingCriteria)
         throws ChangeVetoException,
                IllegalAlphabetException,
                IllegalSymbolException
Iterates the Algorithm until the stopping criteria are met. For saftey implementations should synchronize on this method.

Parameters:
stoppingCriteria - determines when to stop.
Throws:
ChangeVetoException - if the Population being modified is locked
IllegalAlphabetException - if the MutationFunction chosen attempts to modify a Symbol from one of the Chromosomes to a Symbol outside of its Alphabet.
IllegalSymbolException - if the MutationFunction chosen is using the wrong Alphabet.