Proseminar Genetische und Evolutionäre Algorithmen

Werbung
Proseminar
Genetische und Evolutionäre Algorithmen
Genetische Algorithmen – Grundkonzept und genetische Operatoren
Vortragender: Frank Förster
Datum: 29.04.02
Inhaltsverzeichnis
1 Einleitung................................................................................................................................................1
2 Grundbegriffe..........................................................................................................................................2
2.1 Individuum/Chromosom..................................................................................................................2
2.2 Gen..................................................................................................................................................2
2.3 Allel.................................................................................................................................................2
2.4 Population........................................................................................................................................3
2.5 Länge (eines Chromosoms).............................................................................................................3
2.6 Genotyp...........................................................................................................................................3
2.7 Phänotyp..........................................................................................................................................3
3 Grundgerüst eines Genetischen Algorithmus..........................................................................................3
4 Codierung / Lösungsrepräsentation.........................................................................................................4
5 Bewertungs− und Fitnessfunktion...........................................................................................................5
6 Selektion (Heiratsschema).......................................................................................................................6
6.1 Selektionsalgorithmen.....................................................................................................................6
6.2 Auswahlalgorithmen........................................................................................................................7
7 Rekombination/Crossover.......................................................................................................................7
7.1 One−Point−Crossover (1−Punkt−Crossover)..................................................................................8
7.2 N−Point−Crossover (N−Punkt−Crossover).....................................................................................8
7.3 Uniform Crossover..........................................................................................................................9
7.4 Shuffle Crossover............................................................................................................................9
7.5 Diagonal Crossover.......................................................................................................................10
7.6 Sequenzoperatoren.........................................................................................................................10
7.6.A Uniform Order−Based Crossover.........................................................................................11
7.6.B Edge Recombination.............................................................................................................11
7.6.C 1−Elter−Sequenzoperatoren..................................................................................................12
7.7 Vergleich der verschiedenen Crossover−Operatoren....................................................................13
8 Mutation................................................................................................................................................13
9 Ersetzungs−/Ergänzungsschema...........................................................................................................14
10 Abbildungs− und Literaturverzeichnis................................................................................................14
1 Einleitung
Genetische Algorithmen − im folgenden GAs genannt − sind ein Teilgebiet oder eine Untermenge der
Evolutionären Algorithmen (EA), sie stellen momentan sogar deren größtes Teilgebiet dar. In dieser
Funktion stehen sie neben den Evolutionsstrategien (ES), der Evolutionären Programmierung (EP) und
der Genetischen Programmierung (GP). Die GP stellt im engeren Sinne eine spezielle Variante der GAs
dar, welche jedoch einen sehr eigenständigen Ansatz verfolgt und deshalb eine besondere Bedeutung
erlangt hat.
Die Unterscheidung in die Teilgebiete ist hauptsächlich durch die Geschichte bedingt. Die Gebiete
nahmen quasi parallel von unterschiedlichen Personen aus ihren Anfang (die GAs z.B. von John
Holland aus, die ES von Ingo Rechenberg aus). Trotz der relativ hohen Ähnlichkeit der vier
Untergebiete existieren natürlich inhaltliche Unterschiede bzw. Unterschiede, die vor allem die
Schwerpunkte der jeweiligen Gebiete betreffen.
Daneben kann man auch eine Blockeinteilung in den „Genetik−Bereich“, also in Genetische
Algorithmen und Genetisches Programmieren und in den Evolutions−Bereich, also die verbleibenden
zwei Teilgebiete vornehmen, um auf eine erhöhte Ähnlichkeit der jeweiligen Gebiete hinzuweisen.
Die GA−“Anhänger“ (und auch die GP−“Anhänger) legen besonderen Wert auf die problemspezifische
Codierung des vom Algorithmus zu „lösenden“ bzw. zu approximierenden Optimierungsproblems, was
die ES− und ER−“Anhänger“ fast vollständig ignorieren.
GAs kodieren ihre Individuen traditionell in Binärstrings (was man darunter versteht, wird im nächsten
Abschnitt genauer erläutert), wohingegen bei den ES und der EP bevorzugt reelle Vektoren verwendet
werden. GAs benutzen damit traditionell die breitest mögliche, ES hingegen die kompakteste aller
Codierungsmöglichkeiten. In zunehmendem Maße verwenden jedoch neuere GA−Anwendungen
ebenfalls eine von der binären Kodierung abweichende Kodierungsform.Generell kann man sagen, dass
sich nicht an ein festes Schema gehalten wird, sondern immer erst im konkreten Einzelfall, in dem ein
Genetischer Algorithmus angewendet werden soll, entscheiden wird, wie die problem−
charakterisierenden Entscheidungsvariablen kodiert werden.
Ein weiterer Hauptunterschied zwischen den unterschiedlichen Teilgebieten der EAs zeigt sich darin,
wie die Individuen selektiert werden. GAs und EP nehmen eine stochastische Selektion vor. Das heißt,
das prinzipiell auch die an der Fitnessfunktion gemessenen schlechtesten Individuen eine Chance auf
Fortpfanzung also auf Weitergabe ihrer Genetischen Information haben. Bei den ES ist dies nicht der
Fall. Die Selektion wird deterministisch vorgenommen, so dass nur die Individuen mit der besten
Fitness ihre Gene weitergeben. Desweiteren arbeitet man bei GAs mit fixen Populationsgrößen, die
Größe der Population bei ES ist variabel.GA−Anhänger schenken auch dem Cross−Over besondere
Aufmerksamkeit, wohingegen ES−Anhänger ihren Augenmerk eher auf Mutation und Cross−Over als
Suchoperator richten.
Dieser Vortrag beschäftigt sich, wie sein Titel schon vermuten läßt, mit den Grundlagen Genetischer
Algorithmen. Die anderen drei Teilgebiete der Evolutionären Algorithmen werden in den folgenden
Vorträgen behandelt.
Einleitung 1
2 Grundbegriffe
Abbildung 1: Abbildung von Entscheidungsvariablen auf ein Chromosom
2.1 Individuum/Chromosom
Unter einem Individuum bzw. einem Chromosom versteht man im Zusammeenhang mit genetischen
Algorithmen einen binären Vektor (binären String), also ein Element aus {0,1}n.
Die Gleichsetzung der beiden Begriffe Individuum und Chromosom verwirrt anfangs ein wenig, da man
von der Biologie her ja weiß, dass jede Eukaryotenart eine charakteristische Anzahl an Chromosomen
besitzt. Es handelt sich in der Natur also um eine 1:n−Beziehung (ein Individuum – mehrere
Chromosomen, im Fall des Menschen 1 – 46). Im Zusammenhang mit Genetischen Algorithmen wird
allerdings darüber hinweggesehen und der eine Begriff mit dem anderen gleichgesetzt. Es gibt auch
einige, wenige GA−Anwendungen, bei denen Individuen durch mehrere Chromosomen codiert werden,
aber standardmäßig identifiziert man die beiden Begriffe miteinander. Dies rührt vielleicht daher, dass
die 1:n−Beziehung für den Vererbungsmechanismus als unwesentlich angesehen wird. Das Individuum
kodiert eine mögliche und gültige Lösung des zu optimierenden Problems.
2.2 Gen
Unter einem Gen versteht man eine bestimmte Stelle des Chromosoms bzw. einen bestimmten
Abschnitt / eine bestimmte Sequenz des Chromosoms. Das Chromosom <1,0,1,1> enthält somit vier
Gene, das Chromosom <1,0,<1,0,1>,1> ebenfalls. Ob man unter einem einzelnen Gen eine einzelne
Stelle oder einen ganzen Abschnitt versteht, geht aus dem jeweiligen Kontext hervor.
2.3 Allel
Ein Allel bezeichnet die konkrete Ausprägung eines Gens. Betrachtet man das Gen als Variable, so ist
das Allel der Wert der Variablen. Bezeichnen die betrachteten Gene einzelne Stellen eines Binärstrings
und keine Sequenzen, so können die jeweiligen Allele natürlich nur die Werte 0 und 1 annehmen.
Grundbegriffe 2
2.4 Population
Als Population bezeichnet man eine Menge strukturell gleichartiger Individuen. Mit Genetischen
Algorithmen wird durch Anwendung genetischer Operatoren (also im Wesentlichen durch Cross−Over
und Mutation) versucht, bessere Lösungen für ein betrachtetes Problem zu finden. Man arbeitet dabei
stets auf einer ganzen Population und nie mit einzelnen Individuen.
2.5 Länge (eines Chromosoms)
Unter der Länge eines Chromosoms versteht man die Länge des Binärvektors also die Anzahl der Gene
eines Individuums.
2.6 Genotyp
Die codierte Lösung/ der codierte Vektor der Entscheidungsvariablen. Der Genotyp ist damit von der
gewählten Codierungsmethode abhängig. Der Ausdruck hat in der Biologie besondere Bedeutung da
eine befruchtete Eizelle einen doppelten (diploiden) Chromosomensatz besitzt und daher jedes Gen
doppelt vorhanden ist. Es ist deshalb oft unklar welches der beiden in Frage kommenden Gene für eine
bestimmtes Merkmal verantwortlich ist.
2.7 Phänotyp
Die decodierte Lösung/ der decodierte Vektor der Entscheidungsvariablen. Der Phänotyop ist von der
gewählten Codierungsmethode unabhängig. Die Ausprägung des dominanten Gens, also das was letzten
Endes sichtbar wird bzw. dominiert, ist im Falle von GAs der tatsächliche, für die Optimierungsaufgabe
maßgebliche Wert der Entscheidungsvariablen.
3 Grundgerüst eines Genetischen Algorithmus
Genetische Algorithmen sind von ihrer Grundstruktur her immer gleichartig aufgebaut und können in
folgende Subroutinen aufgeteilt werden:
1. Codierung des zu optimierenden Problems, also Abbilden des Problems auf ein (binär) kodiertes
Chromosom.
2. Erzeugung und zufällige Initialisierung einer Population (von Individuen). => Generation 0
3. Wiederholung der folgenden Subroutinen bis Abbruchkriterium erreicht:
4. Bewertung der einzelnen Individuen mit Hilfe einer Bewertungsfunktion. Evtl. Berechnung der
Fitness der einzelnen Individuen mit Hilfe einer Fitnessfunktion, insofern sich diese von der
Bewertungsfunktion unterscheidet.
5. Selektion der (Eltern)Paare oder (Eltern)Subpopulation gemäß einer gewählten Selektionsvariante
und Erzeugung der Nachkommen durch eine gewählte Rekombinationsvariante (Cross−Over).
6. Mutation der erzeugten Nachkommen (die natürlich auch durch Chromosomen repräsentiert sind).
7. Ergänzung der neuen Population bzw. Ersetzen der Elemente der aktuellen Generation nach einem
Grundgerüst eines Genetischen Algorithmus 3
gewählten Ersetzungsschema und Überprüfen der Abbruchbedingung (evtl. Generationszähler
inkrementieren, falls vorhanden).
Man könnte die Selektion und Replikation in Punkt fünf nochmals in zwei separate Unterpunkte
einteilen, was jedoch am Grundalgorithmus nichts ändert.
Die fettgedruckten Subroutinen mit Ausnahme der Codierung werden auch als Genetische Operatoren
bezeichnet. Sie werden zumeist auf das jeweilige Problem angepasst und unterscheiden sich somit von
Anwendung zu Anwendung. Sie stellen die Drehregler dar, mit welchen der oben vorgestellte
Grundalgorithmus auf die zu bewältigende Aufgabenstellung eingestellt wird. Auf die verschiedenen
Möglichkeiten an Operatoralternativen und die damit verbundenen Probleme wird im folgenden
genauer eingegangen.
4 Codierung / Lösungsrepräsentation
Wie schon eingangs erwähnt richten die Anhänger der GAs ein besonderes Augenmerk auf die
Codierung eines Problems, also auf die Abbildung der Entscheidungsvariablen eines Problems auf ein
Chromosom.
Eine interessante Codierungsvariante wird in der Genetischen Programmierung eingesetzt. Hier werden
die Individuen nicht mehr durch einen einfachen Vektor repräsentiert, sondern durch lauffähige
Computerprogramme. Dies hängt mit der vom Gründer dieser speziellen GA−Richtung John R. Koza
propagierten Motivation zusammen, Computer zu selbstlernenden Systemen zu machen, d.h. die
Möglichkeit zu schaffen, Probleme durch Computer lösen zu lassen, für die sie nicht explizit
programmiet wurden. Auf das Thema der GP wird in einem der noch folgenden Vorträge genauer
eingegangen.
Die „normale“ binäre GA−Codierung der Choromosomen über Bitverktoren verwendet bevorzugt den
Gray−Code anstelle des Standard−Binärcodes. Der Grund dafür ist einerseits die z.T. große
(durchschnittliche) Hamming−Distanz des Standardbinärcodes, andererseits aber auch die
unterschiedliche Wertigkeit zwischen benachbarten Stellen.
Unter der Hamming−Distanz versteht man den Abstand zwischen zwei gültigen Codeworten bzw. die
Anzahl der Bits, die man invertieren muss, um von einem gültigen Codewort zu einem anderen zu
gelangen. Die Hamming−Distanz benachbarter, binär dargestellter natürlicher Zahlen im
Standardbinärcode kann dabei beliebig groß werden, wenn man den zulässigen Zahlenbereich nur groß
genug wählt. Dies erschwert die Konvergenz eines Genetischen Algorithmus unnötig, also die
verstärkte Suche in erfolgsversprechen Gebieten des Suchraumes.
Ein kleines Beispiel zur Verdeutlichung: Die Hamming−Distanz zwischen den binären
Repräsentationen von beispielsweise 7 und 8 beträgt vier (0111 → 1000), da vier Bits invertiert werden
müssen. Die beiden Werte liegen also was ihre Hamming−Distanz betrifft wie auch von der
„genetischen Ähnlichkeit“ her bezüglich des Standardbinärcodes recht weit auseinander, obwohl sie
nahe beiander liegende Werte repräsentieren. Auf der anderen Seite haben beispielsweise die Zahlen
100001 und 000001 (also 33 und 1) lediglich einen Abstand von 1. Eine zufälllige Mutation könnte also
die eine Zahl in die andere überführen und die durch diesen Wert repräsentierte Entscheidungsvariable
wesentlich verschlechtern oder verbessern. Es sind also große Sprünge im Phänotyp möglich.
Die unterschiedliche Wertigkeit der Stellen im Standardbinärcode ist offensichtlich. Bei einer durch
eine Sequenz repräsentierten Entscheidungsvariablen – unabhängig davon ob man nun die binäre
Sequenz als einzelnes Gen definiert oder eine Sequenz von Genen zur Kodierung heranzieht – ergibt
sich folgendes Problem: Je weiter vorne man sich in in der Sequenz befindet, desto größer ist die
Codierung / Lösungsrepräsentation 4
Zweierpotenz und desto höher ist die Wertigkeit der betreffenden Stelle. Eine Mutation die weiter vorne
in der Sequenz ansetzt hat damit natürlich für den codierten Wert ein größeres Gewicht als eine weiter
hinten ansetzende Mutation. Dieses Ungleichgewicht müsste durch eine geringere
Mutationswahrscheinlichkeit auf den vorderen Stellen ausgeglichen werden. Beim Crossover, dem
wichtigsten Operator der GAs, auf den später noch näher eingegangen wird, liegt die Problematik für
eine aus beiden Elternteilen gebildete Sequenz ähnlich. Der für den vorderen Teil zuständige Elternteil
hätte einen größeren Einfluss auf die Entscheidungsvariable als der hintere Teil, was aber vermieden
werden sollte.
Der Standard−Binärcode verletzt somit bei der Rekombination und Mutation das von Rechenberg
eingeführte Prinzip der strengen Kausalität, welches aussagt, dass eine kleine Ursache auch nur eine
kleine Wirkung nach sich ziehen sollte.
Der Gray−Code hingegen hat immer eine Hammingdistanz von 1. Der Graycode löst zwar nicht alle bei
GAs auftretenden Codierungsprobleme,aber er reduziert sie zumindest deutlich.
Im Folgenden ein kleines Beispiel von Standardbinärcode und Graycode mit einer Beispielmutation
(d = Hamming−Distanz (k, k−1)):
dezimal
Standardbinärcode
Gray−Code
0
000
000
1
001
(d = 1)
001
(d = 1)
2
010
(d = 2)
011
(d = 1)
3
011
(d = 1)
010
(d = 1)
4
100
(d = 3)
110
(d = 1)
gegeben: dezimal 105 und Mutation an vierter Stelle der Sequenz des Genotyps:
Standardbinärcode:
Graycode
:
1101001 → 1100001 (dez. 97, ∆ : 8)
1011101 → 1010101 (dez. 102, ∆ : 3)
Die gezeigte geringere Veränderung des Wertes einer Variablen durch Mutation an einer Stelle bei
Einsatz von Gray−Codierung trifft jedoch nicht immer zu. Würde man beispielsweise bei dezimal drei
im Graycode das zweite Bit kippen, käme man zur Null, bei der Standardbinärcodierung zur Eins, was
zeigt dass die mutationsbedingten Veränderungen eines Allels bei Einsatz von Gray−Codierung nicht
immer geringfügiger sind.
5 Bewertungs− und Fitnessfunktion
Die Bewertungsfunktion misst die Güte eines gegebenen Individuums bezüglich des zu optimierenden
Zieles, die Fitnessfunktion hingegen bewertet seine Chancen zur Fortpflanzung. In einigen Fällen
werden beide Funktionen gleichgesetzt, da es auf der Hand liegt, dass die am Optimum gemessenen
besten Individuen auch die besten Chancen zur Replikation zugestanden bekommen sollten. Häufiger
ist es jedoch so, daß die Fitnessfunktioneine Funktion der Bewertung darstellt.
Gängig sind dabei die sog. Proportionale oder Lineare Fitness, bei der die Fitness eines Chromosoms in
direkter Proportionalität zur Bewertung steht (Propfit(I) := a*I/B, wobei I die Bewertung eines
Individuums sei, B die Summe der Bewertungen aller Individuen und a ein beliebiger Faktor).
Wie die Bewertungsfunktion einer GA−Anwendung aussieht, ist problemspezifisch. Es existieren keine
allgemeinen diese Funktion betreffenden Regeln.
Bewertungs− und Fitnessfunktion 5
6 Selektion (Heiratsschema)
Die Selektion kann in einen Selektionsalgorithmus und in einen Auswahlalgorithmus aufgeteilt werden.
Der Selektionsalgorithmus weist dabei jedem Individuum einen Wahrscheinlichkeitswert für dessen
Replikation zu. Dieser Wert ist dabei zunächst nur ein Erwartungswert E(I) = µ * ps(I), wobei µ die
Populationsgröße und ps(I) die Selektionswahrscheinlichkeit des betreffenden Individuums ist. E(I) gibt
also die zu erwartende Anzahl der Kopien des Individuums im sog. mating pool an.
Wie das Wort „erwartet“ schon andeutet wird die tatsächliche Anzahl der Kopien des Individuums im
mating pool vom Auswahlalgorithmus bestimmt. Der Unterschied zwischen erwarteter und
tatsächlicher Anzahl wird dabei als „spread“ bezeichnet.
6.1 Selektionsalgorithmen
Ein gängiger Selektionsalgorithmus ist die fitnessproportionale Selektion, bei der ps(I) direkt
Ij
proportional zur Fitness des jeweiligen Chromosoms ist. ps =
n
Ij
j 1
Φ ist dabei die Bewertungsfunktion, I ein Individuum und j der Index/die Nummerierung der
Individuen (bei n Individuen insgesamt).
Die wichtigsten Alternativen zur fitnessproportionalen Selektion sind rangbasierte Selektion (ranking)
und Wettkampfselektion (tournament selection). Der Grund für alternative Algorithmen ist der
verhältnismäßig niedrige Selektionsdruck der fitnessproportionalen Selektion. Je höher der
Selektionsdruck ist, desto schneller konvergiert der Algorithmus und desto schneller wird ein u.U.
lokales Optimum gefunden. Als Maß für den Selektionsdruck wurde die sog. takeover time eingeführt.
Sie ist definiert als diejenige Anzahl an Generationen, die benötigt wird um mit einem gegebenen
Selektionsalgorithmus bei alleiniger Anwendung der Selektion eine Population zu generieren, die x−1
Kopien des besten Individuums der Ausgangspopulation enthält, wenn x die (fixe) Populationsgröße ist.
Bei der Rangbasierten Selektion steht die Selektionswahrscheinlichkeit nicht mehr in direktem
Verhältnis zur Fitness. Statt dessen werden die Individuen einer Population nach absteigendem
Fitnesswert sortiert und durchnummeriert. Die Selektionswahrscheinlichkeit steht dann mit der so
entstandenen Rangzahl eines Individuums im Verhältnis. Der Selektionsdruck kann dabei über einen
dem höchstrangigen Individuum zugeordneten Erwartungswert Emax, der in Grenzen wählbar ist,
eingestellt werden.
Die Wettkampfselektion stellt Selektions− und Auswahlalgorithmus zugleich dar. Hier werden jeweils
z Individuen (2 ≤ z ≤ x, x = Pop.größe) bei gleicher Selektionswahrscheinlichkeit aus der Population
gezogen, deren Fitness miteinander verglichen und das Beste in den mating pool kopiert. Dies wird x−
mal durchgeführt. Über z kann der Selektionsdruck direkt eingestellt werden: je größer z, umso höher
ist der Selektionsdruck. Die Wettkampfselektion birgt allerdings die Gefahr, dass im Extremfall x
identische Individuen in den mating pool kopiert werden. (s.a. Auswahlalgorithmus roulette wheel).
6.2 Auswahlalgorithmen
Der am weitesten verbreiteste Auswahlalgorithmus ist die sog. roulette wheel selection (auch Roulette−
Prinzip genannt). Anschaulich entspricht dieser Algorithmus einem Glückrad, das in x Abschnitte
unterteilt wird, wenn x die Zahl der Individuen einer Population ist. Die Breite jedes Abschnitts ist
dabei direkt proportional zu der Selektionswahrscheinlichkeit des zugehörigen Individuums. Nun wird
am Rad x mal gedreht und so die Eltern für die nächste Generation bestimmt. Dabei hat ein Individuum
Selektion (Heiratsschema) 6
natürlich umso bessere Chancen ausgewählt zu werden, je höher seine Fitness ist. Im Extremfall besteht
allerdings wie schon bei der Wettkampfselektion die Gefahr, dass x gleiche Individuen ausgewählt
werden. Roulette wheel selection hat damit einen verhältnismäßig hohen spread, ist aber dennoch das
verbreitetste Verfahren.
Einen minimalen spread hat das sog. Stochastic Universal Sampling (SUS). Wieder geht man von
einem Glückrad aus wie schon bei der roulette wheel selection. Auch hier ist die Breite des jeweiligen
Abschnitts proportional zum Erwartungswert E(I) des jeweiligen Individuums I und damit auch zur
Selektionswahrscheinlichkeit. Allerdings werden hier im Gegensatz zur roulette wheel selection x in
gleichmäßigem Abstand um das Glücksrad angeordnete Zeiger verwendet (x wieder Pop.größe). Das
Rad wird hier allerdings nur einmal gedreht und von jedem Individuum werden exakt soviel Kopien in
den mating pool kopiert wie Zeiger auf den zugehörigen Abschnitt zeigen. Dadurch kann
ausgeschlossen werden, dass x mal dasselbe Individuum im mating pool auftritt.
Abbildung 2: SUS Auswahlalgorithmus
7 Rekombination/Crossover
Der wichtigste Suchoperator bei Genetischen Algorithmen ist der Crossover−Operator. Er beschreibt
die Art und Weise, wie das neue Individuum aus zwei oder mehreren „alten“ Chomosomen, also
Chromosomen der Elterngeneration gebildet werden können. Die Eltern werden stochastisch aus dem
mating pool ausgewählt. Wir gehen zunächst von zwei Eltern aus und besprechen Mehr−Elter−
Rekombinationen weiter unten, da sie doch eher die Ausnahme sind. Ob überhaupt ein Crossover
zwischen zwei Eltern stattfindet oder nicht, wird durch die Crossover−Wahrscheinlichkeit pc festgelegt:
Üblicherweise ist pc ≥ 0,6 (nach Empfehlung), womit ein Crossover wahrscheinlicher ist als kein
Crossover. In der Praxis zieht man also eine Zufallszahl u, die im Intervall [0,1[ liegt und vergleicht sie
dann mit dem gewählten pc . Ist die gezogene Zufallszahl größer als pc findet ein Crossover statt,
ansonsten werden die Elternchromosomen so wie sie sind dem Mutationsoperator übergeben, der in der
Reihenfolge der Subroutinen auf das Crossover folgt. Bis hierhin gleichen sich noch alle Crossover−
Varianten, das weitere Vorgehen unterscheidet sich jedoch je nach Variante.
Rekombination/Crossover 7
7.1 One−Point−Crossover (1−Punkt−Crossover)
Dieses Verfahren wählt zunächst zufällig einen Crossover−Punkt, der zwischen 1 und L−1 (L = Länge)
liegt, also eine Grenze zwischen zwei Genen referenziert. Abhängig von diesem Punkt werden nun die
Gene der beiden Chromosomen rekombiniert, indem Teile ausgetauscht werden. Alle Gene, die sich
links vom Crossover−Punkt c befinden (Genindex i < c) werden, vom ersten Elternteil übernommen,
die restlichen Gene des neuen Individuums werden vom zweiten Elternteil kopiert. Beim zweiten
Nachkommen wird analog vorgegangen, jedoch mit vertauschen Elternteilen.
7.2 N−Point−Crossover (N−Punkt−Crossover)
Das N−Punkt−Crossover funktioniert vom Prinzip her genau gleich wie das one−point−crossover, mit
Außnahme der Tatsache, dass n statt nur einem crossover−Punkt bestimmt werden. Üblicherweise ist n
aus Symmetriegründen eine gerade Zahl. Der erste Teil der neuen Chromosomen, also diejenigen Gene
bis zum ersten crossover−Punkt, werden wieder vom asoziierten Elternteil übernommen, der zweite
Teil vom zweiten Elter, der dritte wieder vom ersten Elter etc. .
Abbildung 3: N−Point−Crossover
7.3 Uniform Crossover
Beim Uniform Crossover wird für jedes Bit einzeln geprüft, ob es zwischen den Elternteilen
ausgetauscht wird oder nicht. Maßgeblich ist dabei eine festzulegende Wahrscheinlichkeit pux und eine
bitbezogene Wahrscheinlichkeit Uz (z = 1, 2, ..., L). Ist pux ≥ Uz werden die beiden Bits an Position z
zwischen den Elternteilen ausgetauscht, ansonsten nicht.
Rekombination/Crossover 8
Abbildung 4: Uniform Crossover
7.4 Shuffle Crossover
Das Shuffle Crossover stellt
eine Erweiterung des 1−
Punkt− bzw. N−Punkt−
Crossovers, um einen
zusätzlichen
shuffle−/unshuffle−Schritt
dar. Die Gene werden hierbei
zunächst durchnummeriert
und danach durchmischt
(shuffle). Auf den
durchmischten Chromo−
somen wird dann ein one−
bzw. n−point−crossover
durchgeführt. Abschließend
werden die Gene anhand
ihrer Nummerierung wieder
entmischt (unshuffle).
Abbildung 5: Shuffle Crossover
7.5 Diagonal
Crossover
Das Diagonal Crossover ist ebenfalls eine Erweiterung des N−Punkt−Crossovers. Allerdings verläuft
hierbei die Erweiterung in eine andere Richtung: Es sind nun mehr als zwei Eltern zulässig; Diagonal
Crossover erzeugt aus i Eltern i Nachkommen. Dies veranschaulicht einmal mehr die Abstraktion, die
die Genetischen Algorithmen vom natürlichen Vorbild vornehmen, denn diese Crossover−Variante
Rekombination/Crossover 9
dürfte in der Natur kaum zu finden sein.
Die i Eltern− und Kinder−Chromosomen werden durch (i−1) stochastisch gewählte Crossover−Punkte
in i Abschnitte unterteilt.Eltern und noch leere Kinder werden separat durchnummeriert. Die Bildung
der Kinder geschieht
nun wie folgt: Der erste
Abschnitt des i−ten
Kinder−Chromosoms
wird mit dem ersten
Abschnitt des
zugehörigen
Elternchromosoms −
also dasjenige Eltern−
Chromosom, das seine
Nummer trägt −belegt
(die Allele dieses
Abschnitts werden in
die entsprechenden
Gene des Kindes
kopiert). Der zweite
Abschnitt des Kinder−
Chromosoms wird mit
Abbildung 6: Diagonal Crossover
den Allelen des zweiten
Abschnitts des i+1−ten
Eltern−Chromosoms belegt, der dritte Abschnitt mit den Allelen des dritten Abschnitts des i+2−ten
Elternchromosoms u.s.w.. Ist das letzte Elternchromosom erreicht, also dasjenige mit der höchsten
Nummer, wird wie in einem Rotationsverfahren wieder beim ersten anfangen.
7.6 Sequenzoperatoren
Sequenzoperatoren sind Suchoperatoren, die auf Codierungen von Permutationen arbeiten bzw. speziell
für diese angepasst wurden. Naheliegenderweise kann man für die Optimierung von Permutationen
nicht die üblichen, oben vorgestellten Operatoren verwenden, denn diese würden bei einer binären
Permutations−Codierung mit hoher Wahrscheinlichkeit ungültige Belegungen der einzelnen Elemente
der Permutation erzeugen. Z.B. wäre die Erzeugung zweier gleicher Zahlen in einer Variablen/einem
Gen ohne weiteres möglich, was in einer Permuation aber unzulässig ist. Deshalb wurden in diesem
Bereich spezielle Cross−Over−Verfahren entwickelt. Man kann die Sequenzoperatoren über die Anzahl
der zum Cross−Over herangezogenen Elternchromosomen klassifizieren. So gibt es 1−Elter−, 2−Elter−,
... oder kurz M−Elter−Sequenzoperatoren. Standard sind bei Permutationsoptimierungen ebenfalls zwei
Eltern, also M = 2.
7.6.A Uniform Order−Based Crossover
Uniform Order−Based Crossover gehört zu den 2−Elter−Operatoren und verläuft vom Prinzip her
analog zum oben beschriebenen Uniform Crossover (dessen Verallgemeinerung für Permutationen es
darstellt). Auch hier wird aus positions−bezogenen Wahrscheinlichkeiten eine binäre Maske generiert,
die darüber bestimmt, welche Permutationselemente (Allele) aus dem ersten Elterchromosom und
welche Permutationselemente aus dem zweiten Elterchromosom in die Nachkommen kopiert werden.
Dazu geht man wie in der Abbildung 7 angedeutet vor: In dem dargestellten Beispiel deutet eine Eins in
Rekombination/Crossover 10
der zufällig generierten Bitmaske an, dass die Allel−
Ausprägung des entsprechenden Gens des ersten
Elters in den ersten Nachkommen kopiert wird. Eine
Null bedeutet die Übernahme des asoziierten Allels
des zweiten Elters in den zweiten Nachkommen.
Nun sind noch einige Stellen (Genpositionen) in den
Chromosomen der Kinder frei, und die Allele der
entsprechenden Eltern (Kind 1−Elter 1, Kind 2
−Elter 2) wurden noch nicht verwendet. Die
fehlenden Gene können jetzt selbstverständlich nicht
einfach mit den Allelen des anderen Elternteils an
dieser Stelle gefüllt werden, da es sonst mit größter
Wahrscheinlichkeit zu unzulässigen Belegungen
kommen würde. Statt dessen werden die noch freien
Allele der Eltern in der entsprechenden Reihenfolge
derselben Allele des anderen Elters angeordnet und
die noch offenen Gene des Kindchromosoms von
links nach rechts (in dieser Reihenfolge aufgefüllt).
Zusammenfassend kann man also sagen, dass das
Uniform Order−Based Crossover Informationen
über die relative Reihenfolge der Allele vererbt.
Abbildung 7: Uniform Oder−Based Crossover
7.6.B Edge Recombination
Bei der Edge Recombination werden im Unterschied zum Uniform Order−Based Crossover
Informationen über (direkte) Nachbarschaftsbeziehungen vererbt. Nachbarschaftsbeziehungen würden
in einem Graph als Kanten dargestellt werden, daher die Bezeichnung.
Die Edge Recombination generiert aus zwei Eltern jeweils nur einen Nachkommen. Die in den Eltern
codierte Nachbarschaftsinformation wird dafür in einer sog. edge table abgelegt. In dieser Tabelle
werden hinter jedem Allel die Nachbarallele aus beiden Eltern aufgelistet. Doppelte
Nachbarschaftsbeziehnungen, also Nachbarschaften die in beiden Elternteilen auftreten, werden dabei
mit einem Minuszeichen gekennzeichnet und beim eigentlichen Cross−Over bevorzugt behandelt. Die
Allele des Kindes werden nun wie folgt bestimmt: Zunächst wählt man zufällig eines der beiden Elter−
Allele an der ersten Genposition und löscht es aus der Auflistung der Nachbarwerte auf der rechten
Seite der Edge table (vgl. Abbildung 8). Anschließend bestimmt man aus der Nachbarschaftsliste des
gewählten Allels ein darauffolgendes Allel (Nachbar des neuen Chromosoms)) nach folgender Priorität:
(1)Zuerst Allele mit Minuszeichen
(2)danach dasjenige Allel mit der kürzesten Nachbarschaftsliste
Sollten dabei mehrere (alte) Nachbar−Allele die gleiche Priorität besitzen, also beispielsweise zwei
Allele mit Minuszeichen bzw. zwei Nachbarn mit gleichkurzer Nachbarschaftsliste, wird unter diesen
eines zufällig bestimmt. Ist auf der anderen Seite die Nachbarschaftsliste eines Allels leer, was vor
allem dann auftritt, wenn schon mehrere Gene des Kinds belegt wurden, wird unter den verbleibenden
Allelen ebenfalls eines zufällig ausgewählt. So belegt man schrittweise die Gene des Kindes bis sein
Chromosom vollkommen bestimmt wurde bzw. die Edge table leer ist.
Rekombination/Crossover 11
Abbildung 8: Edge Recombination
7.6.C 1−Elter−Sequenzoperatoren
Bei den 1−Elter−Sequenzoperatoren handelt es sich streng genommen nicht mehr um Cross−Over−
Operatoren, da mangels einem zweitem Elter kein Cross−Over stattfinden kann. Man könnte sie eher zu
den permutationsspezifischen Mutations−Operatoren zählen. Sie werden im folgenden jeweils ohne
Bild erläutert; die Operator−Bezeichnungen sind dabei fett gedruckt.
Zu den 1−Elter−Sequenzoperatoren zählt der Zweiertausch, der, wie der Name schon besagt, zwei
Allele vertauscht. Die zu tauschenden Gene, also die Positionen der Allele im Binärstring, werden
stochastisch bestimmt. Alle Gene besitzen bezüglich ihrer Auswahl die gleiche Wahrscheinlichkeit 1/L.
Analog existieren Dreiertausch, Vierertausch etc..
Beim Verschiebungsoperator werden in Analogie zum 2−Punkt−Crossover stochastisch zwei Punkte
bestimmt, ein Anfangs− und ein Endpunkt. Das von diesen beiden Punkten eingegrenzte Sequenzstück
wird um eine zufällig bestimmte Anzahl an Gen−Positionen auf dem Chomosom nach rechts
verschoben, die dahinter liegenden Gene rücken um dementsprechend viele Postitionen nach vorne.
Dabei wird das Chomosomende zirkulär auf den seinen Anfang angebildet.
Die Inversion dreht ein zwischen zwei stochastisch bestimmten Punkten liegendes Sequenzstück um:
das hinterste Gen wird innerhalb der Sequenz zum ersten, das zweithinterste zum zweitvordersten etc..
Der Scramble Sublist Operator permutiert die zwischen zwei stochastisch bestimmten Punkten
liegenden Allele in zufälliger Reihenfolge.
Rekombination/Crossover 12
7.7 Vergleich der verschiedenen Crossover−Operatoren
Man vergleicht verschiedene Crossover−Operatoren üblicherweise auf der Grundlage zweier,
unerwünschter Charakteristikas: positional bias und distributional bias.
Unter positional bias versteht man die Abhängigkeit der Wahrscheinlichkeit eines Genaustauschs
durch eine Crossover−Operation von der Position der Codierung der Gene im Chromosom. Besitzt ein
Crossover−Operator ein großes postitional bias, so werden gewisse Gene mit größerer
Wahrscheinlichkeit zwischen den Eltern ausgetauscht als andere. So hat z.B. das 1−Punkt−Crossover
ein relativ großes postitional bias, da die Wahrscheinlichkeit eines Austausch mit wachsender
Positionsnummer zunimmt.
Distributional bias hat ein Crossover−Operator dann, wenn die erwartete Anzahl der beim Crossover
ausgetauschten Gene keiner Gleichverteilung zwischen 1 und L−1 unterliegt. 1−Punkt−Crossover
schneidet diesbezüglich sehr gut ab: es besitzt kein distributional bias. Nachfolgend ein kleiner
Vergleich von ausgewählten auf Binärstings arbeitenden Crossover−Operatoren:
positional bias
distributional bias
1−Punkt−Crossover
viel
kein
N−Punkt−Crossover
weniger als 1−Punkt−Crossover
mit steigendem N zunehmend
Uniform−Crossover
kein
sehr viel (pux*L) → zunehmend
mit steigender Länge
Shuffle−Crossover
kein
entspricht dem dist. bias des
gewählten Basis−Operators (N−
Punkt, 1−Punkt)
8 Mutation
Wie schon erwähnt spielt die Mutation bei den Genetischen Algorithmen eher die Rolle eines
Hintergrundoperators. Dies drückt sich in einer niedrigen Mutationswahrscheinlichkeit von einzelnen
Bits aus. Verbreitet sind Wahrscheinlichkeiten von pm = 0,01 und pm = 0,001. Der Trend geht allerdings
dahin, dass der Mutation auch bei Genetischen Algorithmen verstärkte Aufmerksamkeit geschenkt
wird.
Unter einer Mutation kann dabei das Kippen eines Bits, also der Übergang zum komplementären Allel
eines Gen verstanden werden, aber auch die zufällige Neubestimmung eines Bits. Die letztgenannte
Variante verringert die Mutationswahrscheinlichkeit noch weiter, da bei binärer Codierung im Mittel
die Hälfte der neu gesetzten Bits identisch mit dem alten Bit sind.
Bei geringer Mutationswahrscheinlichkeit und langen Chromosomen wirkt sich die Mutation im
Normalfall kaum auf die Güte aus. Ungleiche Mutationswahrscheinlichkeiten für unterschiedliche Gen−
Positionen sind ebenfalls keine Ausnahme, insbesondere bei einer Standardbinärcodierung. Hier kann
eine an die einzelnen Bits angepasste Mutationswahrscheinlichkeit die positionabhängige Wertigkeit
von Genen teilweise kompensieren. Generell sollen Mutationen eine zu frühzeitige Konvergenz des
Algorithmus verhindern, indem sie Inhomogenität und Divergenz in die Population bringen. Sie wirkt
somit dem Selektionsdruck entgegen.
Mutation 13
9 Ersetzungs−/Ergänzungsschema
Nachdem neue Individuen durch die bisher beschriebenen Schritte erzeugt wurden, muss entschieden
werden, welcher Anteil der alten Individuen durch neue ersetzt werden soll. Die einfachste Variante
hierbei ist das general replacement, bei dem alle alten Individuen durch neue ersetzt werden. Dieses
Vorgehen besitzt allerdings den Nachteil, dass dadurch potentiell das beste Indviduum der
Vorgängergeneration verloren geht und auch die mittlere Güte der Gesamtpopulation abnehmen kann.
Auf der anderen Seite läuft ein genetischer Algorithmus mit general replacement jedoch nie in Gefahr,
sich auf einige wenige, sehr gute Individuen einzuschießen, und damit möglicherweise seinen
Suchraum negativ einzuschränken und in einem Suboptimum steckenzubleiben. Behält man ein oder
wenige der besten Individuen der alten Generation bei, so spricht man von Elitismus bzw. vom Prinzip
der Eliten. Dieser birgt allerdings, wie soeben schon angedeutet, die Gefahr, dass der Algorithmus zu
früh konvergiert, wenn einige, wenige Individuen sehr viel besser sind als die anderen. Dadurch werden
potentiell bessere Lösungen u.U. nicht mehr gefunden. In einer abgeschwächten Form, man spricht
auch von schwachem Elitismus, unterwirft man die beizubehaltenden Individuen der Mutation, bevor
man sie in die neue Generation übernimmt. Betrachtet man die Ersetzungs−Problematik von der
anderen Seite aus, so könnte man genau so gut fragen, wieviele der neuen Elemente durch Individuuen
der Vorgängergeneration ersetzt werden sollen. Man spricht dann von einem delete−n−last−Schema,
falls die n schlechtesten, generierten, neuen Individuen durch alte ersetzt werden. Wird dabei die alte
Population größenteils übernommen, und ist Anzahl der neuen Individuen sehr viel kleiner als die
Populationsgröße, so spricht man auch von einem „Steady−state“ Ersetzungsschema. Darauf geht
allerdings der nächste Vortrag näher ein.
10 Abbildungs− und Literaturverzeichnis
verwendete Literatur:
Nissen, Volker; Einführung in Evolutionäre Algorithmen; Vieweg Verlag; 1997
Schöneburg, E., Heinzmann, F., Feddersen, S.; Genetische Algorithmen und Evolutionsstrategien;
Addision−Wesley; 1996
Campbell, Neil A.; Biologie; Spektrum Akademischer Verlag; 1997
Alle Abbildungen sind dem oben genannten Buch von Volker Nissen entnommen.
Abbildungs− und Literaturverzeichnis 14
Herunterladen