|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectga.Population
Verwaltet eine Menge an Individuen und führt den Vortpflanzungs und Selektionsprozess durch.
Constructor Summary | |
Population(Individual type,
int count)
Erstellt eine neue Population mit Individuen vom Typ type. |
|
Population(Individual type,
int individualCount,
int childrenCount,
int groupSize,
double crossoverRate,
double twoPointCrossoverRate,
double mutationRate)
Erstellt eine neue Population mit Individuen vom Typ type. |
Method Summary | |
protected abstract void |
calculate(Individual[] l)
Berechnet die Fitness der Individuen der Population. |
void |
chaos(int aliveCount)
Vernichtet alle Individuuen, bis aus die besten und fuellt die Population mit neuen zufaellig erzeugten Individuuen auf. |
protected void |
death()
Schlechte Individuen aus der Population entfernen. |
void |
evolutionStep(int count)
Führt count Evolutionsschritte durch. |
Individual |
getBest()
Liefert das beste Individuum einer Generation zurück. |
int |
getChildrenCount()
Liefert die Anzahl der Kinder zurück, die in jeder Generation geboren werden. |
double |
getCrossoverRate()
Liefert die Wahrscheinlichkeit eines Crossover. |
int |
getGroupSize()
Liefert die Grösse einer Paaraungsgruppe zurück. |
Individual |
getIndividual(int index)
Liefert das Individuum zurück, welches sich an der durch Index angegebenen Position befindet. |
int |
getIndividualCount()
Liefert die Anzahl der Individuen zurück, die sich in der Population befinden. |
double |
getMutationRate()
Liefert die Muationsrate zurück. |
double |
getPopulationFitnes()
Liefert die Summe der Fitnes aller zur Zeit lebenden Individuen zurück. |
double |
getTwoPointCrossoverRate()
Liefert die Wahrscheinlichkeit für ein 2-Punkt-Crossover zurück. |
void |
setChildrenCount(int s)
Zum Setzen der Anzahl der Kinder, die in jeder Generation geboren werden sollen. |
void |
setCrossoverRate(double d)
Setzt die Wahrscheinlichkeit eines Crossovers. |
void |
setGroupSize(int s)
Setzt die Grösse einer Paaraungsgruppe. |
void |
setIndividual(int index,
Individual i)
Fügt an die durch index angegebenen Position ein Individuum
ein. |
void |
setIndividualCount(int s)
Zum Setzen der Populationsgrösse. |
void |
setMutationRate(double mutationRate)
Setzt die Mutationswahrscheinlichkeit. |
void |
setTwoPointCrossoverRate(double twoPointCrossoverRate)
Setzt die Wahrscheinlichkeit dafür, dass es zu einem 2-Punkt-Crossover kommt. |
protected void |
sex()
Erzeugt neue Individuen und fühgt diese in die Population ein. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public Population(Individual type, int individualCount, int childrenCount, int groupSize, double crossoverRate, double twoPointCrossoverRate, double mutationRate)
type
- Urindividuum, welches als Muster für alle anderen Individuuen dient.individualCount
- Anzahl der Individuen in einer Generation, die erzeugt werden sollen.childrenCount
- Anzahl der Kinder, die in jeder Generation erzeugt werden sollen.groupSize
- Grösse der Gruppen, die zur Paarung gebildet werden.crossoverRate
- Wahrscheinlichkeit dass ein Crossovers stattfindet.twoPointCrossoverRate
- Wahrscheinlichkeit fuer 2-Punkt-Crossover, falls überhaupt
ein Crossover stattfinden sollte.mutationRate
- Muationswahrscheinlichkeit.public Population(Individual type, int count)
childrenCount = 2
groupSize = 5
crossoverRate = 0.7
twoPointCrossoverRate = 0.4
muationRate = 0.02
type
- Urindividuum, welches als Muster für alle anderen Individuuen dient.count
- Anzahl der Individuen in einer Generation, die erzeugt werden sollen.Method Detail |
protected void sex()
public Individual getBest()
protected void death()
public void evolutionStep(int count)
count
Evolutionsschritte durch. In einem Schritt werden:
1. neue Individuen erzeugt (Paarung / Kinder)
count
- Anzahl der durchzuführenden Schritte.protected abstract void calculate(Individual[] l)
l
- Liste der Individuen.public int getChildrenCount()
public int getGroupSize()
public void setChildrenCount(int s)
s
- Anzahl der Kinder. Ist diese Zahl ungerade, so wird auf die nächst höhere
Zahl erhöht.public void setIndividualCount(int s)
s
- Anzahl der Individuen.public void setGroupSize(int s)
s
- Gruppengrösse.public double getPopulationFitnes()
public double getTwoPointCrossoverRate()
public void setTwoPointCrossoverRate(double twoPointCrossoverRate)
twoPointCrossoverRate
- Wahrscheinlichkeit für ein 2-Punkt-Crossover.public double getMutationRate()
public void setMutationRate(double mutationRate)
mutationRate
- Muatationsrate.public Individual getIndividual(int index) throws java.lang.IndexOutOfBoundsException
index
- Die Position des gewünschten Individuums.
java.lang.IndexOutOfBoundsException
- Wird geworfen, wenn index < 0 | index >>=
getIndividualCount() ist.public void setIndividual(int index, Individual i) throws java.lang.IndexOutOfBoundsException
index
angegebenen Position ein Individuum
ein.
index
- Position in der Population an der das Individuum eingefügt werden soll.i
- Das Individuum, welches eingefügt werden soll.
java.lang.IndexOutOfBoundsException
- Wird geworfen, wenn index
grösser ist, als
die Population (Anzahl der Individuuen) oder kleiner Null.public int getIndividualCount()
public void chaos(int aliveCount)
aliveCount
- Anzahl der Individuen die am Leben bleiben sollen.public double getCrossoverRate()
public void setCrossoverRate(double d)
d
- Crossoverwahrscheinlichkeit.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |