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 newElitisticListPopulationinstance and initializes its inner chromosome list.ElitisticListPopulation(List<Chromosome> chromosomes, int populationLimit, double elitismRate) Creates a newElitisticListPopulationinstance. -
Method Summary
Modifier and TypeMethodDescriptiondoubleAccess the elitism rate.Start the population for the next generation.voidsetElitismRate(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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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 newElitisticListPopulationinstance.- 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 isnullNotPositiveException- 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 newElitisticListPopulationinstance 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. Thepercents 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
-