Class Chromosome

  • All Implemented Interfaces:
    java.lang.Comparable<Chromosome>, Fitness
    Direct Known Subclasses:
    AbstractListChromosome

    public abstract class Chromosome
    extends java.lang.Object
    implements java.lang.Comparable<Chromosome>, Fitness
    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
    Version:
    $Revision: 811685 $ $Date: 2009-09-05 19:36:48 +0200 (sam. 05 sept. 2009) $
    • Constructor Summary

      Constructors 
      Constructor Description
      Chromosome()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(Chromosome another)
      Compares two chromosomes based on their fitness.
      protected Chromosome findSameChromosome​(Population population)
      Searches the population for another chromosome with the same representation.
      double getFitness()
      Access the fitness of this chromosome.
      protected boolean isSame​(Chromosome another)
      Returns true iff another 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.apache.commons.math.genetics.Fitness

        fitness
    • Constructor Detail

      • Chromosome

        public Chromosome()
    • Method Detail

      • 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

        public int compareTo​(Chromosome another)
        Compares two chromosomes based on their fitness. The bigger the fitness, the better the chromosome.
        Specified by:
        compareTo in interface java.lang.Comparable<Chromosome>
        Parameters:
        another - another chromosome to compare
        Returns:
        • -1 if another is better than this
        • 1 if another is worse than this
        • 0 if the two chromosomes have the same fitness
      • isSame

        protected boolean isSame​(Chromosome another)
        Returns true iff another 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

        protected Chromosome findSameChromosome​(Population population)
        Searches the population for another chromosome with the same representation. If such chromosome is found, it is returned, if no such chromosome exists, returns null.
        Parameters:
        population - Population to search
        Returns:
        Chromosome with the same representation, or null if no such chromosome exists.
      • searchForFitnessUpdate

        public 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.
        Parameters:
        population - Population to search