next up previous contents index
Next: Schnittstelle Up: Implementation des genetische Algorithmus Previous: setMaxDate   Contents   Index


Kernalgorithmus cEnviroment

Der Kernalgorithmus cEnviroment implementiert den genetischen Algorithmus unter zuhilfenahme der Bewerter und Operatoren. Es kann vom Kernalgorithmus bzw. der Umwelt immer nur eine Instanz (im gültigen Prozessraum) existieren.

Im Kernalgorithmus werden zwei Schleife solange ausgeführt, bis die Endbedingung zutrift oder sie, über die Methode stop(), gestoppt wird.

Eine Schleife dient zum Erzeugen von Individuen und die andere zum Löschen von Individuen. Dafür werden Operationen ausgewählt (das Auswählen geschieht mit Hilfe von cChoosOperation abgeleiteten Klassen) und gestartet, solange noch genügend Rechnerresourcen (Prüfung mit von cResouceCheck abgeleiteten Klassen) vorhanden sind. Gestartete Operationen werden vermerkt. Wird eine Operation beendet, so werden die von ihr erzeugten Individuen geprüft und es wird die Operation mit den von ihr erzeugten Individuen bewertet. Wenn eine Operation kein Individum erzeugt, wird für sie vom Kernalgorithmus ein Dummyindividuum eingefügt und die Operation bezüglich dieser bewertet. Dieses Dummyindividuum besteht nur aus Individueninformationen cIndividualInfo über ein totes Individuum. Die Fitness dieses Dummyindividuum ist die minimal mögliche Fitness.

Sollte eine Operation schon sehr lange laufen, wird geprüft ob die Operation noch reagiert (mit der isRunning() Methode der Operation). Dann wird eventuell versucht die Operation mit ihrer stop()-Methode zu beenden. Wenn auch dies nicht zum Erfolg führt, wird der Prozess in dem die Operation läuft beendet.

Der Kernalgorithmus ist generisch für ein von der Klasse cIndividual abgeleiteten Individuentyp geschrieben.



Subsections
next up previous contents index
Next: Schnittstelle Up: Implementation des genetische Algorithmus Previous: setMaxDate   Contents   Index
Betti Österholz 2013-02-13