## Package org.biojavax.ga.functions

GA functions

See:
Description

Interface Summary
CrossOverFunction: Crosses two chromosomes.
FitnessFunction: Calculates the fitness of an `Organism` in a `Population` of `Organisms`
GACross: Holds the results of a CrossOver event, objects of this type are made by `CrossOverFunctions`
GACrossResult: Holds the results of a CrossOver event, objects of this type are made by `CrossOverFunctions`
MutationFunction: A class that mutates a `SymbolList`
SelectionFunction: Selects Organisms for Replication and returns the offspring.

Class Summary
AbstractCrossOverFunction: Abstract implementation of `CrossOverFunction`.
AbstractMutationFunction: Abstract implementation of `MutationFunction` all custom implementations should inherit from here.
CrossOverFunction.NoCross: A place holder CrossOverFunction that doesn't perform cross overs
MutationFunction.NoMutation: Place Holder class that doesn't mutate its SymbolLists
OrderCrossover: This does a 2-point-crossover on two chromosomes keeping the Symbols in each chromosome constant.
ProportionalSelection: A Selection function that determines the proportion of individuals in a new population proportionally to their fitness.
SelectionFunction.SelectAll
SelectionFunction.Threshold: Selects individuals who's fitness exceeds a threshold value.
SimpleCrossOverFunction: Simple Implementation of the `CrossOverFunction` interface
SimpleGACrossResult: Simple implementation of the `GACross` interface.
SimpleMutationFunction: Simple no frills Implementation of the MutationFunction interface
SwapMutationFunction: This class does a sort of mutation by exchanging two positions on the chromosome.
TournamentSelection: Tournament Selection chooses the best organisms from n random subsets of a given population.

## Package org.biojavax.ga.functions Description

GA functions

A genetic algorithm requires a number of functions. This package provides the interfaces for those functions and simple implementations. By implementing, mixing and matching these functions you can create highly customized genetic algorithms.

A GA requires (in alphabetical order): a `CrossOverFunction` to govern the behaivour of 'chromosome' crossovers, a `FitnessFunction` to determine the fitness of each organism after each iteration, a `MutationFuntion` to govern mutation behaivour, and a `SelectionFunction` to select organisms for the next round of replication.