org.apache.commons.math3.genetics
Class TournamentSelection

java.lang.Object
  extended by 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 1416643 2012-12-03 19:37:14Z tn $

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).
 
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-2012 The Apache Software Foundation. All Rights Reserved.