org.apache.commons.math3.genetics

## 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
  Version:
    $Id: TournamentSelection.java 1550977 2013-12-14 22:07:02Z tn $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TournamentSelection(int arity)` Creates a new TournamentSelection instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getArity()` Gets the arity (number of chromosomes drawn to the tournament).
    `ChromosomePair` | `select(Population population)` Select two chromosomes from the population.
    `void` | `setArity(int arity)` Sets the arity (number of chromosomes drawn to the tournament).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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

Copyright © 2003–2014 The Apache Software Foundation. All rights reserved.