Studienarbeit - Fakultät für Mathematik und Informatik

Werbung
Studienarbeit
Evolutionäre Algorithmen
Grundlagen, Anwendung und Visualisierung
Dr. rer. nat. Harald Sack
Institut für Informatik
Sommersemester 2004
Universität Jena
Verlegt von
Hannes Schrödter
Matrikelnummer 39583
April – September 2004
1
Aufgabenstellung
Evolutionäre Algorithmen (EA) dienen bereits seit vielen Jahren als bewährte Strategie zur
Optimierung schwieriger Problemstellungen. Der Anwendungsbereich reicht vom Problem
des Handlungsreisenden über das Job-Scheduling-Problem, Stundenplanerstellung, Schaltkreisentwürfe und -verfikationen bis hin zur intelligenten Robotersteuerung. In dieser Arbeit
sollen die Grundlagen der Evolutionären Algorithmen verdeutlicht, sowie ihre aktuellen
Einsatzgebiete recherchiert und dargestellt werden. EA sollen mit konkurrierenden Verfahren
(Heuristiken, Simulated Annealing, etc.) verglichen und bewertet werden. Die Implementierung eines EA mit einem Java-Applet ist Bestandteil der Arbeit, wobei der Schwerpunkt auf
der anschaulichen Visualisierung der Arbeitsweise des EA liegt.
2
Inhaltverzeichnis
Seite
I. Einleitung
5
II. Grundlagen
6
II.1. Optimierung
II.1.1. Das Problem der Optimierung …………………………...……...
6
6
II.2. Das Mutation- Selektions- Verfahren
II.2.1. Das Verfahren ……………………………………...……………
II.2.2. Das Travelling Salesman Problem (TSP) ……………....………..
II.2.3. Varianten zum Mutations-Selektions-Verfahren (MSV).……..…
9
9
10
10
II.3. Genetische Algorithmen
II.3.1. Das biologische Vorbild …………………………………………
II.3.2. Die Abgrenzung zum MSV ……………………………………..
II.3.3. Der Algorithmus ………………………………………………...
II.3.4. Genetische Operationen ………………………………………….
II.3.4.1 Auswahlverfahren ………………………………………
II.3.4.1.1. Das Roulette-Auswahl-Verfahren ……………
II.3.4.1.2.Auswahl durch Zufallszahlen ………………...
II.3.4.1.3. Lineares Ranking ……………………………..
II.3.4.1.4. Die (N,µ)-Selektion ………………………......
II.3.4.2 Rekombination ……………………………………….…
II.3.4.2.1. Ein-Punkt-Rekombination ……………………
II.3.4.2.2. Zwei-Punkt-Rekombination ………………….
II.3.4.2.3.Gleichmäßige Rekombination ………………...
II.3.4.2.4. Intermediäre Rekombination …………………
II.3.4.2.5. PMX-Rekombination ………………………...
II.3.4.3. Mutation ………………………………………………..
II.3.4.4.Inversion ………………………………………………...
II.3.5. Diploidie und Dominanz …………………………………………
II.3.6. Konvergenzsätze …………………………………………………
II.3.7. Hybride Verfahren ...…………………………………………….
13
13
13
14
16
16
16
17
17
18
18
18
18
18
19
19
19
19
20
20
22
II.4 Evolutionsstrategien
23
II.4.1. Das Verfahren …………………………………………..……….. 23
II.4.2 .Mehrfache Zielsetzung (Vektor-Optimierung) …………..……… 24
II. 5 Neuronale Netze
II.5.1 Vorwärts gerichtete einstufige Netze ……………………..……..
II.5.1.1 Das Neuron ……………………………………..……...
II.5.1.2 Einstufige neuronale Netze ……………………..……..
II.5.1.3 Lernen durch Optimieren ………………………..……..
26
26
26
26
27
3
III. Beispielprogramm
28
III.1. Sinn und Zweck des Programms
28
III.2. Das Optimierungsproblem
28
III.3. Womit ist es geschrieben?
28
III.4. Umsetzung als evolutionärer Algorithmus
28
III.5. Bedienung
30
III.6. Verbesserungen
33
IV. Zusammenfassung und Überblick
35
A
Glossar
36
B
Wichtige Internetadressen
37
C
Abkürzungen und Akronyme
38
Literaturverzeichnis
39
Index
40
4
I. Einleitung
Die Natur kann leicht als riesiges Optimierungsverfahren angesehen werden. In der uns umgebenden Welt der Physik wählt zum Beispiel das Licht unter allen möglichen stets diejenige
Lichtbahn, mit welcher das Ziel in minimaler Zeit erreicht werden kann. Dies ist als Fermat’sches Prinzip bekannt. In der Mechanik erfolgen Bewegungen von Massen unter Bedingungen von Extremprinzipien. In der Biologie hat die Evolution die Individuen, welche ihren
Artgenossen in Eigenschaften und Beschaffenheit überlegen waren, also die „optimalsten“,
selektiert.
Auch die Menschheit sieht sich ständig Optimierungsproblemen gegenüber gestellt. Diese
erstrecken sich über Bereiche der Ökonomie, also Produktionsstrategien etc. , über technische
Aufgabenstellungen bis hin zum persönlichen Bereich, zum Beispiel bei sportlichen Wettkämpfen und Spielen.
Im Gegensatz zur Natur, die die optimalen Lösungen offenbar einfach zu kennen scheint,
muss der Mensch diese berechnen. Er arbeitet dazu konstruktiv an bestmöglichen Verfahren.
Die Mathematik bietet hierzu zahlreiche Ansatzmöglichkeiten. Allerdings haben diese ein
begrenztes Anwendungsspektrum. Das Optimieren von Stundenplänen, Maschinenauslegungen, Routenplanung usw. sind so nicht lösbar. Die Aufgaben sind, beispielsweise aufgrund
von vielen Restriktionen, nicht in einer Lösungsgleichung auszudrücken, sie passen in kein
mathematisches Kalkül. Ein weiterer Grund für die Nichtlösbarkeit entsteht, wenn sich die
Bestimmung eines Extremas einer solchen Gleichung als NP-vollständiges Problem herausstellt.
Die aus diesen Gedanken entstandene Idee besteht darin, zu versuchen, die in der Natur gegebenen Optimierungsverfahren auf die für uns unlösbaren Probleme anzuwenden.
Ein solches Verfahren ist die Optimierung mit evolutionären Algorithmen, welche sich an der
Evolutionsbiologie orientiert.
In dieser Arbeit werden zunächst die Grundbegriffe und Basisverfahren der evolutionären
Algorithmen vorgesellt werden. Nachdem das Problem der Optimierung genauer erläutert
wird, werden immer komplexere und leistungsfähigere Verfahren und die dazugehörigen
Begriffe und Operationen erklärt.
Das Hauptaugenmerk der Arbeit liegt auf der Entwicklung und Vorstellung eines Anwendungsprogramms. In diesem wird eines der vorgestellten Verfahren auf ein erdachtes Optimierungsproblem angewandt. Wichtig soll dabei sein, dass die Arbeitsweise unter verschiedenen Eingabebedingungen schrittweise visualisiert wird.
5
II. Grundlagen
II.1 Optimierung
II.1.1. Das Problem der Optimierung
Die wohl einfachste Übertragung eines Beispiels aus der Praxis für eine n-dimensionale Optimierung ist die Suche nach Extrema einer reellwertigen, mindestens zweimal stetigdifferenzierbaren Funktion f(x). Erweitert man die Suche auf eine Funktion f (x,y) , so liegt
statt einer Kurve eine Fläche im dreidimensionalen Koordinatensystem vor (Abb.1). Während
sich hier die Extrema als Bergspitzen und Taltiefpunkte vorstellen lassen, versagt bei einer
Funktion mit n Variablen jede bildliche Vorstellung. Selbst für diese Funktionen existieren
wohldefinierte Algorithmen zum Auffinden der Maxima und Minima, solange sie in die Klasse der mindestens zweimal stetig-differenzierbaren Funktionen passen.
Abbildung 1: Fläche im dreidimensionalen Koordinatensystem ([Ki94])
Die meisten anwendungsorientierten Optimierungen gehören nicht in diese Klasse oder die
entstehenden Lösungssysteme sind zu komplex.
- Beispiele dafür sind:
Anordnung von Schaltelementen in Schaltkreisen:
Auslastung von Maschinen:
Lagerhaltung:
Minimale Kosten
Minimale Leistungswege
Minimale Belegungszeiten
6
Geldanlage:
Pipelines:
Optimale Rendite
Maximale Transportleistung bzw. minimale Energietransportkosten
All diese Probleme werden durch Parameter beschrieben und man sucht nach den speziellen
Parameterwerten, für die eine Bewertungsfunktion, auch Fitness genannt, ein Minimum oder
Maximum annimmt.
- Allgemeine Formulierung:
Gegeben sind endlich oder unendlich viele Zustände Zi . Jeder einzelne Zustand ist
durch Parameter Z i ( p1... pn ) ∈ ℜ definiert. Die Menge aller Zustände heißt Suchraum.
Jedem Zustand ist eine reelle Zahl, die Bewertung des Zustandes, zugeordnet. Die entstehende Funktion f heißt Fitness, für S den Suchraum und R die Menge der reellen
Zahlen, gilt:
f:S→ ℜ
Gesucht ist ein Zustand, für den die Fitness den maximalen Wert annimmt, das heißt:
Z mit f ( Z ( p1... pn )) → max
Es werden nun kurz einige klassische Optimierungsverfahren vorgestellt.
- Extremwertberechnung über Ableitungen:
Die Fitness ist eine zweimal-differenzierbare Funktion. Nullstellen der ersten Ableitung liefern die Lagepunkte der Extrema und die zweite Ableitung enthält die Informationen, ob ein Maximum oder Minimum vorliegt.
- Suchmethode:
Liegen nur endlich viele Zustände vor, kann man durch systematisches Durchsuchen
des Suchraums das Maximum der Fitness finden.
- Gradientenmethode (Methode des steilen Anstiegs):
Die Fitness-Funktion muss differenzierbar sein. Da der Gradient einer Funktion als
Vektor die Richtung des steilsten Anstiegs angibt, kann man in einem Iterationsverfahren, von einem Startpunkt ausgehend, einen neuen Punkt suchen, so dass die vektorielle Differenz zwischen den Punkten die Richtung des Gradienten besitzt. Das Iterationsverfahren konvergiert gegen das nächstgelegene lokale Maximum.
- Simplexmethode:
Ist die Fitness-Funktion linear und liegen lineare Nebenbedingungen vor, bildet der
Suchraum einen n-dimensionalen Simplex (n = 2 : ein Vieleck). Einer der Eckpunkte
ist der Lagepunkt des Maximums. Das Simplexverfahren ermöglicht unter Einsatz des
Austauschverfahrens das systematische Absuchen der Eckpunkte auf Qualität.
7
Abbildung2: Eine für klassische Optimierungsverfahren ungeeignete Kurve
Probleme ergeben sich dadurch, dass die Fitness zumeist eine für die klassischen Verfahren
unlösbare Form hat (vgl. Abb.2). Verstärkt wird das Problem oft durch eventuell geforderte
Nebenbedingungen, welche Zustände ausschließen (unerlaubte Gebiete in unserer Landschaft). Bei chaotischen Funktionen stellt es sich oft als äußerst schwierig heraus unter den
lokalen das globale Extremum ausfindig zu machen, das heißt unter allen Bergen den höchsten finden. Wenn wir nun noch den Schritt zu Optimierungen mit mehreren Kriterien, also mit
mehreren Zielfunktionen (Maximaler Gewinn bei minimaler Leistung), machen, erreichen wir
die Grenzen der klassischen Verfahren schnell. Da man dies erkannte und auch Probleme, für
die es keinen Ansatz für eine algorithmisch deterministische Lösung gab, lösen wollte, lassen
sich speziell bei der betrieblichen Durchführung
(Personal- über Materialplanung,...)verschiedene Realisierungsphasen ausmachen:
Stufe 1: Man verfährt nach eingespielten Regeln, die sich bewährt haben, aber in
keiner Weise Optimalität garantieren.
Stufe 2: Neben den Hilfsmitteln der Stufe 1 benutzt man zusätzlich Listen und
ausgearbeitete Strukturpläne.
Stufe 3: Statt der Listen benutzt man Datenbanken.
Stufe 4: Rechnergestützte Optimierung bilden die Basis für Realisierungen. Dies
garantiert optimale Durchführung.
Da die analytische Vorgabe zwar ein deterministisches Vorgehen erlaubt, dabei aber die Anwendungen einschränkt, wird zunehmend anstatt dessen die Potenz von Rechnern genutzt.
Dabei wird im Wesentlichen, unter der Kontrolle von solchen Regeln, die der Evolution abgeschaut wurden, so lange an dem Problem „herumprobiert“, bis ein Maximum gefunden wurde.
Die unter diesem Gesichtspunkt entwickelten Verfahren werden in den folgenden Abschnitten
erklärt.
8
II.2 Das Mutation- Selektions- Verfahren
II.2.1. Das Verfahren
Die einfachste Form eines an evolutionären Prinzipien orientierten Verfahrens ist das Mutations-Selektions-Verfahren (MSV) ([Rec73]).
- Die meisten Optimierungsaufgaben lassen sich in folgender Form ausdrücken:
Gegeben ist eine Menge M, bestehend aus Vektoren. Gesucht ist der Vektor, für den
eine vorgegebene Funktion f, definiert auf M, ein Maximum annimmt.
f:M→R
- Das Lösungsverfahren genügt der folgenden Grundregel:
Man gehe aus von einem Startvektor v und verändere diesen mit Hilfe von Zufallszahlen. Ist die zu maximierende Funktion f für den neuen Vektor größer, ersetze man v
durch diesen, anderenfalls vergesse man ihn. Dies wiederhole man mehrfach.
Obwohl man mit diesem Verfahren oft nur lokale und nicht absolute Maxima anstrebt, finden
sich genügend Anwendungen. Der Grund dafür liegt darin, dass für viele nichtlineare Probleme keine alternativen Lösungsansätze existieren und die Codierung des Verfahrens, aufgrund
von einfachen Programmschleifen, unkompliziert ist.
Wir formulieren nun das Problem ausführlicher :
- Es sei M eine Menge von n-dimensionalen Vektoren mit reellen oder ganzzahligen
Koordinaten, dass heißt M = {x | x = ( x1...xn ), xi ∈ ℜ}. Es sei f eine Funktion, die M
in die Menge der reellen Zahlen überführt, also f : M → ℜ
- f(x) heißt Fitness-Funktion und x ein Chromosom
- Gesucht ist x ∈ M , so dass f(x) maximal ist.
Grundlagen des Verfahrens ist die schrittweise Veränderung des Chromosoms x und die
schrittweise Überprüfung, ob die Fitness F(x) sich bei dieser Veränderung vergrößert oder
verkleinert.
Die auf Zufallsprozessen basierende Veränderung nennen wir Mutation. Diese können verschiedenartig durchgeführt werden:
- Mutation 1: x є M enthält reelle Koordinaten.
Verändere alle Koordinaten von x um einen kleinen Wert.
- Mutation 2: x є M enthält reelle Koordinaten.
Verändere nur eine Koordinate um einen kleinen Wert.
- Mutation 3: x є M enthält reelle Koordinaten.
Jede Koordinate wird um r verändert, wobei r aus einer Wahrscheinlichkeitsverteilung ermittelt wird.
Eine günstige Methode ist die Folgende:
Man verändere die zu mutierende Größe x zu x’ = x + z ⋅ d , wobei z eine Zufallszahl mit
− 1 ≤ z = 1 ist und d ein beliebige Zahl (z.B.0,5), welche die Mutation zusätzlicher gröber oder
feiner ablaufen lassen kann.
Damit unsere Programme nicht in einer Endlosschleife laufen, müssen wir ein Abbruchkriterium festlegen. Ist die Soll-Fitness bekannt , so können wir abbrechen, wenn dieser Wert bis
auf eine vorgegebene Genauigkeit erreicht wird. Ist sie nicht bekannt, so stoppt man bei einer
9
Maximaliterationszahl oder wenn keine wesentlichen Veränderungen der Fitness mehr erreichbar sind.
Für viele Anwendungen existieren Nebenbedingungen, wie zum Beispiel die optimale Lagerhaltung bei Produktionsplänen.
Die Existenz solcher Nebenbedingungen bedeutet für das Verfahren, dass bei der Mutation
nur Chromosomen neu entstehen dürfen, die diesen Nebenbedingungen genügen. Es muss
also nach jeder Mutation das neue Element auf Einhaltung der Nebenbedingungen geprüft
werden.
Dadurch ergibt sich folgende Darstellung für unseren Algorithmus:
(1) Wähle ein Anfangschromosom x є M, welches alle Nebenbedingungen erfüllt.
(2) Verändere das Chromosom x zu x’ (Mutation).
(3) Prüfe, ob x’ alle Nebenbedingungen erfüllt, falls nicht, fahre fort bei (2).
(4) Falls die Fitness des neuen Chromosoms sich verbessert hat, ersetze das alte
Chromosom durch das neue.
(5) Fahre fort bei (2), falls das Abbruchkriterium nicht erfüllt ist.
II.2.2. Das Travelling Salesman Problem (TSP)
Das TSP (Problem des Handlungsreisenden) gilt als Standardproblem für NP-vollständige
Optimierung. Ein NP-vollständiges Problem ist ein Problem, für dessen Lösung kein Algorithmus existiert, dessen Laufzeit bei Eingabe eines Strings S der Länge n durch ein Polynom
p(n) in n beschränkt ist. Die Aufgabe besteht darin, N Städte zu besuchen und dabei die kürzest mögliche Route zu benutzen. Würde man einfach die Länge aller
½ ⋅ ( N − 1)! Routen berechnen und dann die kürzeste wählen, so würde bei N =20 und einer
Route pro Sekunde das Alter des Universums nicht ausreichen, um die Rechnung zu Ende
führen zu können.
Es existieren Lösungsansätze für bis zu 3000 Stationen. Diese sind oft Mischungen von analytischen und numerischen Methoden oder sie basieren auf neuronalen Netzen (vgl. z.B.
[Ki92]).
Auch selektive Verfahren sind einsetzbar.
Dazu werden die N Städte von 1 bis N durchnummeriert und eine beliebige Permutation der
Zahlen aufgeschrieben. Jede Permutation bestimmt über die Reihenfolge der Städte eine
Route und bildet ein Chromosom für ein Mutationsverfahren. Ordnet man jeder Route R über
die Funktion f(R) ihre Länge zu, so kann man mit F(R) = - f(R) eine dazugehörige Fitness
definieren. Wenn (xi, yi) die Koordinaten einer Stadt darstellen, ist die Fitness durch Formel1:
F = ∑ [( xi − xi +1 ) 2 + ( yi − yi +1 ) 2 ] gegeben.
i
Lediglich die Modulierung der Mutation ist noch zu regeln. Hierbei genügt es nicht eine Zahl
der Permutation per Zufall zu ändern, da sonst Städte in unserer Route gelöscht werden
könnten. Der einfachste Ansatz wäre es, einfach zwei Städte in der Route zu vertauschen. Auf
weitere, effektivere Methoden wird im nächsten Kapitel eingegangen.
II.2.3. Varianten zum Mutations-Selektions-Verfahren
Sehen wir uns die durch Formel 1 gegebene Fitnessfunktion genauer an, so stellen wir fest,
dass diese mehrere lokale Extrema besitzen kann. Da sich bei den bisher betrachteten Verfah10
ren grundsätzlich das Chromosom mit der höheren Fitness durchsetzt, bleiben wir an ein solches lokales Extremum gebunden. Das heißt, wir haben eine gute aber möglicherweise nicht
optimale Lösung, ein lokales statt einem globalen Maximum. Auch beim TSP suchen wir die
absolut kürzeste Route.
Will man diesen Nachteil des Verfahrens ausgleichen, muss man solche lokale Maxima wieder verlassen können. Dazu existieren mehrere Ansätze, die man im Wesentlichen den zwei
folgenden Grundsätzen zuordnen kann:
- Eine Verschlechterung der Fitness ist mit einer gewissen, allerdings sehr kleinen,
Wahrscheinlichkeit möglich (Simulated Annealing).
- Eine Verschlechterung der Fitness ist stets möglich, aber höchstens bis zu einem maximalen
Betrag (Threshold Accepting):
Im Folgenden werden diese Verfahren erläutert.
Simulated Annealing (Simuliertes Kühlen)
Kühlt man flüssige Metallverbindungen in ihren festen Aggregatzustand ab, dann verläuft
dieser Vorgang so, dass die Gesamtenergie minimal wird. Erreicht man dabei lokale Energieminima, so hat die Kristallstruktur mögliche Verunreinigungen. Lediglich das absolute
Minimum garantiert eine reine Struktur.
Der Begriff „Simulated Annealing“ stammt von der Simulation eines solchen Kühlvorgangs
auf einem Rechner. Dabei ergab sich durch langsames Abkühlen eine hohe Wahrscheinlichkeit, das absolute Energieminimum zu finden.
Der Physiker Scott Kirkpatrick übertrug 1982 die Methode des Kühlens auf allgemeine Optimierungsprobleme. Dabei entsprach die Energie der zu minimierenden Zielfunktion.
Hopfield wandte die Methode auf die nach ihm benannten neuronalen Netze an
([Ho82],[Ki92]).
Als Ausgangspunkt schreiben wir das uns bekannte MSV wie folgt um:
(1) Wähle ein Anfangschromosom x є M.
(2) Verändere das Chromosom x zu x’.
(3) Berechne r = F(x’) – F(x).
(4) Falls r>0, wähle x’, andernfalls x.
(5) Fahre fort bei (2)
Um nun auch Chromosomen mit niedriger Fitness eine Überlebenschance einzuräumen, verändern wir den Punkt (4) :
(4) Wähle mit der Wahrscheinlichkeit p(r) x’ als neues Chromosom.
Die Wahrscheinlichkeit muss nun so gewählt werden, dass Chromosomen mit kleiner Fitness
nur sehr selten zugelassen werden. Daher muss p(r) für negative r (F(x’) < F(x)) klein und für
positive r groß sein. Mit der Wahrscheinlichkeit
1
p(r ) =
1 + exp(−r / T )
ist dies gegeben. T ist eine beliebige positive Zahl. Man stellt fest, dass der Grenzwert von
lim
1
p(r ) = ist, also alle Chromosomen gleichwahrscheinlich wären.
p(r) bei
T →∞
2
Des Weiteren wird die Wahrscheinlichkeit, und damit die Überlebenschance „schwächerer“
Chromosomen, mit sinkendem T kleiner. Mathematisch bedeutet dies, dass, wenn man die
11
Konstante T schnell senkt, sich das System zu schnell auf ein Extremum einpendelt. Senkt
man T langsam, hat man die Chance, das absolute Extremum zu finden.
Baut man dieses Wissen in den oben beschriebenen Algorithmus ein, so erhalten wir folgenden, für die praktische Programmierung direkt anwendbaren Algorithmus:
(1) Wähle ein Anfangschromosom x є M.
(2) Verändere das Chromosom x zu x’.
(3) Berechne r = F(x’) – F(x).
1
(4) Berechne die Wahrscheinlichkeit p(r ) =
1 + exp(−r / T )
(5) Wähle eine Zufallszahl z mit 0 ≤ z ≤ 1. Ist z ≤ p dann wähle x’; anderenfalls x als (neues)
Chromosom.
(6) Verkleinere (Temperatur) T.
(7) Falls Abbruchkriterium nicht erreicht ist, fahre fort bei (2).
Threshold Accepting
Dieses Verfahren wurde von G. Dueck, T. Scheuer und H.M. Wallmeier in [DSW93] beschrieben.
Im Gegensatz zum Simulated Annealing erlaubt man das Verlassen lokaler Maxima nicht
über Wahrscheinlichkeiten, sondern über eine Toleranzschwelle. Das heißt, die Fitness des
neuen Chromosoms kann schlechter als die von x sein, allerdings nicht schlechter als F(x) –
T, wobei T eine Toleranzschwelle (threshold) ist. Um es anfangs wieder leichter zu machen,
lokale Minima zu verlassen, beginnt man mit einem relativ großen T, welches permanent verkleinert wird, bis es den Wert 0 erreicht.
Der Algorithmus Threshold Accepting lautet wie folgt:
(1) Wähle ein Anfangschromosom x є M.
(2) Verändere das Chromosom x zu x’.
(3) Berechne r = F(x) - T.
(4) Ist F(x’) ≥ r, wähle x’, andernfalls wähle x als (neues) Chromosom.
(5) Verkleinere T.
(6) Falls Abbruchkriterium nicht erreicht ist, fahre fort bei (2).
Die Sintflut-Methode
Diese Variante des MSV wird von den oben genannten Autoren wie das Threshold Accepting
in [DSW93] beschrieben, allerdings muss hier die Fitness eines „schwächeren“ Chromosoms
mindestens gleich einem Akzeptanzwert T sein, also F(x) ≥ T. Aus dem selben Grund, aus
dem wir T in den oberen zwei Methoden permanent verkleinerten, muss hier nun T erhöht
werden. Stellen wir uns T als Höhe des Wasserstandes in unserer Berglandschaft vor, dann
kann der Wanderer, der die höchste Bergspitze sucht und nicht ins Wasser darf, im Laufe des
Verfahrens immer seltener Berge über Täler verlassen und endet schließlich auf der Spitze
einer Insel.
Der Algorithmus Sintflut-Methode lautet wie folgt:
(1) Wähle ein Anfangschromosom x є M sowie eine Zahl T.
(2) Verändere das Chromosom x zu x’.
(3) Berechne F(x’).
(4) Ist F(x’) > T, wähle x’, andernfalls wähle x als (neues) Chromosom.
(5) Vergrößere T um das Inkrement є.
(6) Falls Abbruchkriterium nicht erreicht ist, fahre fort bei (2).
12
II.3. Genetische Algorithmen
II.3.1. Das biologische Vorbild
Die biologische Genetik, insbesondere aber die Evolutionstheorie, diente als Vorbild für die
Entwicklung der genetischen Algorithmen.
Bekanntlich sind die Informationen über Struktur und Fähigkeiten eines biologischen Individuums in den Chromosomen codiert. Diese bestehen aus Desoxyribonukleinsäure (DNA). Die
Moleküle, die in einer Kette zu einem Chromosom aufgereiht sind, entsprechen in der Informatik jeweils einem String über einem Alphabet mit vier Zeichen (Adenin(A), Thymin(T),
Cytosin (C), Guanin (G)). Die in Erbversuchen erfassbaren Erbeinheiten (Blütenfarbe usw.)
bezeichnet man als Gene.1865 erforschte Johann Gregor Mendel seine Vererbungsgesetze,
welche er durch Kreuzungsversuche an Erbsen erhielt und in denen er die Vererbung der
durch Gene charakterisierten Eigenschaften beschreibt.
Durch weitere Kreuzungsversuche fand T. H. Morgan Vererbungsgesetze, die nur dadurch
erklärbar sind, dass bei der Fortpflanzung ein Bruch von zwei homologen Chromosomen erfolgt und die Bruchstellen sich dann über Kreuz verknüpfen.
Des weiteren kommt es in der Natur durch Mutation zu Veränderungen von Chromosomteilen. Durch sie entstanden zum Beispiel verschiedene Rassen und Haustiere.
1859 veröffentlichte Charles Darwin seine Selektionstheorie.
Darwin beobachtete und konstatierte die folgenden Sachverhalte:
- Die Lebewesen erzeugen mehr Nachkommen, als zum Erhalt der Rasse notwendig wäre,
aber nicht alle können überleben.
- Die Nachkommen eines Elternpaares variieren in ihren Eigenschaften und Fähigkeiten.
- Jene Lebewesen, deren Eigenschaften zum Futtererwerb, zur Ausnutzung des Lebensraumes
und zur Paarung am günstigsten entwickelt sind, überleben und verdrängen die anderen.
Dies führt zu einer Selektion der am besten an ihre Umwelt angepassten Lebewesen. Diese
natürliche Auslese führt über Generationen zu einer Umbildung der Arten.
Selektion und damit Evolution funktionieren, wenn die folgenden Voraussetzungen gegeben
sind.
- Es gibt eine Population von Individuen.
- Die Individuen einer Population variieren in ihren Eigenschaften.
- Die Fähigkeit zum Überleben (Fitness) hängt von diesen Eigenschaften ab.
- Die Individuen einer Population besitzen die Fähigkeit der Reproduktion:
Obwohl die Evolutionsstrategie die Wirklichkeit auf ein Modell reduziert, ist sie eine leistungsfähige Erklärung der Entstehung der Arten.
Bei den evolutionären Algorithmen versucht die Evolution so auf dem Computer zu simulieren, dass theoretische Konstrukte evolutionsanalog entstehen.
II.3.2. Die Abgrenzung zum MSV
Die wesentliche Erweiterung gegenüber den Selektionsverfahren ist die Einführung einer
Population von Individuen, die genetischen Operationen ausgesetzt werden, bevor eine Reproduktion und damit eine Selektion erfolgt.
Die damit verbundene Erhöhung der Komplexität des Verfahrens, die sich in Rechenzeit und
Programmieraufwand niederschlägt, garantiert eine wesentliche höhere Wahrscheinlichkeit,
das globale Optimum der Fitness aufzufinden. In unserem Landschaftsmodell wäre zum Beispiel eine ganze Population von Wanderern unterwegs.
13
Weitere Vorteile bietet die genetische Operation der Rekombination, da im Sinne der Fitness wertvolle Strings möglicherweise Teilstrings enthalten, die einen höheren Fitnesswert
begründen.
Die Mutationsrate wird bei den „Genetischen Algorithmen“ (GA) im Allgemeinen sehr gering gehalten, da durch sie wertvolle Strings schnell verloren gehen können.
Da bei der Reproduktion auch Individuen mit hoher Fitness „vergessen“ werden können, ist
es erneut möglich, lokale Maxima zu verlassen.
II.3.3. Der Algorithmus
Es existieren verschiedene Varianten, die unter den Begriff „Genetische Algorithmen“ fallen.
Im Folgenden wird eine Grundform beschrieben, auf die Varianten später eingegangen.
Gegeben sei eine Menge M. Die Elemente von M bezeichnen wir als Individuen, Strings oder
Chromosomen. Jedes Individuum sei eine Folge der Binärwerte 0 und 1. (z.B. 0101010), also
M = {(b1...bs )}| bi ∈ {0,1}.
Alle Strings besitzen die Länge s. Die Menge M bezeichnen wir als Suchraum.
Eine Fitness-Funktion f ordne jedem Element aus M eine Reelle Zahl zu, also f : M → R
Gesucht ist das Individuum, für welches f(r) optimal wird. Sucht man ein Minimum, lässt sich
durch die Subtraktion f(x) = - f(x), das Problem in die Suche nach einem Maximum umwandeln.
Über Zufallszahlen produzieren wir N Individuen und fassen diese zu einer Menge P zusammen. P heißt Population, genauer: Anfangspopulation.
Wir betrachten nun die einfachsten Formen genetischer Operationen, durch die die Individuen
einer Population verändert werden.
- Mutation:
Man wählt über Zufallszahlen ein Individuum der Population aus. Sodann bestimmt man
über eine weitere Zufallszahl eine Position (Bit) im Individuum und ändere 1 in 0 bzw. 0 in 1.
- Rekombination:
Ab einer Position werden zwei Individuen miteinander gekreuzt. Die zu rekombinierenden
Individuen werden per Zufall ausgewählt, wobei Individuen mit höherer Fitness bei der Auswahl bevorzugt werden.
Individuen mit hoher Fitness sollten überleben und in der neuen Generation vorkommen.
Dies bewirkt die Reproduktion.
- Reproduktion:
Auf Grund der Fitness wird ein Individuum qualifiziert, in die nächste Generation übernommen zu werden, bzw. der neuen Population hinzugefügt zu werden.
Das Konzept der GA basiert darauf, dass in einem Iterationsverfahren bei jedem Schritt mindestens eine der genetischen Operationen ausgeführt wird. Dies geschieht nach einem Wahrscheinlichkeitsprinzip, auf welches später noch genauer eingegangen wird. Die neu entstandenen Individuen werden zu einer neuen Population (Generation) zusammengefasst. Da die
Reproduktion Individuen mit guter Fitness bevorzugt, verbessern sich die Populationen von
Generation zu Generation, sowie die Durchschnittsfitness.
Die Grundform des Algorithmus lautet:
(1) Wähle eine Anfangspopulation.
(2) Ermittle aus der Population durch genetische Operationen neue Individuen. Fasse diese zu
einer neuen Population (Generation) zusammen.
14
Wie bereits erwähnt, erfolgt die Auswahl der in Schritt (2) erfolgenden genetischen Operation
probabilistisch. Jeder Operation wird eine Wahrscheinlichkeit (Rate) zugeordnet und zwar
Rekombination:
Wahrscheinlichkeit p(C) (C=Crossover)
(Rekombinationrate)
Mutation:
Wahrscheinlichkeit p(M)
(Mutationsrate)
Reproduktion:
Wahrscheinlichkeit p(R)
(Reproduktionsrate)
Es ist p(C) + p(M) + p(R) = 1.
Die Grundform des Algorithmus kann wie folgt ergänzt werden:
(1) Wähle eine Anfangspopulation P mit N Individuen und definiere P’ als die leere Menge.
(2) Berechne für alle Individuen von P die Fitness.
(3) Führe eine der folgenden Operationen aus:
Rekombination (mit Wahrscheinlichkeit p(C))
Mutation ( mit Wahrscheinlichkeit p(M)
Reproduktion ( mit Wahrscheinlichkeit p(R)
(Es ist p(C) + p(M) + p(R) = 1.)
(4) Füge die neuen bzw. ausgewählten Individuen zur neuen Population P’ hinzu.
(5) Ist die Zahl der neuen Individuen kleiner als N, fahre fort bei (3), andernfalls bei (6)
(6) Die neugewonnenen Individuen bilden eine neue Population P’. Prüfe Abbruchkriterium.
falls es nicht erfüllt ist, setze P= P’ und fahre fort bei (2). (Setze P’ = leere Menge)
(7) Ermittle das Individuum mit der höchsten Fitness als Lösung.
Die Wahl der Raten ist zwar meist anwendungsbezogen, es stellten sich jedoch allgemeine
Abbildung 3: Grundstruktur des Algorithmus
15
Erfahrungsregeln (heuristische Regeln) heraus (vgl [Go89]):
- Die Populationsgröße liegt meist zwischen 50 und einigen hundert.
- Die Rekombinationsrate sollte größer als 0,5 sein (meist 0,6)
- Die Mutationsrate sollte klein sein. Dabei empfiehlt sich bei einer Populationsgröße von
N : p(M) ≤ 1/N.
Die Abbildung 3 zeigt den Rechenverlauf der Grundstruktur des Algorithmus grafisch:
Wie man in der Abbildung gut erkennen kann, handelt es sich um einen hochparallelen Algorithmus, so dass eine Implementierung auf Parallelrechnern sinnvoll erscheint.
II.3.4. Genetische Operationen
In diesem Abschnitt sollen die uns schon bekannten Operationen in ihren Eigenschaften und
Varianten erklärt und weitere Operationen eingeführt werden.
II.3.4.1. Auswahlverfahren
Die an der Fitness orientierten Auswahlverfahren müssen bestimmen, welche Individuen zu
verändern sind und sicherstellen, dass prinzipiell alle Individuen, auch die mit niedriger Fitness, gewählt werden können, diese aber nur mit niedriger Wahrscheinlichkeit.
Derartige Auswahlverfahren werden im Folgenden erläutert.
II.3.4.1.1. Das Roulette-Auswahl-Verfahren
Bei der Roulette-Auswahl haben grundsätzlich Individuen mit hoher Fitness eine hohe Auswahlwahrscheinlichkeit. Die Methode orientiert sich dabei an der Zahlenermittlung beim
Roulettespiel.
Es sei n die Zahl der Individuen in einer Population und 1 ≤ j ≤ N eine Zahl j. Zudem sei f(j)
= f(x(j)), die Fitness des Individuums Nr. j in der Population. Dann definieren wir die totale
Fitness durch
k
F (k ) = ∑ f ( j )
j =i
Offenbar ist F(k) abhängig von k, wobei k eine natürliche Zahl zwischen 1 und N ist.
Man produziere eine Zufallszahl z zwischen 1 und F(N) (Summe aller Fitnesswerte der Population). Sodann wähle man das Individuum p mit der Bedingung F(p-1) ≤ z < F(p).
Das Individuum p gilt dann als ausgewählt.
Abbildung 4 zeigt eine grafische Veranschaulichung des Verfahrens.
Die Flächen der Sektoren entsprechen den Fitness-Werten der Individuen (1,2,3,4). Eine auf
der Kreisperipherie rotierende Kugel fällt in einen Sektor mit der Nummer j und hat damit
Individuum j ausgewählt.
16
Abbildung 4: Roulette-Auswahl-Verfahren
II.3.4.1.2 Auswahl durch Zufallszahlen
Bei diesem Verfahren ermittelt man über gleichverteilte Zufallszahlen zwei Individuen und
wähle das Individuum aus, welches die höhere Fitness besitzt. Das Verfahren tendiert wiederum zu besseren Fitness-Werten, wobei auch Individuen die auf die Gesamtpopulation gesehen schlechtere Fitness-Werte haben, ausgewählt werden können Da zu Beginn einer Iteration nicht alle Fitness-Werte berechnet werden müssen, sondern nur die der gewählten zwei
Individuen, bringt das Verfahren bei großen Populationen eine deutliche Rechenzeitersparnis.
II.3.4.1.3 Lineares Ranking
i −1
)/ N
N −1
eine Wahrscheinlichkeitsdichte in der Form der Abbildung 5.
Für Max + Min = 2 ist pi = ( Max − ( Max − Min) ⋅
(i=1,2,… N)
Abbildung 5: lineares Ranking
k
Ist F (k ) = ∑ pi (i ) die Verteilungsfunktion, so stellt die folgende Vorschrift eine
i =1
fitnessorientierte Auswahl dar:
17
(1) Sortiere die Individuen der Population nach Fitness-Werten in absteigender Folge.
(2) Wähle eine Zufallszahl 0 ≤ z ≤ 1 und ermittle die Zahl j, für die F(j-1) ≤ z < F(j).
(3) das Individuum Nr. j gilt als ausgewählt.
Dieses Verfahren bevorzugt ebenfalls Individuen mit hoher Fitness.
II.3.4.1.4. Die (N,µ)-Selektion
Bei diesem Verfahren werden grundsätzlich nur die µ besten Individuen aus der Population
mit dem Umfang N zur Auswahl zugelassen. Aus den µ besten Strings wird mit der Wahrscheinlichkeit p = 1 / µ ein String ausgesucht. Die Realisierung des Verfahrens sieht wie folgt
aus.
(1) Sortiere die Individuen der Population nach Fitness-Werten in absteigender Folge.
(2) Suche eine Zufallszahl z zwischen 1 und µ.
(3) Das Individuum Nr. z gilt als ausgewählt.
Im Vergleich zu den vorigen Selektionsverfahren haben hier Individuen mit niedriger Fitness
keine Überlebenschance. Man spricht von hohem Selektionsdruck. Dies hat eine frühe Konvergenz des Verfahrens zur Folge und bringt das Problem mit sich, dass man sich schnell auf
ein lokales Maximum, was nicht global sein muss, festlegt.
II.3.4.2. Rekombination
Im Folgenden werden verschiedene Varianten der Rekombination vorgestellt.
II.3.4.2.1. Ein-Punkt-Rekombination
Über eines der vorgestellten Auswahlverfahren werden zwei Individuen als Elternpaar ausgewählt. Nun wird eine natürliche Zufallszahl z, die kleiner oder gleich der Dimension der
Vektoren ist, gewählt und die Koordinaten ab dieser Nr. z bis zum Vektorende vertauscht.
Die neuen Vektoren heißen Nachkommen (off-springs).
Beispiel. z = 4
Eltern 011011
Nachkommen 011100
100100
100011
II.3.4.2.2. Zwei-Punkt-Rekombination
Statt einer werden zwei Zufallszahl x und y bestimmt und eine Überkreuzung zwischen x und
y durchgeführt.
Beispiel. x = 3, y = 4
Eltern 011011
Nachkommen 010111
100100
101000
II.3.4.2.3.Gleichmäßige Rekombination (Uniform Crossover)
Bei dieser Rekombination wird über Zufallszahlen ein Hilfsvektor (Template) produziert.
18
Die Eltern vertauschen die über einem Element des Hilfsvektors stehende Spalte genau dann,
wenn der Template-Vektor eine 0 besitzt ([Sy89]).
Beispiel:
Eltern 1:
0110011010100
Eltern 2:
1011100010110
Template.
1001011001110
Nachkommen 1:
Nachkommen 2:
0010111010100
1111000010110
II.3.4.2.4. Intermediäre Rekombination
Diese Art der Rekombination ist nur für Chromosomen geeignet, deren Elemente reelle Zahlen sind. Die Nachkommen werden dabei genau aus dem Mittel der Eltern gebildet.
Beispiel:
Eltern 1:
-2,2
5,0 2,5
Eltern 2:
2,2 10,0 7,5
Nachkommen:
0,0
7,5 5,0
II.3.4.2.5. PMX-Rekombination
Dieses Verfahren benutzt man für Anwendungen, bei denen die Elemente (Gene) nicht mehrfach vorkommen dürfen, wie zum Beispiel beim schon erwähnten TSP- Problem.
Wenden wir auf die folgenden zwei Routen eine Zwei-Punkt-Rekombination (mit x = 4,
y = 6) an, so stellen wir fest, dass in ihren Nachkommen Städte mehrfach auftauchen.
Eltern 142 376 958 Nachkommen 142 619 958
375 619 248
375 376 248
Um diesen Nachteil zu reorganisieren, vertauscht man in jedem der beiden Strings die Zahlen,
die bei der Rekombination bereits vertauscht wurden, also 6↔3, 1↔7, 9↔6, wenn die Zahlen außerhalb der Markierung stehen und insgesamt doppelt vorkommen.
Nachkommen 742 619 358
915 376 248
Man setzt also jeden, sich aus der Zwei-Punkt-Rekombination ergebenden, Tausch als allgemeine Tauschregel für die Stellen außerhalb des Rekombinationsteil ein.
Diese Art der Rekombination bezeichnet man als PMX-Crossover (Partially matched Crossover).
II.3.4.3. Mutation
Man ermittle zwei Zufallszahlen i und 1 ≤ i ≤ N und 1 ≤ j ≤ p bei einer Population aus N Individuen mit p Bits. Man ermittle und verändere das Bit Nr. j im Individuum Nr. i.
Wie bereits erwähnt, ist die Mutationsrate sehr klein, da durch Mutationen schnell sinnvolle
Informationen verloren gehen könnten. Dennoch ist sie zum Verlassen lokaler Extrema unverzichtbar.
II.3.4.4. Inversion
Dieser Operator heißt Inversion, weil er die Reihenfolge der Bits umkehrt.
19
Es werden über Zufallszahlen zwei Zahlen k < n ausgewählt und in einem beliebigen Chromosom alle Elemente zwischen k und n umgekehrt.
II.3.5. Diploidie und Dominanz
Im Laufe der Evolution setzte sich bei den meisten Pflanzen, praktisch allen Tieren, sowie
beim Menschen ein doppelter Chromosomensatz (Diploidie) durch. Diese führt möglicherweise zu mehr Konsistenz und Stabilität im Erhalt der Populationen. Sind die Eigenschaften
doppelt ausgelegt, kann nur eine der beiden phänomenologisch in Erscheinung treten. Diese
nennt man „dominant“ und jene, die nur im Hintergrund bleiben, sich also nicht durchsetzen,
bezeichnet man als „rezessiv“.
Um diese Vorgabe der Natur algorithmisch umzusetzen, wird jedes Individuum einer Population durch zwei Strings (Chromosomen) charakterisiert. Weiterhin wird festgelegt, welche
Bits als dominant und welche als rezessiv zu betrachten sind. Dabei kann man zum Beispiel
einen String als dominant und den anderen als rezessiv erklären. Bei der Rekombination erfolgt dann von Zeit zu Zeit der Informationsaustausch. In anderen Arbeiten wurde für jedes
Bit einzeln festgelegt, welches der beiden Bits dominant sein soll.
II.3.6 Konvergenzsätze
J. H. Holland, der Vater der genetischen Algorithmen, formuliert einige Konvergenzsätze.
Diese und einige notwendige Definitionen sollen im Folgenden nur aufgezeigt und nicht genauer erläutert werden.
- Allgemeine Konvergenzsätze:
Satz 1: Voraussetzung :
Behauptung:
Erklärung:
Folgerung:
p = Population mit n Elementen.
N = Teilmenge von P.
f(N) = mittlere Fitness aller Elemente aus N.
f(P) = mittlere Fitness aller Elemente aus P1.
Die Wahrscheinlichkeit, dass ein Element aus N in der nächsten
Generation enthalten ist (überlebt), ist bei der Roulette-Auswahl
P = f(N) / f(P)
Mengen von Individuen mit hoher Fitness haben gute Chancen,
sich in der nächsten Generation wieder zu finden. Das zeigt die
Auswahl der besseren Individuen beim Generationswechsel.
Negativ ist aber anzumerken, dass sich dieser Satz lediglich auf
die Rouletteselektion bezieht und weder Mutation noch Rekombination berücksichtigt.
Als Folgerung daraus ergibt sich zum einen, dass die Wahrscheinlichkeit der Anzahl der Elemente von N in der nächsten
Generation
f (N )
n' =
⋅n
f ( P)
ist und zum anderen, dass die Zahl der Elemente mit hoher Fitness im Laufe der Generationsbildung steigt.
20
Satz 2: Die Wahrscheinlichkeit, dass das globale Maximum der Fitness erreicht wird, hat im
Grenzwert für g → ∞ den Wert 1 (g = Zahl der Generationen).
Dieser Satz hat aber lediglich theoretische Bedeutung, weil
- Konvergenzsätze für Schemata:
Definition 1:
(1) Ein Schema ist eine Folge, bestehend aus den Gliedern 0, 1 oder * (* sind
Platzhalter für 0 und 1 um Individuenmengen ausdrücken zu können)
(2) Ein Element eines Schemas entsteht, wenn man jedes * durch 0 oder 1 ersetzt.
(3) O(H) ist die Zahl der Einsen und Nullen eines Schemas H und heißt „Ordnung
des Schemas H“.
(4) δ(H) ist die Differenz zwischen der Position des letzten Gliedes, welches 0 oder 1
ist, und der Position des ersten Gliedes dieser Art und heißt „Länge des Schemas“.
Definition 2:
(1) Es sei n(P) die Zahl der Individuen einer Population P und f(i) die Fitness des
Elementes Nr. i in der Population P.
(2) f ( P) := ∑ f (i) / n( P) heißt „mittlere Fitness der Population
i∈P
(3) Es sei n(H) die Zahl der Individuen eines Schemas.
(4) f ( H ) := ∑ f (i ) / n( H ) heißt „mittlere Fitness des Schemas H“.
i∈H
Satz 3: Es sei n(H,t) die Zahl der Individuen des Schemas H zur Generation t. Dann gilt, falls
nur probabilistische Reproduktionen (Roulette-Auswahl) erfolgen:
n( H , t + 1) = n( H , t ) ⋅ f ( H ) / f ( P )
Hier wird der Blick auf das Vererbungspotential eines Schemas gerichtet.
Es ergibt sich, dass die mittlere Fitness f(H) über Vermehrung oder Aussterben eines
Schemas entscheidet.
Erklärung: Ist nämlich f(H) größer als die mittlere Fitness f(P) der Population,
vermehren sich die Elemente von H, andernfalls sterben sie ab.
Selbst wenn sich nur ein Element eines Schemas in einer Population befindet
und dieses eine überdurchschnittliche Fitness besitzt, wird es sich vermehren.
Die Anteile des übergeordneten Schemas wachsen.
Allerdings liegt hier die idealisierte Annahme zugrunde, dass nur Reproduktion, nicht aber Mutation und Rekombination erfolgen.
Satz 4: Es sei n(H,t) die Zahl der Individuen des Schemas H zur Generation t.
Zudem sei:
f(H) : mittlere Fitness des Schemas H
f(P) : mittlere Fitness der Population P
δ(H) : Länge des Schemas
s : Länge der Populationsindividuen
p(R) : Rekombinationsrate
Es erfolgen nur Reproduktionen und Rekombinationen.
Dann gilt:
n( H , t + 1) ≥ n( H , t ) ⋅ f ( H ) / f ( P ) ⋅ (1 − p ( R ) ⋅ δ ( H ) /( s − 1))
(Die Zahlen n(H,t) sind als Erwartungswerte zu verstehen.)
21
Erklärung: Dieser Satz beschreibt die Vergrößerung eines Schemas.
Voraussetzung dafür ist, dass die mittlere Fitness des Schemas größer ist als
die mittlere Fitness der Population. Dies ist notwendig, nicht hinreichend.
Daher gehen noch p(R) und δ(H) ein.
Satz 5: Es sei n(H,t) die Zahl der Individuen des Schemas H zur Generation t.
Zudem sei:
f(H) : mittlere Fitness des Schemas H
f(P) : mittlere Fitness der Population P
δ(H) : Länge des Schemas
O(H) : Ordnung des Schemas
s : Länge der Populationsindividuen
p(R) : Rekombinationsrate
p(M) : Mutationsrate
Dann gilt :
n( H , t + 1) ≥ n ( H , t ) ⋅ f ( H ) / f ( P ) ⋅ (1 − p ( R ) ⋅ δ ( H ) /( s − 1) − p ( M ) ⋅ o( H ))
(Die Zahlen n(H,t) sind als Erwartungswerte zu verstehen.)
Erklärung: Satz 5 berücksichtigt die genetischen Operatoren Mutation, Rekombination und Reproduktion (Roulette).
Ein Schema H vergrößert sich in einer Population, wenn folgende Vorausetzungen erfüllt sind: - f(H) > f(P)
- δ(H) klein
- O(H) klein
Folgerung: Schemata mit hoher Fitness pflanzen sich daher mit überproportionaler
Geschwindigkeit fort und bilden somit eine Art Rasse, die sich besonders
schnell vermehrt.
II.3.7. Hybride Verfahren
Genetische Algorithmen haben den Nachteil, dass keine Garantie der Konvergenz existiert.
Die Populationen bewegen sich zwar auf fitnessinteressante Gebiete des Suchraums zu, müssen dabei allerdings nicht die relevanten Extrema auffinden. Deshalb bezeichnet man genetische Algorithmen als „weiche“ Verfahren.
Andererseits existieren viele Anwendungen konventioneller Iterationsverfahren, für die man
ihre Konvergenz für günstige Startwerte nachweisen kann. Der Nachteil hierbei liegt darin,
dass die Startwerte nicht zu weit von der zu findenden Lösung entfernt sein dürfen.
Dies führt uns zu der Idee, beide Verfahren miteinander zu verbinden. Man könnte zum Beispiel über einige Generationen eines genetischen Algorithmus einen guten Startwert für ein
Iterationsverfahren sichern oder die Verfahren abwechselnd auf ein Problem anwenden.
Iterationsverfahren sind im Allgemeinen konstruktiv, indem logische einsehbare Konstrukte
algorithmisch eine Verbesserung der Individuen herbeiführen. Es gibt Anwendungen, bei denen dieser konstruktive Anteil als Operator definiert und codiert werden kann. Er wird dann
als Operator in einem genetischen Algorithmus eingesetzt. So kann man zum Beispiel für das
TSP zusätzlich zu den genetischen einen konstruktiven Operator definieren, der von einer
Stadt ausgehend die Nachbarstadt auswählt, deren Entfernung am kürzesten ist ([GG85]).
Es hat sich herausgestellt, dass man mit diesem Verfahren bei bestimmten Anwendungen erstaunliche Rechenzeitersparnisse gewinnt. Sie sind oftmals besser als ihre reinen Ausgangsverfahren und scheinen die Konvergenz zu sichern.
22
II.4 Evolutionsstrategien
Die Evolutionsstrategie (ES) ist ein weiteres Beispiel für ein Optimierungsverfahren, welches
sich an den Prinzipien der biologischen Evolution orientiert. Die genetischen Operationen und
die Kreierung neuer Generationen sind im Prinzip ähnlich der der genetischen Algorithmen,
lediglich die algorithmische Implementierung unterscheidet sich.
Trotz der Ähnlichkeiten war die Entwicklung der Evolutionsstrategien ein eigenständiges
Forschungsprojekt. Sie wurden bereits zu Beginn der siebziger Jahre an der TU Berlin von
Ingo Rechenberg und später Hans Paul angedacht und später von diesem weiterentwickelt
([Rec73],[Sch81]). Erst 1990 kam es zu Kontakten zwischen den GA-Forschern der USA und
ES-Forschern aus Deutschland.
Im nun Folgenden genügt es, nur die von den genetischen Algorithmen prinzipiell abweichenden Eigenschaften zu erklären.
II.4.1 Das Verfahren
Die Basisbegriffe sind die gleichen wie bei den GA: Population, Fitness-Funktion, Mutation, Rekombination, Selektion, usw. Bei den genetischen Operationen ist die Mutation nicht
mehr nur Hintergrund-, sondern Hauptoperator.
-Population:
Eine Population besteht aus N Individuen, wobei jedes Individuum ein reellwertiger
Vektor ist. Die Anfangspopulation wird über reelwertige Zufallszahlen gewonnen, die
Restriktionen genügen. Es werden zusätzlich zu den Systemparametern noch Strategieparameter eingesetzt, deren Bedeutung noch erklärt wird.
- Mutationen:
Es werden alle Vektorkoordinaten gleichzeitig verändert, indem normalverteilte Zufallsgrößen aus N(0, δ ) (Erwartungswert 0, Varianz δ ²) addiert werden. Ist xi eine
Vektorkoordinate, erfolgt die Mutationsänderung durch :
xi neu = xialt + δ i neu ⋅ zi
wobei zi eine normalverteilte Zufallszahl aus N(0,1) und δ i die Standardabweichung
für die i-te Koordinate ist. Die Werte δ i werden dabei aus der Vorschrift
δ ineu = δ ialt ⋅ exp(τ 0 + z0 ) ⋅ exp(τ 1 + z1 ) = δ i ⋅ exp( N ,τ 0 )) + exp( N (0,τ 1 ))
gewonnen, wobei zo und z1 normalverteilte Zufallszahlen aus N(0,1) sind und man die
Faktoren τo, τ1 als Anpassungsfaktoren bezeichnen könnte .
Für diese Faktoren setze man:
τ 0 = α 0 / (2 ⋅ N )
(Anpassung des Individuums)
τ 1 = α1 / 2 ⋅ N
(Anpassung pro Koordinate)
(N = Populationsgröße, α0, α1 Konstanten, N , α 0 , α1 ∈ ℜ )
Wie wir sehen, muss die Standardabweichung ∂i bei jedem Mutationsschritt nicht nur
neu berechnet, sondern auch für zukünftige Mutationen gespeichert werden. Dies rea-
23
lisiert man, indem man für jedes Individuum an den Vektor x noch den Vektor ∂ anhängt. Ein Vektor der Population hat also die Dimension 2N und die Struktur:
x1 x2 … xN ∂1 ∂2 … ∂N .
Die X-Koordinaten nennt man Objektvariablen und die ∂-Koordinaten Strategievariablen. Das Mitführen der Strategievariablen hat sich als effizienzsteigernd herausgestellt ([SBK93]), eine konkrete Begründung dafür fehlt allerdings.
- Rekombination
Obwohl die Mutation der Hauptoperator ist, ist die Rekombination für die Selbstadaption der Strategieparameter unverzichtbar. Man unterscheidet zwischen intermediärer und diskreter Rekombination. Die intermediäre Rekombination produziert
Nachkommen durch Mittlung der Komponenten von zufällig ausgewählten Eltern
(empfohlen für Strategieparameter). Bei der diskreten Rekombination werden die
Vektorkomponenten zufällig von den Eltern übernommen (empfohlen für Objektvariablen).
- Selektion
Evolutionsstrategien selektieren nicht wie die GA über von Fitness abhängige Überlebenswahrscheinlichkeiten, sondern über ein einfaches deterministisches Konzept, die
µbesten Nachkommen überleben. Dazu existieren zwei Selektionsansätze:
(µ,Γ)-Konzept:
µ Eltern produzieren Γ Nachkommen, von denen µ überleben.
(µ+Γ)-Konzept:
µ Eltern produzieren Γ Nachkommen. Von den µ+Γ Individuen
überleben die µ besten.
H. P. Schwefen empfiehlt hierzu ein Verhältnis µ/Γ = 1/7.
II.4.2 Mehrfache Zielsetzung (Vektor-Optimierung)
Die obige Evolutionsstrategie wurde von H. P. Schwefel und seinen Mitarbeitern auf mehrere
Zielfunktionen erweitert. Am Vorbild der Natur wird ein diploider Chromosomensatz mitgeführt mit dominanter und rezessiver Erbinformation.
Abbildung 6: diploider Chromosomensatz
24
Die Abbildung zeigt, dass jedes Individuum der Population durch zwei Vektoren (Chromosomen) charakterisiert wird. Die Vektoren bestehen wie gehabt aus Objekt- und Strategieparametern. Der Vektor (x1,∂1) heißt dominant und der Vektor (x2,∂2) rezessiv.
Die Fitness des Individuums ergibt sich aus der Berechnung der Fitness der einzelnen Vektoren f(x1) und f(x2) wie folgt: F ( x1 ) = α ⋅ f ( x1 ) ⋅ (1 − α ) ⋅ f ( x2 )
Damit die dominante Eigenschaft durchsetzungsfähiger ist, ist α > ½.
Die Operationen der so strukturierten Individuen sind wie folgt definiert:
- Mutation:
Wie bei der ES, für die rezessiven Vektoren wird zusätzlich mutiert
- Rekombination: Wie bei der ES, die rezessiven Vektoren werden zusätzlich rekombiniert. Mit der Wahrscheinlichkeit p = 0,33 werden rezessive und dominante Eigenschaften vertauscht.
- Selektion:
Der Vektor der Zielfunktion sei gegeben durch die Vektorkomponente
Fj (x1), wobei x1 der Vektor der dominanten Information ist. Über
Wahrscheinlichkeitsvektoren wird ermittelt, welche Komponente zur
Selektion herangezogen wird. Diese Komponente ergibt dann die Fitness des Individuums im aktuellen Iterationsschritt. Die schlechtesten
Individuen werden gelöscht.
25
II. 5. Neuronale Netze
Neuronale Netze ermöglichen die Darstellung unscharfer nichtlinearer Zuordnungen, welche
mit herkömmlichen Programmiersprachen und Algorithmen nur schwer oder gar nicht beschreibbar sind. Dieses verfahren orientiert sich an der Vorlage des Gehirns und dessen Fähigkeit Abbildungen zu lernen. Im Abschnitt 5.1 wird die grobe Funktionsweise vorwärts
gerichteter einstufiger Netze erklärt.
II.5.1. Vorwärts gerichtete einstufige Netze
II.5.1.1. Das Neuron
Wenn wir Neuronale Netze mit der Arbeitsweise des Gehirns vergleichen, sollten wir uns
zunächst einige Grunddetails der Gehirnfunktionen ansehen. Das Gehirn ist ein gigantisches
Parallelverarbeitungssystem, in dem die Prozessoren Nervenzellen sind. Diese Zellen, die
Neuronen, kumulieren Spannungen, die von anderen Neuronen elektrochemisch an sie weitergeleitet werden und geben, falls die kumulierte Spannung einen Schwellenwert übersteigt,
selber Spannung an nachgeschaltete Neuronen ab. Die folgende Abbildung beschreibt die
Funktion eines Neurons durch ein mathematisches Modell.
Abbildung 7: Funktion eines Neuron
Die Eingabespannungen e1, e2. e3 werden durch Zahlen charakterisiert und mit den Gewichten w1, w2, w3 multipliziert, bevor sie das Neuron erreichen. Dies entspricht dem Hemmen
oder Verstärken durch die Synapsen. Ist die gewichtete Summe aller Eingangswerte größer
als ein Schwellwert Θ, so wird der Output a vom Wert 0 auf 1 gesetzt.
II.5.1.2. Einstufige neuronale Netze
Formalisiert man das mathematische Modell, dann ist x = ∑ wj ּ ej – Θ der Wert für die gewichtete Summe aller Eingangswerte und F(x) = 0 falls x ≤ Θ und 1 falls x > Θ die Transferfunktion. Der Output a ist definiert durch: a = f(∑ wj ּ ej – Θ).
So können wir zum Beispiel mit a = f ( −3 ⋅ 1 + 2 ⋅ e1 + 2 ⋅ e2 ) die Und-Funktion der Bool’schen
Algebra darstellen: Eingabe:
e1 e2
Ausgabe:
a
0 0
0
1 0
0
0 1
0
1 1
1
26
Betrachtet man Netzstrukturen mit mehren Ausgabemöglichkeiten, verallgemeinert sich die
Formel für die Ausgabewerte zu: a j = F (∑ w jk ⋅ ek − v) .
k
II.5.1.3. Lernen durch Optimieren
Wir stellen uns die Frage, wie man ein Netz findet, welches eine bestimmte Mustererkennung
durchführen kann. Dabei ist die Netztopologie durch die Dimension von Ein- und Ausgabevektoren vorgegeben. Lediglich die Gewichtung und der Schwellwert Θ sind unbekannt.
Besitzt das Netz n unbekannte Größen dieser Art, lassen sich diese zu einem n-dimensionalen
Vektor in einem n-dimensionalen Raum zusammenfassen. Gesucht ist der Vektor des Raumes, für den das Netz korrekt arbeitet, für den also der Fehler ф = ∑ (ai – zi )² den Wert 0 hat.
ai sind hierbei die aktuellen Ausgabewerte und zi die gewünschten Zielwerte.
Damit haben wir eine typische Optimierungsaufgabe: Suche Gewichte und den Schwellwert
Θ so, dass der globale Fehler ф ein Minimum (Null) annimmt.
Aufgrund der Komplexität der Gleichungen kommen nur iterative Optimierungsverfahren in
Frage. Zur Lösung nutzt man Varianten des Gradientenverfahrens:
Dazu bilde man folgende Abbildung:
so dass gilt:
δφ
= Γ(i, j ) und setzt ∆ ф ≈ δф, ∆ w ≈ wij ,
δwij
∆φ = Γ(i, j ) ⋅ ∆wij
Wählt man nun in einem Iterationsschritt: wijneu = wijalt + ∆wij
∆wij = −Γ(i, j )
die Gewichtskorrektur
∆ wij = - Γ(i,j)
dann ist
∆ φ = − Γ (i , j ) 2 π 0
woraus folgt, dass ф kleiner wird und sich dem Minimum nähert.
27
III. Beispielprogramm
Programmbeschreibung „Visuale Auslastung“
III.1. Sinn und Zweck des Programms
Sinn und Zweck des Programms ist es, für ein erdachtes Optimierungsproblem einen evolutionären Algorithmus zu entwickeln und über dessen Visualisierung in einem Java-Applet seine
Arbeitweise zu veranschaulichen.
III.2. Das Optimierungsproblem
In diesem Programm wird ein evolutionärer Algorithmus auf ein betriebswirtschaftliches
Problem angewandt.
Das simulierte Grundproblem ist folgendes:
Eine Maschine läuft zwischen einer und 24 Stunden am Tag. Sie kann zwischen einem und
acht verschiedenen Produkten herstellen. Dazu wird festgelegt, welche Menge von diesem
Produkt von der Maschine in einer Stunde hergestellt werden kann. Die Produktion kann nun
an verschiedene Bedingungen geknüpft werden. Es kann für jedes Produkt festgelegt werden,
welche Mindestmenge pro Tag erforderlich ist.
Die Aufgabe des Programms ist es, eine optimale Produktverteilung zu finden. Optimal heißt
hier, eine möglichst große Gesamtproduktion zu erzielen.
III.3. Womit ist es geschrieben?
Das Programm ist als Java Applet implementiert wurden. Es basiert auf der Java 2 SDK, SE v
1.4.2_04 Plattform. Zu den vordefinierten Standarderweiterungen java.lang, java.applet, java.util, java.awt wurde die Standarderweiterung javax.swing sehr häufig hinzugezogen. Ein
null Layout wurde verwendet, dazu wurde das Pakets com.borland.jbcl.layout zusätzlich importiert. Zum Editieren des Hauptalgorithmus wurde NetBeans IDE 3.6 verwendet. Zum späteren Editieren der Visualisierung und des Designs gab die Trail Version von JBuilder X mehr
Möglichkeiten.
III.4. Umsetzung als evolutionärer Algorithmus
Zur Realisierung der Aufgabe wurden einige in der Ausarbeitung der Grundlagen verdeutlichte Prinzipien der genetischen Algorithmen verwendet.
Zunächst musste das gestellte Optimierungsproblem in die genetischen Grundbegriffe übersetzt werden, um auf diese später genetische Operationen anwenden zu können:
Sei eine Tagesproduktverteilung ein Individuum, welches durch ein Array, dessen Länge der
Produktanzahl entspricht, in seiner Struktur und seinen „Fähigkeiten“ eindeutig beschrieben
ist. Jedes Element dieses Arrays steht für ein Chromosom des Individuums. Das n’te Chromosom trägt die Information der Herstellungsdauer des n’ten Produktes.
Hierbei ist zu beachten, dass es unmöglich ist, dass die Summen aller Chromosomen, und
somit die Herstellungsdauer aller Produkte, die festgelegte Tagesarbeitszeit der Maschine
überschreitet.
28
Um eine spätere Selektierung zu ermöglichen, ist es notwendig, für jedes Individuum eine
chromosomabhängige Nutzenfunktion (Fitness) zu definieren, welche besseren Individuen
eine größere Überlebenswahrscheinlichkeit sichert. Über die Multiplikation der Chromosomen mit der entsprechenden Produktion pro Stunde ist eine solche über die Gesamtproduktion
leicht festgelegt. Um die Durchsetzung der Restriktionen zu sichern, wird jeder Verstoß mit
einer deutlichen Minderung der Fitness bestraft. Dies erfolgt über eine bedingte Subtraktion.
Man ist nun in der Lage, Populationen von Individuen zu erzeugen und verschiedene genetische Operationen anzuwenden, also das eigentliche Optimierungsverfahren zu starten.
Aus fünf zufällig erzeugten Individuen oben beschriebener Art erzeugen wir eine erste Population. Mit Hilfe der Zwei - Punkt - Rekombination auf das erste und zweite Individuum,
erschaffen wir ein sechstes und siebentes Individuum dieser Population. Ein durch zufällige
Mutation erzeugtes achtes und neuntes Individuum vergrößern die Population.
Aus den neun Individuen der Population werden unter Verwendung einer (9,5) – Selektion
die fünf besten Individuen, das heißt diejenigen mit den höchsten Fitnesswerten, als neue
Anfangspopulation ausgewählt und die vier schlechtesten (schwächsten) verworfen. Die fünf
Ausgewählten setzen sich in ihrer Umbebung durch, während die anderen vier beim gewählten Selektionsverfahren, aufgrund der niedrigen Fitnesswerte, keine Überlebenschance haben.
Die Ausgangssituation ist jetzt erneut gegeben und das Verfahren wird auf die neue Eingabe
analog angewandt.
Damit dieses Verfahren terminiert, ist eine Abbruchbedingung notwendig. Verbessert sich die
Fitness des stärksten Individuums der aktuellen Population über 100 Verfahrenschritte nicht
mehr, so ist diese erfüllt. Man kann davon ausgehen, ein zumindest lokales Maximum erreicht
zu haben und das Verfahren wird beendet.
29
III.5. Bedienung:
Im nun Folgenden wird die Bedienung des Applets anhand eines fortlaufenden Beispiels erklärt:
Das Applet startet mit einem Eingabefenster (Abb.8), in welchem alle oben genannten Eingabeparameter über Schieberegler genau einzustellen sind. Das Programm verhindert dabei
Einstellungen für Produkte, die die eingestellte Produktanzahl überschreitet.
Abbildung 8:Applet - Eingabefenster
Ist die Eingabe auf die Wünsche des Nutzers eingestellt, gelangt man über den OK-Button zur
eigentlichen Visualisierung des Algorithmus (Abb.9).
Abbildung 9: Applet – Visualisierung1
30
Im oberen Abschnitt werden zunächst die gegebenen Größen erneut dargestellt, im mittleren
Teil zwei Kreisdiagramme, welche die prozentuale Stundenverteilung verdeutlichen sollen,
angedeutet und im unteren Teil ein, schon auf Produktanzahl und Maximalstunden (weiße
Rechtecke) angepasstes, Balkendiagramm platziert.
Der Nutzer hat nun die Möglichkeit das Führungsindividuum der Ausgangpopulation festzulegen. Als Führungsindividuum wird das Individuum einer Population bezeichnet, welches
die höchste Fitness besitzt. Mit dem Button „mutieren“ erzeugt er dazu ein, mit Hilfe eines
Zufallsgenerators entstehendes, Individuum und mit dem Button „gleichverteilen“ eine höchst
mögliche Gleichverteilung der Arbeitzeit auf die verschiedenen Produkte (Abb.10).
Abbildung 10: links „mutieren“ , rechts „gleichverteilen“
Mit dem Erzeugen eines ersten Individuums wird dieses unmittelbar visualisiert. Das linke
Kreisdiagramm für „vorher“ (1) wird gezeichnet, eine „Gesamtproduktion Vorher“ (2) ausgegeben und die entsprechenden schwarzen Balken in das Balkendiagramm (3) eingetragen.
Wird die Möglichkeit der Voreinstellung des ersten Individuums nicht genutzt, so erzeugt das
Programm dieses beim ersten Start-Drücken unter Verwendung eines Zufallsgenerators selbst.
Abbildung 11: Programmablauf 1
31
Am unteren Appletrand wird der Nutzer aufgefordert eine Schrittweite zu wählen, das heißt
wie viele Evolutionsschritte das Programm intern verarbeiten soll, bis es das, sich bis zu diesem Schritt durchgesetzte, Führungsindividuum visualisiert und eine erneute Wahl der
Schrittweite möglich ist. Mit Betätigung des Start- Buttons wird die eingestellte Schrittweite
umgesetzt.
Abbildung 11 zeigt das Erklärungsbeispiel nach dem ersten Evolutionsschritt. In der aktuellen
Version ist der Evolutionsschritt links neben der Choice-Box zur Schrittweiteneinstellung als
Generation ergänzt wurden. Wichtig ist der Button zwischen den Kreisdiagrammen. Dieser
Zähler wird inkrementiert, wenn die Fitness des Führungsindividuums der aktuellen Population gleich der im vorangegangenen Evolutionsschritt ist. Ist sie größer, so wird der Zähler auf
Null gesetzt. Diese zwei Bedingungen sind ausreichend, da das Verfahren die Existenz eines
im Vergleich zum vergangenen Evolutionsschritt schwächeren Führungsindividuums nicht
zulässt. Dieser Zähler sichert das oben angesprochene Abbruchkriterium.
Die folgenden Abbildungen, zusammengefasst als Abbildung 12, zeigen Ausschnitte des Beispielprogrammverlaufes bis hin zum Finden der, für die Eingabe, optimalen Lösung.
Eine stetige Verbesserung der Führungsindividuen ist zu sehen. Während der Algorithmus
anfangs, hier bis in Abbildung 12.3, schnell stärkere Führungsindividuen findet, zeigt Abbildung 12.4, das die Führungsindividuen mit besseren Fitnesswerten länger überleben. So setzt
sich das Führungsindividuum mit dem Gesamtproduktionsmaximum von 1310 Einheiten,
bereits über 31 Evolutionsschritte durch.
12.1
12.2
12.3
12.4
32
12.5
12.6
12.7
Abbildung 12: Programmablauf 2-8
Die im nächsten Evolutionsschritt erreichten 1340 Einheiten (Abb. 12.5) halten sich über 100
Schritte (Zwischenschritt Abb. 12.6) und bilden damit ein Endergebnis. Diese Lösung stellt
w, in diesem Fall ein globales Maximum, dar. Für die Produkte 2,4 und 5, mit niedriger Produktion, werden lediglich soviel Produkte hergestellt werden, dass die Mindestproduktansprüche, mit dazu minimal notwendigem Produktionsaufwand, gesichert sind. Die restlichen
Arbeitstunden werden dem Produkt 1 (hier auch Produkt 3 möglich) zu Verfügung gestellt.
III.6. Verbesserungen
Im Vergleich zu den anderen Selektionsverfahren haben bei der gewählten (9,5) – Selektion
Individuen mit niedriger Fitness keine Überlebenschance. Man spricht von hohem Selektionsdruck. Dies hat eine frühe Konvergenz des Verfahrens zur Folge und bringt das Problem
mit sich, dass man sich schnell auf ein lokales Maximum, was nicht global sein muss, festlegt.
Die Wahl eines komplizierteren Verfahrens, welches einen geringeren Selektionsdruck ausübt, hätte einen zu großen Zeitaufwand zur Folge und würde die Anschaulichkeit der Arbeitweise des Algorithmus, auf die das Augenmerk lag, kaum verbessern.
Eine wichtige Optimierung wäre es, wenn das Programm bei groß gewählter Schrittweite jeden einzelnen Schritt mit einer geringen Zeitverzögerung visualisieren würde. Das Programm
sollte also, wenn die Schrittweite zehn ausgewählt ist, beim Drücken des Start-Button die
zehn Einzelschritte im Verlauf anzeigen und nach dem zehnten dann anhalten.
33
In denen für die Schrittweite stehenden For-Schleifen, wird in jedem Schritt die Methode aufgerufen, die die Visualisierung veranlasst und letztlich im letzten For-Schritt auch funktioniert. Java hat scheinbar die Eigenschaft, trotz klaren repaint-Befehlen in jedem Schritt,
Schleifenergebnisse fertig zu berechen, und dann nur das Endergebnis auszugeben.
Außerdem, erscheint ohne für mich ersichtlichen Grund der zuletzt gedrückte Button unter
der Choice-Box zur Schrittweiteneinstellung, wenn man diese benutzt hat.
Schicken sie bitte Erklärungen und Begründungen an folgende E-Mail Adresse [email protected].
34
IV. Zusammenfassung und Ausblick
Zusammenfassend ist zu sagen, dass die Abschnitt II vorgestellten Grundlagen als einfache
Wissenssammlung zu sehen ist. Sie stellt eine ausführliche Einleitung zur Thematik der Evolutionären Algorithmen dar und erklärt, unter Verwendung der wesentlichen Definitionen,
was man unter ihnen versteht und wie man sie anwendet. Des Weiteren werden Verfahren
verglichen und von klassischen Optimierungsverfahren abgegrenzt. Die hierzu notwendigen
Informationen stammen vorwiegend aus dem Buch „Optimierung mit genetischen und selektiven Algorithmen“ von W. Kinnebrock [Ki94].
Im Verlauf der Internetrecherche (zusammengefasst in Gliederungspunkt B) taucht das Thema der EA vor allem als Vorlesung der Bioinformatik auf. In dieser Fachrichtung sind die EA
andauernder Bestandteil von Forschung und Lehre. Unter der Kategorie allgemeine Informationen findet man dazu einige Skripte oder Folien verschiedener Hochschulen. Unter den speziellen Informationen befinden sich zusätzlich einige Verweise auf Arbeiten zu Teilgebieten
der EA. In den theoretischen Ausarbeitungen wurden zwar etliche Einsatzgebiete angesprochen, es war aber schwierig, genauere Ausführungen zu finden. Dennoch wird unter speziellen Anwendungen auf einige Diplomarbeiten verwiesen. Auf der Internetseite
http://www.aic.nrl.navy.mil/galist/ (The Genetic Algorithms Archive) findet man eine Vielzahl von Beispielprogrammen, die mit dem in dieser Arbeit vergleichbar sind.
Für den Hauptbestandteil der Arbeit, die Implementierung eines Java-Applet, wurde ein Optimierungsproblem gewählt, zu welcher im Internet keine vergleichbare Anwendung zu finden sind. Bei der Auswahl eines mit einem EA umzusetzenden Problems bestand das Hauptproblem darin, die Eingabeparameter in Individuen umzuformen und eine von ihnen abhängige Fitnessfunktion festzulegen. Sind die Individuen und die Fitnessfunktion definiert, kann
man die verschiedenen Verfahren problemlos anwenden.
Bei der Implementierung kostete die Visualisierung der Arbeitsweise am meisten Zeit und
etwa das zehnfach an Quellcodeumfang des eigentlichen EA.
Obwohl die Komplexität das Programm noch ausgebaut werden müsste, um eine praktisch
(betriebswirtschaftliche) Anwendung zu ermöglichen, erfüllt es den gewünschten Zweck. Es
wird gezeigt, dass EA auf ein sehr breites Spektrum von Optimierungsproblemen anwendbar
sind. Die gedachte Aufgabe kann gelöst werden. Es ist deutlich zu erkennen, dass mit jedem
Arbeitsschritt des EA die Lösung näher an ein Extrema gebracht wird. Das in der Theorie
Erdachte wird sichtbar gemacht.
Da für die nahe Zukunft nicht zu erwarten ist, dass sich die mögliche Rechenleistung expotenziell erhöht, werden NP-vollständige Probleme praktisch nicht berechenbar bleiben. Die
EA bieten einen Ansatz, sich mit Hilfe von relativ einfachen Verfahren (Quellcode bei der
Implementierung) den Lösungen solcher Probleme zu nähern oder sie sogar zu lösen. Mit der
Komplexität der Optimierungen wächst allerdings auch die Konvergenzdauer der EAn. Das
heißt, dass der benötigte Zeitaufwand, zum Finden einen Extremums, die Algorithmen, mit
den heute zu Verfügung stehenden Mittel unbrauchbar macht. Aus diesem Grund ist es notwendig die Verfahren, in Bezug auf das unbedingte und schnelle Finden des globalen Extremum, zu verbessern und Techniken zu entwickelt, welche die Rechenarbeit auf mehrere Computer verteilen und somit die Parallelisierbarkeit der EA nutzen.
Da ein EA dennoch eine von wenigen Möglichkeiten darstellt ein NP-vollständiges Problem
praktisch zu bearbeiten und da die Notwendigkeit zur Optimierung in vielen Lebensbereichen
offensichtlich ist, sollten sie als Optimierungsverfahren in Betracht gezogen und verbessert
werden.
35
A
Glossar
Abbruchkriterium: Bedingungen, unter denen der Evolutionsprozess im EA terminiert
Chromosom: Satz der Gene eines Individuums
Evolution: (lateinisch evolvere: entwickeln)Mit Evolution ist hier speziell die Entwicklungsgeschichte der Natur gemeint.
Evolutionärer Algorithmus (EA): Sammelbegriff für alle Varianten von (probabilistischen)
Optimierungs- und Verbesserungsalgorithmen, die der Darwinschen Evolution nachempfunden sind
Evolutionsstrategie(ES): Variante der EA, die i.d.R. in der natürlichen Problemrepräsentation evolviert (keine Genotyp-Phänotyp-Abbildung für Objektparameter).
Fitness: Bewertung des Individuums bzgl. seiner Reproduktionstauglichkeit. Selektion im
EA erfolgt auf der Basis der Fitness, welche über die Fitnessfunktion bestimmt wird.
Fitnessfunktion: auch Güte-, Qualitäts- oder Zielfunktion, zu optimierende
Funktion, die von den Objektparametern (auch Suchraumparameter, phänotypische
Parameter) abhängt. Sie stellt die Implementierung des zu lösenden Problems dar.
Generation: (natürliche) Zeiteinheit im EA, eine Iteration des EA, vollständiger Zyklus, der
die Bildung und Evaluierung (Fitnessbestimmung) eines oder mehrerer neuer Individuen umfasst.
Genetische Programmierung (GP): Variante der EA, die mit Genomen variabler Länge
arbeitet und zum Evolvieren symbolischer Informationen dient.
Genetischer Algorithmus (GA): Variante der EA, der i.d.R. in Analogie zum biologischen
DNA-Alphabet auf Zeichenketten, insbesondere Bitketten konstanter Länge, operiert
Genotyp: bei EA mit Genotyp-Phänotyp Abbildung; die Repräsentation, auf der die
Rekombinations- und Mutationsoperatoren arbeiten.
Individuum: Träger der genetischen Information (Chromosom); wird charakterisiert durch
seinen Zustand im Suchraum und seine Fitness (Zielfunktion)
Mutation: Variationsoperator, der die Information eines elterlichen Genoms gemäß einer
vorgegebenen Wahrscheinlichkeitsverteilung zufällig abändert
NP-vollständiges Problem: ist ein Problem, für dessen Lösung kein Algorithmus existiert,
dessen Laufzeit bei Eingabe eines Strings S der Länge n durch ein Polynom p(n) in n
beschränkt ist.
Phänotyp: Ausprägung der Eigenschaften, die durch den Genotyp des Individuums codiert
sind.
Population: Gruppe von Individuen mit gleichartiger oder ähnlicher Genomstruktur, die die
Anwendung von genetischen Operatoren erlaubt
Rekombination: Variationsoperator, der die genetische Information zweier oder mehrerer
Elternindividuen mischt und ein oder mehrere Individuen, die sogenannten Rekombinanten, produziert.
Reproduktion: Auf Grund einer hohen Fitness wird ein Individuum qualifiziert, in die
nächste Generation übernommen, bzw. der neuen Population hinzugefügt zu werden.
Selektion: notwendiger Operator im EA, der abhängig von der Fitness, bzw. der aktuellen
Zielfunktionswerte, über die Reproduktion der Individuen entscheidet.
Travelling Salesman Problem: (dt. Problem des Handlungsreisenden) Es modelliert die
Frage, wie man möglichst schnell oder billig mehrere Orte hintereinander besuchen
kann und wieder zum Ausgangsort zurückkehrt.
36
B
Wichtige Internetadressen
Allgemeine Informationen:
http://www.icm-mannheim.org/vorlesungen/Bioinformatik/web/folien.shtml
Vorlesung Bioinformatik: Evolutionäre Algorithmen
http://www-li5.ti.uni-mannheim.de/~hesser/EA/Ws0203/EAScript1.pdf
Vorlesung Evolutionäre Algorithmen
http://ls11-www.cs.uni-dortmund.de/people/beyer/EA-terminologie/term.html
Evolutionäre Algorithmen: Begriffe und Definitionen
http://www.iid.de/bioinfo/bioinfo5.html
Bioinformatik: Problemlösungen für die Wissensgesellschaft
http://alphard.ethz.ch/hafner/Vorles/Optim/EvolutionsStrategien_ES_.htm
Evolutions-Strategien
http://www.fh-meschede.de/public/willms/ea/erfahr.html
Evolutionäre Algorithmen: Chancen für die praxisorientierte Optimierung
http://www.el-tec.de/lecture/040512block2.pdf
Evolutionäre Technologie
http://www.kibitz.de/ibp/evo.htm
Evolutionäre Algorithmen - Biologisches Vorbild für technische und betriebswirtschaftliche
Optimierungsprobleme
Spezielle Informationen:
http://lrb.cs.uni-dortmund.de/~hildebra/GACI1-gr.html
künstliche neurale Netze
http://ls2-www.cs.uni-dortmund.de/~storch/documents/DiplomArbeit.pdf
Rekombination bei konstanter Populationsgröße
http://eldorado.unidortmund.de:8080/FB4/sfb531/reiheCI38;internal&action=buildframes.action
Evolutionäre Algorithmen: Optimierung in der Simulation
http://www.hrz.uni-dortmund.de/computerPostille/Dezember1994/parallel.htm
Parallele Evolutionäre Algorithmen
http://www.et.fh-muenster.de/research/reports/fbr95/tb_ga2.htm
Implementation Genetischer Algorithmen auf einem transputerbasierten Parallelrechner
Spezielle Anwendungen:
http://www.aic.nrl.navy.mil/galist/ ( für diese Arbeit wichtigste Adresse)
The Genetic Algorithms Archive
http://www.tu-chemnitz.de/etit/ema/forschung/pdf/Lauer_00.pdf
Evolutionäre Algorithmen zur Optimierung von Antriebsregelungen
http://www-ra.informatik.uni-tuebingen.de/mitarb/streiche/welcome.html
Dynamische Algorithmen, Evolutionäre Algorithmen im Asset-Managment-bereich
http://www.pelops.de/pdf/2002/evolutionaere_algorithmen_in_der_fahrzeugentwicklung
.pdf Evolutionäre Algorithmen in der Fahrzeugentwicklung
37
C
EA
TSP
MSV
DNA
GA
GP
PMX
ES
Abkürzungen und Akronyme
Evolutionäre Algorithmen
Travelling Salesman Problem
Mutations-Selektions-Verfahren
Desoxyribonukleinsäure
Genetischer Algorithmus
Genetische Programmierung
Partial Matched Crossover
Evolutionsstrategie
38
Literatur
[DSW93]
G. Dueck, T. Scheuer, H.M. Wallmeier: ToleranzSchwelle und Sintflut: neue Ideen zur Optimierung.
Spektrum der Wissenschaft, März 1993.
[GGR+85]
Grefenstette, Gopal, Rosmaita, Van Gucht: Genetic
algorithms for the travelling salesman problem.
Proc. of the International Conference on Genetics
a. Appl. 1995.
[Go89]
D.E. Goldberg: Genetic Algorithms in Search, Optimization, and Machine Learning, New York, Sidney:
Addison Wesley, 1989.
[Ho82]
J.J. Hopfield: Neural networks and physical systems
with emergent collective computational abilities.
Proc. of the Nat. Academy of Sciences 79, Washington, 1982.
[Ki92]
W. Kinnebrock: Neuronale Netze. München, Wien:
Oldenbourg Verlag, 1992.
[Ki94]
W. Kinnebrock: Optimierung mit genetischen und
selektiven Algorithmen, München, Wien: Oldenbourg Verlag,
1994.
[Rec73]
I. Rechenberg: Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Stuttgart, Frommann Holzboog Verlag, 1973.
[SBK93]
H.P. Schwefel, T. Bäck, F. Kursawe: Naturanaloge Verfahren.
Grundlagen und praktischer Einsatz in der Optimierung. Tutorium Universität Dortmund, 1993.
[Sch81]
H.P. Schwefel: Numerical Optimization of Computer Models.
Chinchester: Wiley, 1981.
[Sy89]
G. Syswerda: Uniform crossover in genetic algorithms. In: Proc.
of the third International Conf. on Genetic Algorithms.
Morgan Kaufmann Publishers, 1989.
39
Index
Abbruchkriterium
Anfangspopulation
Auswahl durch Zufallszahlen
Auswahlverfahren
Beispielprogramm
biologisches Vorbild
Chromosomen
Diploidie und Dominanz
Ein-Punkt-Rekombination
Erwartungswert
Evolutionäre Algorithmen
Evolutionsbiologie
Evolutionsstrategie
Evolutionstheorie
Extremwertberechnung
Fitness
Gene
Genotyp
Generation
Genetische Algorithmen
Genetische Operationen
Gewichtung
Gleichmäßige Rekombination
Gradientenmethode
Heuristische Regeln
Hilfsvektor (Template)
Hybride Verfahren
Individuum
Intermediäre Rekombination
Iterationsverfahren
Inversion
Klassische Optimierungsverfahren
Konvergenzsätze
Lineares Ranking
Mutation
Mutation- Selektions- Verfahren
Mutationsrate
Nebenbedingungen
Neuronale Netze
Optimierung
Permutation
Phänotyp
PMX-Crossover
PMX-Rekombination
Population
Rekombination
Reproduktion
9
14
17
16
28
13
9
20
18
23
2, 28
5
23
13
7
7, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21,22, 28
19
24
14
13, 28
16
26
18
7
16
18
21
13
19
14
19
7
20
17
9, 10, 13, 14, 15, 19, 21, 23, 25, 29
9, 10,13
14,16, 22
8,10
26
6, 8
10
24
19
19
13, 21, 23
14, 15, 16, 18, 20, 21, 22, 24, 25, 29
13, 14, 15, 21, 22
40
Roulette-Auswahl-Verfahren
Schwellwert
Selektion
Selektionsdruck
Simulated Annealing
Simplexmethode
Sintflut-Methode
Standardabweichung
Suchmethode
Synapsen
Threshold Accepting
Toleranzschwelle
Travelling Salesman Problem (TSP)
Überlebenschance
Varianz
Wahrscheinlichkeitsdicht
Zufallsgröße
Zwei-Punkt-Rekombination
(N,µ)-Selektion
16, 21
26
13, 18, 19, 24, 25, 29
18
11
7
12
23
7
26
12
12
10
11, 28
23
17
23
18
18
41
Herunterladen