ga
Class Individual

java.lang.Object
  extended byga.Individual
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable, java.io.Serializable

public class Individual
extends java.lang.Object
implements java.lang.Comparable, java.lang.Cloneable, java.io.Serializable

Ein Individuum verwaltet mehrere Chromosome. Es ist definiert durch einen sogenannten Chromosomensatz, der die Merkmale des Individuums enthält. Ein Individuum besitz ausserdem noch eine Fitnes, die die Qualität des Individuums beschreibt.

Version:
0.7
Author:
Martin Hedler
See Also:
Serialized Form

Constructor Summary
Individual()
           
Individual(Chromosom[] chromosomSet)
          Legt ein neues Individuum mit dem angegebenen Chromosomensatzes an.
 
Method Summary
 java.lang.Object clone()
          Erstellt eine Kopie des Individuums, mit gleichem Chromosomensatz und gleicher Fitnes.
 int compareTo(java.lang.Object o)
           
 void crossover(Individual other, double twoPointCrossoverRate, Individual[] children)
          Kreuze diese Individuum mit einem anderen.
 Chromosom getChromosom(int index)
          Liefert das Chromosom zurück, welches sich an der von index angegebenen Position befindet.
 int getChromosomCount()
          Liefert die Anzahl der Chromosomen des Individuums.
 Chromosom[] getChromosomSet()
           
 double getFitnes()
          Gibt die aktuelle Fitness des Individuums zurueck.
 void mutate(double mutationRate)
          Mutiert den Chomosomensatz des Individuums.
 void random()
          Verändert den Chromosomensatz des Individuums zufällig.
 void setChromosomSet(Chromosom[] chromosomSet)
           
 void setFitnes(double d)
          Setze die aktuelle Fitness des Individuums.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Individual

public Individual(Chromosom[] chromosomSet)
Legt ein neues Individuum mit dem angegebenen Chromosomensatzes an.

Parameters:
chromosomSet - Der Chromosomensatz des Individuums.

Individual

public Individual()
Method Detail

random

public void random()
Verändert den Chromosomensatz des Individuums zufällig.


clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Erstellt eine Kopie des Individuums, mit gleichem Chromosomensatz und gleicher Fitnes.

Throws:
java.lang.CloneNotSupportedException

compareTo

public int compareTo(java.lang.Object o)
Specified by:
compareTo in interface java.lang.Comparable

getFitnes

public double getFitnes()
Gibt die aktuelle Fitness des Individuums zurueck. Je grösser die Fitnes ist, umso besser ist das Individuum.

Returns:
Die Fitnes des Individuums.

setFitnes

public void setFitnes(double d)
Setze die aktuelle Fitness des Individuums. Je grösser die Fitnes ist, umso besser ist das Individuum.

Parameters:
d - Die neue Fitness.

mutate

public void mutate(double mutationRate)
Mutiert den Chomosomensatz des Individuums.

Parameters:
mutationRate - Wahrscheinlichkeit, dass ein Merkmal verändert wird.

crossover

public void crossover(Individual other,
                      double twoPointCrossoverRate,
                      Individual[] children)
Kreuze diese Individuum mit einem anderen. Dabei muss die Wahrscheinlichkeit eines 2-Punkt-Crossovers mit angegeben werden und das Array, in welches die Kinder kopiert werden sollen. Das Array muss bereits zwei Individuuen enthalten, da diese nur neu belegt und nicht neu erstellt werden.

Parameters:
other - Das andere Individuum mit dem dieses gekreutzt werden soll.
twoPointCrossoverRate - Die Wahrscheinlichkeitsrate eines 2-Punkt-Crossovers.
children - Ein Array mit der Länge 2, welches die Kinder enthält, welche bei der Kreuzung enststanden sind. Die beiden Kinder (Individuen) müssen bereits existieren, da ihre Chromosomen nur verändert werden.

getChromosom

public Chromosom getChromosom(int index)
                       throws java.lang.IndexOutOfBoundsException
Liefert das Chromosom zurück, welches sich an der von index angegebenen Position befindet.

Parameters:
index - Die Position des gewünschten Chromosoms.
Returns:
Das Chromosom an der Potition index.
Throws:
java.lang.IndexOutOfBoundsException - Wird geworfen, wenn index < 0 oder index >= getChromosomCount() ist.

getChromosomCount

public int getChromosomCount()
Liefert die Anzahl der Chromosomen des Individuums.

Returns:
Chromosomenanzahl.

setChromosomSet

public void setChromosomSet(Chromosom[] chromosomSet)

getChromosomSet

public Chromosom[] getChromosomSet()