Information Technology Reference
In-Depth Information
+
/
x
3
8
2
Abbildung 12.10: Parse-Baum eines symbolischen Ausdrucks mit der Bedeutung
(+ ( 3 x )( /82 ))
Günstig für die Implementierung eines GP ist die Darstellung des symbolischen
Ausdrucks durch einen sogenannten Parse-Baum .Parse-Bäumewerdenz.B.imPar-
ser eines Compilers verwendet, um arithmetische Ausdrücke darzustellen und an-
schließend zu optimieren. Solch ein Parse-Baum zur symbolischen Regression ist in
Abbildung 12.10 gezeichnet. In Lisp bzw. Scheme sind Ausdrücke verschachtelte Li-
sten. D. h., das erste Listenelement entspricht dem Funktionssymbol bzw. Operator,
während die nachfolgenden Elemente die Argumente bzw. Operanden des Opera-
tors sind.
Der Ablauf von einem GP, der stark an einen Standard-EA erinnert, ist wie folgt.
Zuerst erzeugen wir eine Anfangspopulation zufälliger symbolischer Ausdrücke. Da-
nach bewerten wir die Ausdrücke durch die Berechnung der Fitness. Bei Booleschen
Funktionen wäre eine Fitnessfunktion beispielsweise der Anteil korrekter Ausgaben
für alle Eingaben bezüglich einer Stichprobe. Bei der symbolischen Regression wäre
es einfach die Summe der Fehlerquadrate über gegebene Messpunkte: Bei eindimen-
sionalen Daten ( x i , y i ) für i = 1, . . . , n wäre die Fitness f ( c )= i =1 ( c ( x i ) y i ) 2 ,wo-
bei c das Chromosom bzw. GP ist. Die Selektion erfolgt mit einem der im Abschnitt
11.2 besprochenen Verfahren. Nach der Selektion wenden wir genetische Operatoren ,
meist allerdings nur Crossover, auf die selektierten Individuen an. Die einzelnen
Schritte wollen wir nun kurz erörtern.
12.4.1
Initialisierung
Der Erzeugungsprozess einer Anfangspopulation von Programmen obliegt minde-
stens einem Parameter, nämlich der maximalen Verschachtelungstiefe (der maxima-
len Baumhöhe) d max oder der maximalen Anzahl an Knoten im Baum n max .Zu-
sätzlich können wir mit einer Wahrscheinlichkeit für die Wahl eines Terminalsym-
bols arbeiten. Basierend darauf existieren drei verschiedene Methoden, um eine GP-
Population zu initialisieren [Koza 1992]: wachsen (engl. grow ), voll (engl. full )und
aufsteigend halb-und-halb (engl. ramped half-and-half ). Wie bei einem Standard-EA kön-
nen wir auch hier Kopien vermeiden. Anschließend führen wir die drei Methoden
anhand ihres Pseudocodes ein. Der initiale Aufruf zur Generierung einer Anfangs-
population mittels wachsen und voll sei I NITIALISIERE (Wurzel, 0).
Die Methode wachsen erzeugt Bäume von irregulärer Form. In jedem Knoten (bis
auf dieWurzel) treffenwir eine zufällige Auswahl aus F und T .EinZweigmiteinem
Te rmi na l symbo l kann a l so auch vor dem Er re i chen von d max enden. Der Pseudocode
dieser Methode ist in Algorithmus 15 gelistet.
Search WWH ::




Custom Search