org.apache.commons.math3.genetics
Class Chromosome

java.lang.Object
  extended by org.apache.commons.math3.genetics.Chromosome
All Implemented Interfaces:
Comparable<Chromosome>, Fitness
Direct Known Subclasses:
AbstractListChromosome

public abstract class Chromosome
extends Object
implements 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:
$Id: Chromosome.java 1416643 2012-12-03 19:37:14Z tn $

Constructor Summary
Chromosome()
           
 
Method Summary
 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.math3.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 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


Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.