ec.parsimony
Class LexicographicTournamentSelection

java.lang.Object
  extended by ec.BreedingSource
      extended by ec.SelectionMethod
          extended by ec.select.TournamentSelection
              extended by ec.parsimony.LexicographicTournamentSelection
All Implemented Interfaces:
Prototype, Setup, SteadyStateBSourceForm, RandomChoiceChooser, java.io.Serializable, java.lang.Cloneable

public class LexicographicTournamentSelection
extends TournamentSelection

Does a simple tournament selection, limited to the subpopulation it's working in at the time.

Tournament selection works like this: first, size individuals are chosen at random from the population. Then of those individuals, the one with the best fitness is selected. If two individuals have the same fitness, the one with smaller size is prefered. The default tournament size is 7.

Typical Number of Individuals Produced Per produce(...) call
Always 1.

Parameters

base.size
int >= 1
(the tournament size)
base.pick-worst
bool = true or false (default)
(should we pick the worst individual in the tournament instead of the best?)

Default Base
select.lexicographic-tournament

See Also:
Serialized Form

Field Summary
static java.lang.String P_TOURNAMENT
          default base
 
Fields inherited from class ec.select.TournamentSelection
DEFAULT_SIZE, P_PICKWORST, P_SIZE, pickWorst, probabilityOfPickingSizePlusOne
 
Fields inherited from class ec.SelectionMethod
INDS_PRODUCED
 
Fields inherited from class ec.BreedingSource
NO_PROBABILITY, P_PROB, probability
 
Constructor Summary
LexicographicTournamentSelection()
           
 
Method Summary
 boolean betterThan(Individual first, Individual second, int subpopulation, EvolutionState state, int thread)
          Returns true if *first* is a better (fitter, whatever) individual than *second*.
 Parameter defaultBase()
          Returns the default base for this prototype.
 
Methods inherited from class ec.select.TournamentSelection
getRandomIndividual, getTournamentSizeToUse, individualReplaced, produce, setup, sourcesAreProperForm
 
Methods inherited from class ec.SelectionMethod
finishProducing, prepareToProduce, produce, produces, typicalIndsProduced
 
Methods inherited from class ec.BreedingSource
clone, getProbability, pickRandom, preparePipeline, setProbability, setupProbabilities
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

P_TOURNAMENT

public static final java.lang.String P_TOURNAMENT
default base

See Also:
Constant Field Values
Constructor Detail

LexicographicTournamentSelection

public LexicographicTournamentSelection()
Method Detail

defaultBase

public Parameter defaultBase()
Description copied from interface: Prototype
Returns the default base for this prototype. This should generally be implemented by building off of the static base() method on the DefaultsForm object for the prototype's package. This should be callable during setup(...).

Specified by:
defaultBase in interface Prototype
Overrides:
defaultBase in class TournamentSelection

betterThan

public boolean betterThan(Individual first,
                          Individual second,
                          int subpopulation,
                          EvolutionState state,
                          int thread)
Description copied from class: TournamentSelection
Returns true if *first* is a better (fitter, whatever) individual than *second*.

Overrides:
betterThan in class TournamentSelection