Class Chromosome
java.lang.Object
org.apache.commons.math3.genetics.Chromosome
- All Implemented Interfaces:
Comparable<Chromosome>
,Fitness
- Direct Known Subclasses:
AbstractListChromosome
Individual in a population. Chromosomes are compared based on their fitness.
The chromosomes are IMMUTABLE, and so their fitness is also immutable and therefore it can be cached.
- Since:
- 2.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double
Cached value of the fitness of this chromosome.private static final double
Value assigned when no fitness has been computed yet. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
compareTo
(Chromosome another) Compares two chromosomes based on their fitness.protected Chromosome
findSameChromosome
(Population population) Searches thepopulation
for another chromosome with the same representation.double
Access the fitness of this chromosome.protected boolean
isSame
(Chromosome another) Returnstrue
iffanother
has the same representation and therefore the same fitness.void
searchForFitnessUpdate
(Population population) Searches the population for a chromosome representing the same solution, and if it finds one, updates the fitness to its value.
-
Field Details
-
NO_FITNESS
private static final double NO_FITNESSValue assigned when no fitness has been computed yet.- See Also:
-
fitness
private double fitnessCached value of the fitness of this chromosome.
-
-
Constructor Details
-
Chromosome
public Chromosome()
-
-
Method Details
-
getFitness
public double getFitness()Access the fitness of this chromosome. The bigger the fitness, the better the chromosome.Computation of fitness is usually very time-consuming task, therefore the fitness is cached.
- Returns:
- the fitness
-
compareTo
Compares two chromosomes based on their fitness. The bigger the fitness, the better the chromosome.- Specified by:
compareTo
in interfaceComparable<Chromosome>
- Parameters:
another
- another chromosome to compare- Returns:
- -1 if
another
is better thanthis
- 1 if
another
is worse thanthis
- 0 if the two chromosomes have the same fitness
- -1 if
-
isSame
Returnstrue
iffanother
has the same representation and therefore the same fitness. By default, it returns false -- override it in your implementation if you need it.- Parameters:
another
- chromosome to compare- Returns:
- true if
another
is equivalent to this chromosome
-
findSameChromosome
Searches thepopulation
for another chromosome with the same representation. If such chromosome is found, it is returned, if no such chromosome exists, returnsnull
.- Parameters:
population
- Population to search- Returns:
- Chromosome with the same representation, or
null
if no such chromosome exists.
-
searchForFitnessUpdate
Searches the population for a chromosome representing the same solution, and if it finds one, updates the fitness to its value.- Parameters:
population
- Population to search
-