Class 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 Detail

      • TournamentSelection

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

      • 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