Class ElitisticListPopulation
java.lang.Object
org.apache.commons.math3.genetics.ListPopulation
org.apache.commons.math3.genetics.ElitisticListPopulation
- All Implemented Interfaces:
Iterable<Chromosome>
,Population
Population of chromosomes which uses elitism (certain percentage of the best
chromosomes is directly copied to the next generation).
- Since:
- 2.0
-
Constructor Summary
ConstructorsConstructorDescriptionElitisticListPopulation
(int populationLimit, double elitismRate) Creates a newElitisticListPopulation
instance and initializes its inner chromosome list.ElitisticListPopulation
(List<Chromosome> chromosomes, int populationLimit, double elitismRate) Creates a newElitisticListPopulation
instance. -
Method Summary
Modifier and TypeMethodDescriptiondouble
Access the elitism rate.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
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
ElitisticListPopulation
public ElitisticListPopulation(List<Chromosome> chromosomes, int populationLimit, double elitismRate) throws NullArgumentException, NotPositiveException, NumberIsTooLargeException, OutOfRangeException Creates a newElitisticListPopulation
instance.- Parameters:
chromosomes
- list of chromosomes in the populationpopulationLimit
- maximal size of the populationelitismRate
- how many best chromosomes will be directly transferred to the next generation [in %]- Throws:
NullArgumentException
- if the list of chromosomes isnull
NotPositiveException
- if the population limit is not a positive number (< 1)NumberIsTooLargeException
- if the list of chromosomes exceeds the population limitOutOfRangeException
- if the elitism rate is outside the [0, 1] range
-
ElitisticListPopulation
public ElitisticListPopulation(int populationLimit, double elitismRate) throws NotPositiveException, OutOfRangeException Creates a newElitisticListPopulation
instance and initializes its inner chromosome list.- Parameters:
populationLimit
- maximal size of the populationelitismRate
- 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 Details
-
nextGeneration
Start the population for the next generation. The
percents of the best chromosomes are directly copied to the next generation.elitismRate
- Returns:
- the beginnings of the next generation.
-
setElitismRate
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
-