## org.apache.commons.math.genetics
Class TournamentSelection

    java.lang.Object
      org.apache.commons.math.genetics.TournamentSelection

All Implemented Interfaces:
  SelectionPolicy

    public class TournamentSelection

extends java.lang.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:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $

Field Summary
`private int` `arity` number of chromosomes included in the tournament selections

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

Method Summary
`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).
`private Chromosome` `tournament(ListPopulation population)` Helper for `select(Population)`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### arity

    private int arity

  number of chromosomes included in the tournament selections

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)

  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 choosen.
  Returns:
    the selected chromosomes.

### tournament

    private Chromosome tournament(ListPopulation population)

  Helper for `select(Population)`. Draw `arity` random chromosomes without replacement from the population, and then select the fittest chromosome among them.

  Parameters:
    `population` - the population from which the chromosomes are choosen.
  Returns:
    the selected chromosome.

### 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 (c) 2003-2011 Apache Software Foundation