org.apache.commons.math3.genetics

## Class ElitisticListPopulation

- java.lang.Object
- - org.apache.commons.math3.genetics.ListPopulation
  - - 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 $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private double` | `elitismRate` percentage of chromosomes copied to the next generation

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

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

- - ### Field Detail

    - #### elitismRate

          private double elitismRate

      percentage of chromosomes copied to the next generation

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