Package 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

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
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 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