Optimierung eines Parametersatzes durch einen genetischen Algorithmus
Erläuterung des Prinzips
- Bei genetischen Algorithmen werden die zu optimierenden Parameter als "Gene" aufgefaßt.
- Tatsächlich werden in dem nachfolgenden Java-Beispiel die Parameter durch byte-Zahlen repräsentiert, bei denen einzelne Bits mutieren können, oder aus zwei anderen Parametern beliebige Auswahlen an Bits rekombiniert werden können.
- Um leichte Variationen zu erzeugen, gibt es die Methode "mutieren", bei dem zufällig einzelne Bits der binären Zahlenrepräsentation eines Parametersatzes geflipt werden.
- Um zwei gute Parametersätze zu einem neuen zu rekombinieren, gibt es die Funktion gleichen Namens, die für jedes Bit entscheidet, ob sie es aus dem einen oder dem anderen Parametersatz nimmt.
- Der Algorithmus geht wie folgt vor:
|
- Zuerst werden 100 Simulationen mit Parametersätzen durchgeführt, die nahe einem Ausgangsparametersatz liegen.
- Dann wird der Fehler für jeden Satz bestimmt.
- Dann werden die 10 besten Sätze herauskopiert und eine neue Generation aus diesen 10 durch Rekombination der 10 besten erzeugt. D.h. aus den 10 Besten entstehen wieder 90 Parametersätze + die 10 Besten selber unverändert.
- Dann werden noch leichte Mutationen auf den neu entstandenen Sätzen durchgeführt.
- Schließlich wird wieder der Fehler für jeden der Sätze aus der jüngsten Generation bestimmt und der Vorgang wiederholt sich bei Schritt 3.
|
Bild 0-1: Prinzip eines evolutionären Algorithmus.
Zahlenraten mit einem in Java implementierten genetischen Algorithmus
evoopt.zip - in Vorlesung zu entwickelnde Programme.