Elternklasse: cSelectIndividualToDelete
Die Klasse cSelectIndividualToDeleteWeel
stellt eine Methode bereit, um ein Individuum auszuwählen, das gelöscht werden soll. Sie wird von der Klasse cSelectIndividualToDelete
abgeleitet.
Wenn im Algorithmus nur noch ein Individuum vorhanden ist, wird dies niemals ausgewählt. Da der Algorithmus immer mindestens ein Individuum enthalten sollte.
Von der Klasse cSelectIndividualToDeleteWeel
werden die Individuen mit der weel-selection Auswahlmethode ausgewählt. Dabei hat jedes Individuum eine Auswahlwahrscheinlichkeit die umgekehrt proportional zu seiner Gesamtfitness ist und die Wahrscheinlichkeiten aller Individuen summiert sich zu .
Die best mögliche Fitness von Individuen wird durch die Methode getBestFitness()
des entsprechenden Fitnessalgorithmus (siehe 64 auf Seite ) zur jeweiligen Fitness ermittelt.
Von der best mögliche Fitness wird jeweils der Wert Fitness aller Individuen abgezogen, um einen Nullpunkt zu erhalten. Bei Individuen deren Auswahlwahrscheinlichkeit dann kleiner als durch die Anzahl der zur Auswahl stehenden Individuen (
) durch ist, wird die Auswahlwahrscheinlichkeit auf diesen Wert gesetzt. (
; if then ) So dass jedes Individuum eine Auswahlwahrscheinlichkeit ungleich hat.
Existiert kein Fitnessalgorithmus oder best mögliche Fitness zur Fitness, wird deren Auswahlwahrscheinlichkeit auf gesetzt.
Die best mögliche Fitness kann dabei durchaus von Individuen überschritten werden. Sie dient in cSelectIndividualToDeleteWeel
nur zum Festlegen eines Nullpunktes für die Fitnesswerte, um die weel-selection ausführen zu können.