Class TournamentSelection

java.lang.Object
org.apache.commons.math3.genetics.TournamentSelection
All Implemented Interfaces:
SelectionPolicy

public class TournamentSelection extends Object implements SelectionPolicy
Tournament selection scheme. Each of the two selected chromosomes is selected based on n-ary tournament -- this is done by drawing arity random chromosomes without replacement from the population, and then selecting the fittest chromosome among them.
Since:
2.0
  • Constructor Details

    • TournamentSelection

      public TournamentSelection(int arity)
      Creates a new TournamentSelection instance.
      Parameters:
      arity - how many chromosomes will be drawn to the tournament
  • Method Details

    • select

      public ChromosomePair select(Population population) throws MathIllegalArgumentException
      Select two chromosomes from the population. Each of the two selected chromosomes is selected based on n-ary tournament -- this is done by drawing arity random chromosomes without replacement from the population, and then selecting the fittest chromosome among them.
      Specified by:
      select in interface SelectionPolicy
      Parameters:
      population - the population from which the chromosomes are chosen.
      Returns:
      the selected chromosomes.
      Throws:
      MathIllegalArgumentException - if the tournament arity is bigger than the population size
    • getArity

      public int getArity()
      Gets the arity (number of chromosomes drawn to the tournament).
      Returns:
      arity of the tournament
    • setArity

      public void setArity(int arity)
      Sets the arity (number of chromosomes drawn to the tournament).
      Parameters:
      arity - arity of the tournament