org.apache.commons.math3.genetics
Class ElitisticListPopulation

java.lang.Object
  extended by org.apache.commons.math3.genetics.ListPopulation
      extended by org.apache.commons.math3.genetics.ElitisticListPopulation
All Implemented Interfaces:
Iterable<Chromosome>, Population

public class ElitisticListPopulation
extends ListPopulation

Population of chromosomes which uses elitism (certain percentage of the best chromosomes is directly copied to the next generation).

Since:
2.0
Version:
$Id: ElitisticListPopulation.java 1416643 2012-12-03 19:37:14Z tn $

Constructor Summary
ElitisticListPopulation(int populationLimit, double elitismRate)
          Creates a new ElitisticListPopulation instance and initializes its inner chromosome list.
ElitisticListPopulation(List<Chromosome> chromosomes, int populationLimit, double elitismRate)
          Creates a new ElitisticListPopulation instance.
 
Method Summary
 double getElitismRate()
          Access the elitism rate.
 Population nextGeneration()
          Start the population for the next generation.
 void setElitismRate(double elitismRate)
          Sets the elitism rate, i.e. how many best chromosomes will be directly transferred to the next generation [in %].
 
Methods inherited from class org.apache.commons.math3.genetics.ListPopulation
addChromosome, addChromosomes, getChromosomeList, getChromosomes, getFittestChromosome, getPopulationLimit, getPopulationSize, iterator, setChromosomes, setPopulationLimit, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ElitisticListPopulation

public ElitisticListPopulation(List<Chromosome> chromosomes,
                               int populationLimit,
                               double elitismRate)
                        throws NullArgumentException,
                               NotPositiveException,
                               NumberIsTooLargeException,
                               OutOfRangeException
Creates a new ElitisticListPopulation instance.

Parameters:
chromosomes - list of chromosomes in the population
populationLimit - maximal size of the population
elitismRate - how many best chromosomes will be directly transferred to the next generation [in %]
Throws:
NullArgumentException - if the list of chromosomes is null
NotPositiveException - if the population limit is not a positive number (< 1)
NumberIsTooLargeException - if the list of chromosomes exceeds the population limit
OutOfRangeException - if the elitism rate is outside the [0, 1] range

ElitisticListPopulation

public ElitisticListPopulation(int populationLimit,
                               double elitismRate)
                        throws NotPositiveException,
                               OutOfRangeException
Creates a new ElitisticListPopulation instance and initializes its inner chromosome list.

Parameters:
populationLimit - maximal size of the population
elitismRate - how many best chromosomes will be directly transferred to the next generation [in %]
Throws:
NotPositiveException - if the population limit is not a positive number (< 1)
OutOfRangeException - if the elitism rate is outside the [0, 1] range
Method Detail

nextGeneration

public Population nextGeneration()
Start the population for the next generation. The elitismRate percents of the best chromosomes are directly copied to the next generation.

Returns:
the beginnings of the next generation.

setElitismRate

public void setElitismRate(double elitismRate)
                    throws OutOfRangeException
Sets the elitism rate, i.e. how many best chromosomes will be directly transferred to the next generation [in %].

Parameters:
elitismRate - how many best chromosomes will be directly transferred to the next generation [in %]
Throws:
OutOfRangeException - if the elitism rate is outside the [0, 1] range

getElitismRate

public double getElitismRate()
Access the elitism rate.

Returns:
the elitism rate


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.