ga
Class BooleanChromosom

java.lang.Object
  extended byga.Chromosom
      extended byga.BooleanChromosom
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

public class BooleanChromosom
extends Chromosom
implements java.lang.Cloneable, java.io.Serializable

Stellt ein Chromosom zur Verwaltung von boolean Werten zur Verfügung.

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

Constructor Summary
BooleanChromosom()
          Legt ein boolisches, leeres Chromosom an.
BooleanChromosom(boolean[] field)
          Legt ein boolisches Chromosom, mit den angegebenen Werten an.
BooleanChromosom(int size)
          Legt ein boolsches Chromosom, mit der angegebenen Länge an.
 
Method Summary
 java.lang.Object clone()
          Erstellt eine Kopie des Chromosoms.
 void copy(Chromosom other)
          Kopiert den Inhalt des angegebenen Chromosoms in sich selbst.
 void crossover(Chromosom other, double twoPointCrossoverRate, Chromosom[] childChromosom)
          Führt ein Crossover zwischen diesem und einem anderen Chromosomen durch.
 boolean[] getField()
          Liefert das boolsche Datenfeld des Chromosoms.
 void mutate(double mutationRate)
          Mutiert den Inhalt des Chromosoms.
 void random()
          Verändert den Inhalt des Chromosoms zufällig.
 void setField(boolean[] field)
          Setzt das Datenfeld des Chromosoms.
 java.lang.String toString()
          Gibt das Datenfeld als String aus.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BooleanChromosom

public BooleanChromosom(boolean[] field)
Legt ein boolisches Chromosom, mit den angegebenen Werten an.

Parameters:
field - Array von boolean Werten, mit denen das Chromosom initialisiert wird.

BooleanChromosom

public BooleanChromosom()
Legt ein boolisches, leeres Chromosom an.


BooleanChromosom

public BooleanChromosom(int size)
Legt ein boolsches Chromosom, mit der angegebenen Länge an. Der Inhalt ist dabei unbestimmt.

Parameters:
size - Länge des Chromosoms.
Method Detail

mutate

public void mutate(double mutationRate)
Description copied from class: Chromosom
Mutiert den Inhalt des Chromosoms.

Specified by:
mutate in class Chromosom
Parameters:
mutationRate - Mutationswahrscheinlichkeit mit der ein Gen mutiert wird, bzw. die Rate, die angibt, wieviel Prozent des Chromosoms mutiert wird.

random

public void random()
Description copied from class: Chromosom
Verändert den Inhalt des Chromosoms zufällig.

Specified by:
random in class Chromosom

getField

public boolean[] getField()
Liefert das boolsche Datenfeld des Chromosoms.

Returns:
Eine Kopie des Datenfelds.

setField

public void setField(boolean[] field)
Setzt das Datenfeld des Chromosoms.

Parameters:
field - Das neue Datenfeld.

clone

public java.lang.Object clone()
Erstellt eine Kopie des Chromosoms.

Overrides:
clone in class Chromosom
Returns:
Eine Kopie des Chromosoms.

toString

public java.lang.String toString()
Gibt das Datenfeld als String aus.


copy

public void copy(Chromosom other)
          throws java.lang.ClassCastException
Description copied from class: Chromosom
Kopiert den Inhalt des angegebenen Chromosoms in sich selbst. Es wird eine vollständige Kopie angelegt und nicht nur eine Referenz auf die Attribute von other.

Specified by:
copy in class Chromosom
Parameters:
other - Das Quellchromosom, von welchem die Werte übernommen werden sollen.
Throws:
java.lang.ClassCastException

crossover

public void crossover(Chromosom other,
                      double twoPointCrossoverRate,
                      Chromosom[] childChromosom)
               throws java.lang.ClassCastException
Description copied from class: Chromosom
Führt ein Crossover zwischen diesem und einem anderen Chromosomen durch. Es sind zwei Arten von Crossovern möglich: 1-Punkt-Crossover und 2-Punkt-Crossover. Die Wahrsheinlichkeit für ein 2-Punkt-Crossover wird angegeben. Daraus ergibt sich die Wahrscheinlichkeit für ein 1-Punk-Crossover folgendermassen: P(1-Punkt) = 1 - P(2-Punkt).

Specified by:
crossover in class Chromosom
Parameters:
other - Das andere Chromosom mit dem dieses Chromosom gekreutzt wird.
twoPointCrossoverRate - Wahrscheinlichkeit eines 2-Punkt-Crossovers.
childChromosom - Ein Array mit der Läge 2, welches die beiden Ergebnischromosomen aufnehmen soll. Die beiden Chromosome des Arrays müssen bereits existieren, so dass der Inhalt nur noch hineinkopiert werden muss.
Throws:
java.lang.ClassCastException - Wird geworfen, wenn die beiden Chromosome nicht miteinander gekreutzt werden koennen, z.B. weil sie von unterschiedlichen Typen sind. Oder wenn die Ergebnischromosome von einem anderen Typ sind.