Information Technology Reference
In-Depth Information
Algorithmus 15
I
NITIALISIERE
-W
ACHSEN
Eingabe:
Knoten
n
,Tiefe
d
, Maximaltiefe
d
max
1:
if
d
=
0
then
2:
n
ziehe Knoten aus
F
mit gleichverteilter Wahrscheinlichkeit
3:
else if
d
=
d
max
then
4:
n
ziehe Knoten aus
T
mit gleichverteilter Wahrscheinlichkeit
5:
else
6:
n
ziehe Knoten aus
FT
mit gleichverteilter Wahrscheinlichkeit
7:
end if
8:
if
n
F
then
9:
for all
c
Argumente von
n
do
10: I
NITIALISIERE
-W
ACHSEN
(
c
,
d
+ 1,
d
max
)
11:
end for
12:
else
13:
return
14:
end if
Mit der Methode
voll
erzeugen wir ausbalancierte Bäume. In jedem Knoten tref-
fen wir bis zur maximalen Tiefe
d
max
eine zufällige Auswahl
nur
aus
F
.Erreichen
wir
d
max
,sowählenwireinzufälligesSymbol
nur
aus
T
.Algorithmus16verdeut-
licht diesen Ablauf noch einmal.
Algorithmus 16
I
NITIALISIERE
-V
OLL
Eingabe:
Knoten
n
,Tiefe
d
, Maximaltiefe
d
max
1:
if
d
d
max
then
2:
n
ziehe Knoten aus
F
mit gleichverteilter Wahrscheinlichkeit
3:
for all
c
Argumente von
n
do
4: I
NITIALISIERE
-V
OLL
(
c
,
d
+
1,
d
max
)
5:
end for
6:
else
7:
n
ziehe Knoten aus T mit gleichverteilter Wahrscheinlichkeit
8:
end if
9:
return
Die Initialisierungsmethode
aufsteigend halb-und-halb
kombiniert die Methoden
wachsen
und
voll
miteinander. Wir generieren hierbei eine gleiche Anzahl an gewach-
senen und vollen Bäumen mit allen möglichen Tiefen zwischen 1 und
d
max
.Dashat
zur Folge, dass eine große Variation an Baumgrößen und -formen entstehen kann.
Für einen erfolgreichen GP empfehlen wir diese Methode, auch in Hinblick auf die
evolutionäre Prinzipien (siehe Abschnitt 10.1.1). Der Pseudocode dieses Verfahrens
ist in Algorithmus 17 gelistet.
12.4.2 Genetische Operatoren
Für gewöhnlich hat eine initiierte Population eine sehr geringe Fitness. Der evolu-
tionäre Prozess kann die anfängliche Population erst durch den Einsatz genetischer
Operatoren verändern. Für einen GP gibt es viele verschiedene genetische Operato-