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