Heuristiken
Heuristiken
Heuristiken
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Inhaltsverzeichnis<br />
<strong>Heuristiken</strong><br />
Mike Hüftle<br />
28. Juli 2006<br />
1 Einleitung 2<br />
1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
2 Greedy-<strong>Heuristiken</strong> 4<br />
2.1 Methodenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.3 Varianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
2.4 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
3 Nachbarschaftssuche 8<br />
3.1 Hill-Climbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
3.2 Iterative lokale Suche . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
3.3 Tabu Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
3.4 Simulated Annealing . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
4 Genetische Algorithmen 12<br />
4.1 Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
4.2 Methodenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
4.2.1 Nebenpfad: Populationsgröße . . . . . . . . . . . . . . . . 14<br />
4.2.2 Nebenpfad: Detaillierte Methodenbeschreibung . . . . . . 15<br />
4.2.3 Nebenpfad: Genetische Operationen . . . . . . . . . . . . 16<br />
4.2.4 Nebenpfad: Evolutionsparameter . . . . . . . . . . . . . . 19<br />
4.3 Methodenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
4.4 Varianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
4.5 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
4.6 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
5 Ameisensysteme 25<br />
5.1 Methodenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
5.1.1 Nebenpfad: Ameisen-Algorithmus . . . . . . . . . . . . . . 25<br />
5.2 Varianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
5.3 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
1
6 Fitnesslandschaften 29<br />
6.1 Methodenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
6.1.1 Nebenpfad: Methodenbeschreibung . . . . . . . . . . . . . 29<br />
6.2 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
7 Künstliche Neuronale Netze 33<br />
7.1 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
7.2 Reizweiterleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
7.2.1 Nebenpfad: Feedback-Netze . . . . . . . . . . . . . . . . . 34<br />
7.2.2 Nebenpfad: Feedforward-Netze . . . . . . . . . . . . . . . 34<br />
7.3 Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
7.3.1 Nebenpfad: Aktivierungsfunktion . . . . . . . . . . . . . . 36<br />
7.3.2 Nebenpfad: Lernverfahren . . . . . . . . . . . . . . . . . . 38<br />
7.3.3 Nebenpfad: Lernalgorithmen . . . . . . . . . . . . . . . . 38<br />
7.4 Perceptron, Adaline und Backpropagation . . . . . . . . . . . . . 40<br />
7.5 Hopfield-Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
7.6 Boltzmann-Maschine . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
7.7 Kohonen-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
7.8 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
7.9 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
8 Literatur und Methodenverzeichnis 49<br />
8.1 Literatur zu Greedy-<strong>Heuristiken</strong> und Nachbarschaftssuche . . . . 49<br />
8.1 Literatur zu Genetischen Algorithmen . . . . . . . . . . . . . . . 50<br />
8.1 Literatur zu Ameisensystemen und Fitnesslandschaften . . . . . 52<br />
8.1 Literatur zu Neuronalen Netzen . . . . . . . . . . . . . . . . . . . 53<br />
8.1 Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
2
1 Einleitung<br />
1.1<br />
<strong>Heuristiken</strong> <strong>Heuristiken</strong> (aus dem Griechischen: heuriskein - Finden, entdecken) sind Methoden<br />
zur Suche von guten (nahezu optimalen) Lösungen für ein Optimierungsproblem.<br />
Die Suche erfolgt in möglichst kurzer Zeit, jedoch ohne die Optimalität<br />
der Lösung zu garantieren.<br />
Einteilung von<br />
<strong>Heuristiken</strong><br />
In vielen Fällen wird nicht einmal eine Aussage getroffen, wie nahe die gefundene<br />
Lösung am Optimum liegt. Jedoch ist eine heuristische, gute Lösung<br />
für praktische Probleme oft ausreichend genau und kann effizienter berechnet<br />
werden, als eine optimale Lösung.<br />
Aufgrund des breiten Einsatzgebietes existiert eine Vielzahl allgemein einsetzbarer<br />
und problemspezifischer heuristischer Methoden. Diese lassen sich grob in<br />
Konstruktionsheuristiken zur Ermittlung einer ersten Ausgangslösung und<br />
Verbesserungsheuristiken zur Suche nach Lösungen mit höherem bzw. niedrigerem<br />
Zielfunktionswert untergliedern.<br />
Die Abbildung zeigt die Klassifikation wichtiger heuristischer Methoden.<br />
3
1.2<br />
Konstruktionsheuristiken Konstruktions- oder Eröffnungsheuristiken bauen eine Anfangslösung<br />
schrittweise auf, indem in jedem Schritt eine Lösungskomponente zur aktuellen<br />
Lösung hinzugefügt wird. Die Auswahl dieser Komponente erfolgt in Abhängigkeit<br />
von verschiedenen Regeln mit dem Ziel, eine möglichst gute erste Lösung<br />
zu erzeugen, die mit anderen Methoden weiter verbessert werden kann. Eine<br />
häufig eingesetzte Strategie zur Auswahl der Lösungskomponenten ist die<br />
Greedy-Heuristik.<br />
Verbesserungsheuristiken Verbesserungsheuristiken arbeiten nach verschiedenen Prinzipien:<br />
Lokale Verbesserungsheuristiken versuchen mit Hilfe von Änderungen einzelner<br />
Komponenten des Lösungsvektors den Zielfunktionswert zu verbessern.<br />
<strong>Heuristiken</strong>, die auf der Nachbarschaftssuche basieren, untersuchen in einem<br />
möglichst großen Bereich im Lösungsraum nach verbessernden Lösungen.<br />
Weitere<br />
<strong>Heuristiken</strong><br />
Populationsbasierte <strong>Heuristiken</strong>, wie z.B. Genetische Algorithmen, gehen<br />
von einer Menge von Lösungen aus, aus denen neue Lösungen erzeugt werden.<br />
Fitnesslandschaften sind ein Konzept zur Beschreibung und Analyse von<br />
Lösungsräumen.<br />
Neuronale Netze schließlich sind ein Ansatz, mit dem auch große Instanzen<br />
NP-schwerer Probleme gelöst werden können, beispielsweise beim Tourenplanungsproblem.<br />
4
Schrittweiser<br />
Lösungsaufbau<br />
2 Greedy-<strong>Heuristiken</strong><br />
2.1 Methodenbeschreibung<br />
Die Idee des Greedy-Algorithmus ist es, durch wiederholte Anwendung einer<br />
einfachen Prozedur schrittweise eine Lösung aufzubauen. In jedem Schritt<br />
der Heuristik wird einer Teillösung eine neue Lösungskomponente hinzugefügt.<br />
Welche Lösungskomponente ausgewählt wird, wird mittels einer Greedyfunktion<br />
bestimmt (z.B. eine Kostenfunktion, d.h. die Komponente mit den geringsten<br />
Kosten wird ausgewählt).<br />
Lösungsgüte Nicht immer wird ein solcher Algorithmus das Problem vollständig lösen und<br />
wenn er eine Lösung erzielt, so ist diese nur zufällig optimal. Aber in vielen<br />
Fällen kann mit einem Greedy-Algorithmus eine sehr gute oder sogar die optimale<br />
Lösung ermittelt werden.<br />
Beispielsweise führt der Kruskal-Algorithmus als Greedy-Heuristik zu einem minimal<br />
spannenden Baum. Bei vielen Problemen schließt sich an die Greedy-<br />
Lösung eine Verbesserungsheuristik an, mit der die anfängliche Lösung weiter<br />
verbessert wird. Ein Beispiel hierfür ist die Nächste-Nachbar-Heuristik zur Bestimmung<br />
einer Ausgangslösung für das Travelling Salesman-Problem (TSP).<br />
5
Eisverkäufer-<br />
Problem<br />
2.2 Beispiel<br />
Die Abbildung zeigt ein Beispiel für das Vorgehen des Greedy-Algorithmus. Dargestellt<br />
ist das Eisverkäufer-Problem. In einer Stadt soll eine minimale Anzahl<br />
von Eisverkäufern an zu bestimmenden Straßenecken so platziert werden, dass<br />
jeder Bewohner spätestens an der übernächsten Straßenecke einen Eisverkäufer<br />
findet.<br />
Eine Greedy-Heuristik ist nun, zuerst die Straßenecken auszuwählen, welche die<br />
meisten adjazenten Straßenecken haben, die noch nicht zu einem Eisverkäufer<br />
benachbart sind. Die Nachbarschaft eines Eisverkäufers ist ein in der Abbildung<br />
grau hinterlegtes Vieleck.<br />
Als erstes wird die Ecke 1 mit 5 adjazenten Knoten ausgewählt. Dann Ecke 2<br />
mit 4 und Ecken 3 und 4 mit jeweils noch 3 adjazenten Knoten, die zu keinem<br />
anderen Eisverkäufer benachbart sind. Da insgesamt 8 Eisverkäufer platziert<br />
werden müssen, erreicht der Greedy-Algorithmus in diesem Fall keine gute<br />
Lösung. Schätzen Sie doch einmal, wieviele Eisverkäufer für das obige Beispiel<br />
ausreichen: Optimale Anzahl Eisverkäufer 6<br />
6
Semi-Greedy-<br />
<strong>Heuristiken</strong><br />
2.3 Varianten<br />
Aufgrund der großen Beliebtheit des Greedy-Algorithmus wurden Ende der<br />
1980er Jahre mehrere Varianten entwickelt, welche in vielen Fällen zu besseren<br />
Lösungen führen.<br />
Semi-Greedy-<strong>Heuristiken</strong> [] fügen in jedem Schritt nicht unbedingt die Lösungskomponente<br />
mit dem höchsten Greedy-Funktionswert f(e) hinzu, sondern bewerten<br />
die möglichen Lösungskomponenten und fügen die besten in eine Kandidatenliste<br />
ein.<br />
Es werden nur die Elemente der hinzugefügt, die im Fall einer Minimierung dem<br />
Kriterium<br />
f(e)≤ fmin + α · (fmax − fmin)<br />
genügen, wobei α ∈ [0, 1], f¡sub¿max¡/sub¿ der bisher schlechteste sowie f¡sub¿min¡/sub¿<br />
der bisher beste Greedy-Funktionswert sind.<br />
Die Aufnahme einer neuen Komponente hängt somit von diesen beiden Greedy-<br />
Funktionswerten ab. Aus der so verwalteten Kandidatenliste wird zufällig ein<br />
Element ausgewählt und der bisherigen Teillösung hinzugefügt.<br />
GRASP GRASP (Greedy Randomized Adaptive Search Procedure) ist eine Metaheuristik,<br />
die systematisch Greedy-Konstruktionsheuristiken randomisiert, um viele<br />
gute Startlösungen für die nachfolgende lokale Suche zu generieren.<br />
GRASP ist ein iterativer Prozess mit den zwei Teilschritten Lösungskonstruktion<br />
und lokale Suche. Die lokale Suche auf der Basis von Greedy-Startlösungen<br />
weist eine geringere Varianz der erzielten Lösungsgüte als die lokale Suche auf<br />
Basis von zufälligen Startwerten [].<br />
Die einzelnen Lösungskomponenten werden wie bei den Semi-Greedy-<strong>Heuristiken</strong><br />
in einer Kandidatenliste vorgehalten. Die Auswahl für diese Liste erfolgt auf<br />
Grundlage eines Auswahlkriteriums. Dieses hängt also vom Ergebnis der lokalen<br />
Suche ab und wird nach jeder Iteration aktualisiert .<br />
7
Vorteile von<br />
Greedy-<br />
<strong>Heuristiken</strong><br />
Nachteile von<br />
Greedy-<br />
<strong>Heuristiken</strong><br />
2.4 Anwendung<br />
• Greedy-<strong>Heuristiken</strong> bestimmen sehr schnell eine gute Lösung.<br />
• Sie sind dem Benutzer intuitiv verständlich.<br />
• Die berechnete Lösung ist in der Regel nicht optimal.<br />
• Es wird nicht in jedem Fall eine Lösung gefunden, d.h. der Algorithmus<br />
muss eventuell mehrmals gestartet werden<br />
Anwendung Das Greedy-Prinzip gibt eine sehr allgemeine Vorgehensweise zur Lösung<br />
eines Optimierungsproblems vor. Greedy-<strong>Heuristiken</strong> werden deshalb in allen<br />
Bereichen eingesetzt.<br />
Sie eignen sich insbesondere dann, wenn für komplexe Probleme eine Abschätzung<br />
der optimalen Lösung gesucht ist oder die Anforderungen an die Lösungsgüte<br />
gering sind.<br />
Auch in On-line-Anwendungen, die eine schnelle Antwortzeit erfordern, werden<br />
oftmals Greedy-<strong>Heuristiken</strong> eingesetzt.<br />
8
3 Nachbarschaftssuche<br />
3.1 Hill-Climbing<br />
Einführung <strong>Heuristiken</strong> zur Nachbarschaftssuche sind Methoden, die sich nicht auf die<br />
Untersuchung lokaler Bereiche im Lösungsraum beschränken, sondern Strategien<br />
zur Überwindung solcher Bereiche beinhalten.<br />
Nachbarschaftsheuristiken sind daher in der Regel Metaheuristiken, d.h. Methoden,<br />
welche eine oder mehrere untergeordnete Optimierungsverfahren steuern.<br />
Hierbei sind die untergeordneten Verfahren auf die Suche nach lokalen Optima<br />
spezialisiert und die Metaheuristik führt diese Verfahren zu Bereichen im<br />
Lösungsraum, in denen möglicherweise bessere Lösungen zu erwarten sind.<br />
Hill Climbing Hill Climbing ist eine der einfachsten und gebräuchlichsten Suchstrategien in<br />
der Optimierung. Diese Methode wird Hill Climbing genannt, da sie (ähnlich<br />
einem Bergsteiger) versucht den Gipfel auf dem direktesten Weg, d.h. dem steilsten,<br />
zu erreichen.<br />
Von einer gegebenen Startlösung aus wird solange der nächst bessere Punkt aus<br />
der Nachbarschaft der aktuellen Lösung als nächster Iterationspunkt gewählt,<br />
bis keine Verbesserung des Zielfunktionswertes mehr möglich ist. Somit endet die<br />
Methode oft in lokalen Optima und wird deshalb meist mit zufällig ausgewählten<br />
Startpunkten wiederholt. Eine weitere Möglichkeit ist, mehrere Lösungswege<br />
gleichzeitig als Lösungspopulation zu verfolgen.<br />
Hill Climbing ist eine gute Lösungsstrategie, wenn das zu lösende Modell so viel<br />
Information beinhaltet, dass das Steckenbleiben in lokalen Optima vermieden<br />
werden kann.<br />
9
3.2 Iterative lokale Suche<br />
Perturbation DieIterative Lokale Suche (ILS) ist eineMetaheuristik, welche die Suche von<br />
einem lokalen Optimum s* in einen anderen Bereich des Lösungsraumes führt.<br />
Hierfür wird das aktuelle, lokale Optimum s* perturbiert, d.h. der Lösungsvektor<br />
wird in einigen Komponenten geändert. Dies Änderungen dürfen jedoch<br />
nicht zu klein sein, da das lokale Optimum sonst nicht verlassen wird. Sind<br />
die Änderungen im Lösungsvektor zu groß, so ist der Übergang in benachbarte<br />
Bereiche des Lösungsraumes zufällig.<br />
Lokale Suche Dann wird mittels einer eingebetteten Heuristik, meist einer lokalen Suche,<br />
der benachbarte Bereich auf ein lokales Optimum s** untersucht. Das lokale<br />
Optimum s** wird als mögliche Lösung wieder verworfen, wenn es ein definiertes<br />
Akzeptanzkriterium nicht erfüllt. Wird s** akzeptiert, so wird es zum aktuellen<br />
lokalen Optimum s* und die Suche startet von hier aus erneut.<br />
Anwendung ILS ist eine sehr einfache, wenig aufwändig zu implementierende und robuste<br />
Metaheuristik, deren Effizienz hauptsächlich von der Implementierung der eingebetteten<br />
lokalen Suche, der Pertubation und dem Akzeptanzkriterium für die<br />
pertubierten Lösungen abhängt.<br />
ILS wurde erfolgreich auf eine Vielzahl kombinatorischer Optimierungsprobleme<br />
angewendet und übertrifft in vielen Fällen die Effizienz komplexer Metaheuristiken,<br />
wie z.B. genetischer Algorithmen (vgl. []). Die prominentesten Anwendungen<br />
von ILS sind das Travelling Salesman Problem (z.B. []) und Scheduling-<br />
Probleme (z.B. []).<br />
10
Steuerung untergeordneter<br />
Methoden<br />
Tabu-<br />
Bedingungen<br />
3.3 Tabu Search<br />
Tabu Search ist eine Metaheuristik zur Lösung komplexer mathematischer<br />
Optimierungsprobleme, die 1977 von GLOVER vorgestellt wurde []. Sie steuert<br />
untergeordnete Optimierungsmethoden so, dass lokale Optima überwunden<br />
werden können. Als untergeordnete Methoden kommen prinzipiell alle Methoden<br />
in Betracht, die zur Bestimmung lokaler Optima eingesetzt werden können.<br />
In jeder Iteration von Tabu Search wird mit solch einem Verfahren ein lokales<br />
Optimum bestimmt. Ist ein Abbruchkriterium nicht erfüllt, so wählt Tabu<br />
Search einen geeigneten Übergang in einen neuen Bereich des Suchraumes, in<br />
dem eventuell eine Verbesserung des Zielfunktionswertes möglich ist. Es ist jedoch<br />
auch eine vorübergehende Verschlechterung erlaubt.<br />
Die Suche im gesamten Lösungsraum wird durch Tabu-Bedingungen eingeschränkt.<br />
Dies haben das Ziel, das Durchlaufen von Zyklen zu verhindern.<br />
Dies ist wichtig, da sonst bei Schritten, die nicht weit genug vom aktuellen<br />
lokalen Optimum wegführen, wieder ein bereits untersuchtes lokales Optimum<br />
aufgesucht werden kann.<br />
Tabu Search ermöglicht somit einerseits eine intensive lokale Suche mittels der<br />
untergeordneten Optimierungsmethode und andererseits eine globale Diversifizierung<br />
der Suche im gesamten Lösungsraum.<br />
Anwendung Tabu Search wurde ursprünglich zur Lösung kombinatorischer MILP-Probleme<br />
entwickelt. Der heutige Einsatzbereich reicht jedoch vom Scheduling über Travelling<br />
Salesman Probleme, Quadratische Zuordnungsprobleme [] bis hin zu Clusterproblemen.<br />
GLOVER [] und Kuhn [] geben einen umfassenden Überblick über die verschiedenen<br />
Anwendungsbereiche.<br />
11
Physikalisches<br />
Prinzip<br />
Analogie zur<br />
Optimierung<br />
3.4 Simulated Annealing<br />
Simulated Annealing (SA) ist eine Metaheuristik auf Basis einer lokalen Suche,<br />
bei der mit einer geringen Wahrscheinlichkeit auch schlechtere Lösungen<br />
akzeptiert werden.<br />
SA wurde zuerst von KIRKPATRICK [] als physikalische Analogie zu Zustandsveränderungen<br />
bei Abkühlungsprozessen in der Physik beschrieben:<br />
Wenn ein Festkörper zum Schmelzen gebracht wird, so sind die Atome zufällig<br />
verteilt. Wird nun die Temperatur langsam gesenkt, so existiert für jedes Temperaturniveau<br />
ein thermisches Gleichgewicht - die Atome können sich in der<br />
energetisch günstigsten Struktur anordnen.<br />
Die Analogie zur Optimierung wird deutlich, wenn Lösungen des Optimierungsproblems<br />
als Zustände des physikalischen Systems aufgefasst werden,<br />
Nachbarschaftslösungen als Folgezustände und die zu minimierende Energie des<br />
Systems als Zielfunktion. Dann können ausgehend von einem lokalen Optimum<br />
(Zustand) benachbarte Optima (Zustände) erreicht werden, indem ein Parameter<br />
(die Temperatur) verändert wird. Indem auch schlechtere Zustände akzeptiert<br />
werden, kann der Algorithmus aus dem Einzugsbereich lokaler Optima<br />
” entkommen“ und ein globales Optimum finden.<br />
Vorgehen Beim Simulated Annealing wird mit einer zulässigen Lösung des Optimierungsproblems<br />
gestartet und eine zufällig gewählte, benachbarte Lösung erzeugt. Besitzt<br />
diese einen besseren Zielfunktionswert, so wird diese Lösung akzeptiert<br />
und iteriert. Andernfalls wird die neue Lösung nur mit einer gewissen Wahrscheinlichkeit<br />
akzeptiert. Diese Wahrscheinlichkeit nimmt mit steigender Iterationszahl<br />
(zunehmender Abkühlung) ab (Annealing).<br />
Zur nächsten Iteration wird der Temperatur-Parameter abgesenkt und damit<br />
die Wahrscheinlichkeit, dass eine schlechtere Lösung akzeptiert wird, verringert.<br />
Ist ein Stopp-Kriterium erreicht (z.B. wenn nach 5 Temperaturabsenkungen keine<br />
Verbesserung des Zielfunktionswertes mehr erreicht werden kann), so bricht<br />
der Algorithmus ab.<br />
Anwendung Simulated Annealing ist eine sehr allgemein anwendbares Methode, die in vielen<br />
Bereiche der kombinatorischen Optimierung eingesetzt wird und deren asymptotische<br />
Konvergenz gesichert ist. Jedoch ist eine Konvergenz in endlich vielen<br />
Schritten im Allgemeinen nicht garantiert. Entscheidenden Einfluss auf die<br />
Konvergenz hat die gewählte Abkühlungsstrategie. Nachteilig ist jedoch der erhebliche<br />
Rechenaufwand der Methode.<br />
12
Genetische<br />
Algorithmen<br />
Evolutionäre<br />
Algorithmen<br />
4 Genetische Algorithmen<br />
4.1 Entwicklung<br />
Die den genetischen Algorithmen zugrunde liegenden Ideen stammen aus der<br />
Evolutionslehre von Charles Darwin und der Vererbungslehre von Gregor<br />
Mendel. Darwin erkannte anhand populationsgeographischer Beobachtungen,<br />
dass die Entwicklung der Arten eine Folge von Anpassungs- und Selektionsprozessen<br />
ist. Mendel entdeckte aufgrund seiner Beobachtungen an den Eigenschaften<br />
von Pflanzensamen die grundlegenden Prinzipien der Vererbungslehre.<br />
Die von Mendel und Darwin erkannten Gesetzmäßigkeiten bilden die Grundlage<br />
der modernen Evolutionstheorie, die J. Holland [] benutzte, um Problemlösungsstrategien<br />
für mathematische Modelle zu entwerfen. Holland entwickelte<br />
in den 60er Jahren lernende Systeme, welche nicht nur das Wissen von einzelnen<br />
Objekten berücksichtigen, sondern dieses Wissen auch durch Evolution<br />
über mehrere Generationen weitergeben können.<br />
Genetische Algorithmen gehören, wie auch die neuronalen Netze, zu den Methoden<br />
der naturanalogen Modellierung und Problemlösung. Die Begriffe ” Genetische<br />
Algorithmen“ und ” Evolutionäre Algorithmen“ werden oft synonym<br />
verwendet. Jedoch gehören neben den genetischen Algorithmen auch die<br />
evolutionären Systeme und die genetische Programmierung zur Familie der evolutionären<br />
Algorithmen.<br />
Die evolutionären Systeme wurden in den 1970er Jahren von Ingo Rechenberg<br />
und Hans-Paul Schwefel [] entwickelt. Sie unterscheiden sich von den genetischen<br />
Algorithmen durch die Repräsentation der Individuen als Vektor (anstatt<br />
als Bitstring), sowie durch die Art, wie genetische Operatoren angewendet werden.<br />
Die genetische Programmierung arbeitet mit einer Baumstruktur zur Repräsentation<br />
der Daten und wird zum Design von Schaltkreisen, zur Mustererkennung<br />
und zum Training neuronaler Netze eingesetzt.<br />
Anwendungsbereiche Sowohl genetische Algorithmen, als auch die evolutionäre Programmierung, werden<br />
zur Lösung von Optimierungsproblemen eingesetzt. Genetischen Algorithmen<br />
werden darüber hinaus auch für Suchprobleme und Probleme im Maschinellen<br />
Lernen angewendet.<br />
13
Im Folgenden wird auf die, in der Praxis bedeutsameren, genetischen Algorithmen<br />
eingegangen.<br />
14
Individuen<br />
und<br />
Population<br />
4.2 Methodenbeschreibung<br />
Genetische Algorithmen basieren auf einer parallelen, konkurrierenden Suche<br />
nach einer besten Lösung. Sie versuchen aus einer Vielzahl von Lösungen die<br />
global optimale herauszufinden. Die einzelnen Lösungen werden Individuen<br />
genannt und bilden zusammen eine Population.<br />
Es gibt verschiedene Ansätze zur Wahl der besten Populationsgröße. Ein<br />
Individuum besitz mehrere Gene. Diese kodieren die Eigenschaften der Lösung<br />
bzw. die Variablen des Lösungsvektors.<br />
Um zu einer detaillierten Beschreibung der Kodierung genetischer Algorithmen<br />
zu gelangen klicken sie bitte hier. Jede Lösung wird hinsichtlich ihrer<br />
Lösungsgüte durch einen externen Lösungsalgorithmus ausgewertet und ihr wird<br />
ein Fitnesswert zugeordnet.<br />
Genetische<br />
Operationen Ablaufschema eines genetischen Algorithmus<br />
Die besten Individuen einer Population werden mittels eines Selektionsoperators<br />
ausgewählt und aus ihnen wird mit den evolutionären Operatoren Rekombination<br />
(Kreuzung) und Mutation eine neue Population erzeugt.<br />
Durch diese Operatoren entstehen aus einer Population neue Individuen, die<br />
eventuell bessere Problemlösungen sind. Wird dieser Prozess mehrfach wiederholt,<br />
so verbessern sich die Fitnesswerte der Individuen. Ist ein Abbruchkriterium<br />
erreicht, so endet der Iterationsprozess an einer ” besten“ Lösung. Um mehr<br />
über genetischen Operationen zu erfahren folgen sie bitte diesem Link.<br />
Die Wahl der Evolutionsparameter (z.B. Populationsgröße, Mutationswahrscheinlichkeit)<br />
hängt von der Problemstellung und den möglichen genetischen<br />
Operatoren ab.<br />
Wahl der Populationsgröße<br />
4.2.1 Nebenpfad: Populationsgröße<br />
Von verschiedenen Autoren wurde versucht, Orientierungshilfen für die Wahl<br />
der Populationsgröße N zu geben. Sie wird von GOLDBERG [] in Abhängigkeit<br />
von der Länge eines Chromosoms l berechnet zu:<br />
N=1,65·2 0,21·l<br />
15
Kodierung des<br />
Problems<br />
GOLDBERG/DEB/CLARK [] berechnen die Populationsgröße N in Abhängigkeit<br />
vom Grad der Nichtlinearität k, der Varianz des Problems σ 2 und der Differenz<br />
d der Fitnesswerte zwischen lokalen Optima und globalem Optimum.<br />
N=2 k · σ2<br />
d 2<br />
4.2.2 Nebenpfad: Detaillierte Methodenbeschreibung<br />
Um einen genetischen Algorithmus zur Problemlösung heranziehen zu können<br />
muss zunächst eine Kodierung des Problems durchgeführt werden. Dabei<br />
wird jede Eigenschaft (d.h. jedes Gen) einer Lösung durch eines oder mehrere<br />
Bits repräsentiert. Zum Beispiel steht eine 1 für eine erfüllte und 0 für eine nicht<br />
erfüllte Eigenschaft. Oder die Eigenschaft Farbe wird mit 0 für grün, 1 für blau,<br />
2 für rot usw. kodiert. Die spezielle Ausprägung einer Eigenschaft wird als Allel<br />
bezeichnet. 0 und 1 sind beispielsweise Allele. Die binäre Kodierung besitzt jedoch<br />
den Nachteilen, dass die einzelnen Stellen im binären Code unterschiedlich<br />
bedeutsam sind, da die vorderen Stellen größere Zweierpotenzen kodieren als<br />
die hinteren. Dies kann durch die Anwendung der Gray-Kodierung behoben<br />
werden (vgl. z.B. []).<br />
Die Kodierung des Problems ist wesentlich für die Qualität des genetischen Algorithmus.<br />
Insbesondere muss eine gute Kodierung den gesamten Lösungsraum<br />
abbilden und neue, durch die Anwendung der genetischen Operatoren erzeugte<br />
Individuen müssen ” sinnvolle“ Lösungen bezüglich des zu lösenden Problems<br />
ergeben. Außerdem ist eine Abstimmung von Kodierung und genetischen Operatoren<br />
erforderlich. Idealerweise wird eine 1:1-Kodierung verwendet, d.h. jede<br />
Lösung des Lösungsraumes entspricht genau einem Chromosom. Es ist jedoch<br />
häufig schwierig, solch ein Kodierung zu finden. Deshalb wird in den meisten<br />
Fällen eine 1:m-Kodierung implementiert, d.h. eine Lösung kann durch viele<br />
Chromosomen repräsentiert werden. Dies reduziert jedoch die Effizienz des genetischen<br />
Algorithmus.<br />
Beispiel Um beispielsweise ein Travelling Salesman Problem mit 12 Städten zu kodieren<br />
werden pro Stadt 4 Bits benötigt. Jede Stadt entspricht hierbei genau einer<br />
Bitkombination. Es sind jedoch Bitkombinationen möglich, die nicht mit einer<br />
Stadt belegt sind (z.B. 1111).<br />
16
Stadt Kodierung Stadt Kodierung Stadt Kodierung<br />
1 0001 5 0101 9 1001<br />
2 0010 6 0110 10 1010<br />
3 0011 7 0111 11 1011<br />
4 0100 8 1000 12 1100<br />
Die Anwendung der genetischen Operatoren kann dazu führen, dass eine nicht<br />
belegte Bitkombination entsteht. Diese kann dann beispielsweise durch ein Prüfverfahren<br />
aus der Population entfernt und durch ein zulässiges Individuum ersetzt<br />
werden.<br />
Zwei mögliche Lösungen bzw. zwei Touren des TSP sind somit:<br />
Zwei Individuen für das TSP<br />
Soll eine Funktion optimiert werden, beispielsweise f(x)=x sin (10x)+1 im Intervall<br />
[-1,2], so können die x-Werte durch einen 22-stelligen Bitvektor repräsentiert<br />
werden:<br />
x = 21<br />
i=0 bi · 2 i = b21, b20, ..., b0<br />
welcher auf das Intervall [-1,2] normiert wird. D.h. der Bitvektor (0000000000000000000000)<br />
steht für x=-1, (1111111111111111111111) für den Wert x=2 und (1110000000111111000101)<br />
für x=1,627888 mit dem zugehörigen Fitnesswert f(x)=2,250650.<br />
4.2.3 Nebenpfad: Genetische Operationen<br />
Selektion Die Selektion bestimmt, welche Individuen aus einer Population zur Evolution<br />
ausgewählt werden und beeinflusst somit die nächste Lösungspopulation.<br />
Der Selektionsdruck bestimmt, wie schnell die Lösungspopulation gegen ein<br />
Optimum konvergiert. Bei der Suchstrategie nach der global optimalen Lösung<br />
sollte ein Mittelweg zwischen einer intensiven lokalen Suche und einer extensiven<br />
Suche in verschiedenen Bereichen des Lösungsraumes gefunden werden.<br />
Der Selektionsdruck wird durch die Wahl eines bestimmten Selektionsverfahrens<br />
vorgegeben. Ein hoher Selektionsdruck bewirkt eine intensive, schnell<br />
konvergierende Suche, die jedoch unter Umständen in einem lokalen Optimum<br />
konvergieren kann. Demgegenüber bewirkt ein niedriger Selektionsdruck eine<br />
breit angelegte Suche im Lösungsraum begünstigt. Der Selektionsdruck ist also<br />
17
ein Maß dafür, welche Chance Individuen mit schlechteren Fitnesswerten haben,<br />
in die nächste Generation übernommen zu werden.<br />
Bei Problemen mit wenigen lokalen Optima ist es oft günstiger einen höheren<br />
Selektionsdruck zu wählen. Gibt es sehr viele lokale Optima im Lösungsraum, so<br />
wird ein niedrigerer Selektionsdruck bevorzugt. Im folgenden werden die wichtigsten<br />
Selektionsmethoden kurz erläutert:<br />
Die Fitnessproportionale Selektion weist anschaulich jedem Individuum ein<br />
Segment eines Rouletterades zu. Die Größe des Segmentes ist proportional zu<br />
seinem Fitnesswert. Das Individuum, auf dessen Segment das Rouletterad stehen<br />
bleibt, wird in eine Elternpopulation übernommen. Ein Nachteil dieser<br />
Methode ist jedoch, dass bei einer niedrigen Fitnessvarianz jedes Individuum<br />
nahezu die gleiche Überlebenschance hat. Also können besser angepasste Individuen<br />
nicht mehr Nachkommen erzeugen, als schlechter angepasste. Um dieses<br />
Problem zu lösen wird bei der Fitnessreduktion der Fitnesswert jedes Individuums<br />
um einen bestimmten Anteil des am schlechtesten angepassten Individuums<br />
erniedrigt. Hierdurch erzeugen besser angepasste Individuen auch mehr Nachkommen.<br />
Bei der Sigmaskalierung wird die Größe des Segmentabschnittes beim Rouletterad<br />
als eine Funktion des Fitnesswertes des einzelnen Individuums, des Populationsdurchschnittes<br />
und der Populationsstandardabweichung berechnet. Die<br />
Sigmaskalierung verhält sich ähnlich der fitnessproportionalen Selektion mit einer<br />
Fitnessreduktion von 90%. Bei der Boltzmann-Selektion wird das Roulettesegment<br />
für gut angepasste Individuen überproportional erhöht. Die Verfahren<br />
der Fitnessproportionalen Selektion haben den entscheidenden Nachteil, dass<br />
der genetische Algorithmus sich nach der anfänglichen, zufälligen Auswahl einer<br />
Population schnell auf wenige lokale Optima konzentriert, die untersucht<br />
werden. Außerdem ist die absolute Bewertung der Fitness eines Individuums<br />
gegenüber anderen in vielen Fällen der Problemstellung nicht adäquat.<br />
Bei der rangbasierten Selektion ist die Größe des Segmentes proportional<br />
zum Rang, den das Individuum in der nach Fitnesswerten sortierten Population<br />
einnimmt. Dies vermeidet den Nachteil absoluter Fitnessbewertungen und verhindert<br />
eine schnelle Konvergenz des Algorithmus. Hierfür müssen jedoch zum<br />
Teil längere Rechenzeiten in Kauf genommen werden.<br />
Die Turnierselektion erzeugt einen ähnlichen Selektionsdruck wie die rangbasierte<br />
Selektion, ist jedoch recheneffizienter. Es werden zwei Individuen zufällig<br />
aus der Population ausgewählt, diese kämpfen miteinander und der Verlierer<br />
(mit dem schlechteren Fitnesswert) wird in einem Stapel gespeichert. Der Ge-<br />
18
winner bleibt weiter im Turnier und kann erneut ausgewählt werden. Ist das Turnier<br />
beendet bzw. der Stapel vollständig gefüllt, so kann er wieder von oben, also<br />
angefangen vom Gewinner des Turniers geleert werden. Bei der eingeschränkten<br />
Turnierselektion werden zwei Individuen einer Population ausgewählt und eine<br />
Kreuzung durchgeführt, welche zu zwei Nachkommen führt. Für jeden dieser<br />
zwei Nachkommen wird eine Anzahl von n Individuen ausgewählt, mit denen<br />
dieser Nachkomme ” kämpft“. Wenn er einen besseren Fitnesswert, als das ihm<br />
ähnlichste der n Individuen aufweist, so ersetzt er dieses.<br />
Bei der interaktiven Selektion wählt der Anwender die Individuen selbst<br />
aus. Dies ist beispielsweise sinnvoll, wenn keine angemessene Fitnessfunktion<br />
angegeben werden kann.<br />
Kreuzung Kreuzung bedeutet die Kombination der Gene zweier Elternteile zur Erzeugung<br />
von neuen Individuen, ihren Nachkommen. Während der Kreuzungsphase werden<br />
die Paare ausgewählt, die gekreuzt werden sollen und anschließend die Stelle<br />
im Individuum, an der die Individuen geteilt werden. Man unterscheidet drei<br />
Arten der Kreuzung: Bei der Einzelpunkt-Kreuzung wird ein Kreuzungspunkt<br />
ausgewählt und der linke bzw. der rechte Teil beider Elternteile wird<br />
ausgetauscht.<br />
Einzelpunkt-Kreuzung<br />
Bei der Mehrpunkt-Kreuzung werden mehrere Kreuzungspunkte ausgewählt<br />
und die Gene, die zwischen diesen Punkten liegen, ausgetauscht. Die parametrisierte<br />
uniforme Kreuzung tauscht jedes Bit der Elternteile mit einer gewissen<br />
Wahrscheinlichkeit aus, um Nachkommen zu erzeugen.<br />
Die Beeinflussung des Suchverhaltens durch die Kreuzungsoperation wird durch<br />
die Destruktivität ausgedrückt. Je destruktiver eine Operation ist, desto unterschiedlicher<br />
sind die die Nachkommen von ihren Eltern. Die Einzelpunkt-<br />
Kreuzung ist die am wenigsten destruktive Operation.<br />
Bei der Wahl des Kreuzungsverfahrens muss beachtet werden, dass eine Kreuzung<br />
auch erfolgreiche Individuen zerstören kann, andererseits aber bestimmte<br />
Individuen (beispielsweise bei der Einzelpunktkreuzung) überhaupt nicht entstehen<br />
können.<br />
19
Mutation Die Mutation ändert mit einer gewissen Wahrscheinlichkeit jedes Bit eines Individuums<br />
bzw. jedes Gen eines Chromosoms. Die Mutationswahrscheinlichkeit<br />
wird oft so gewählt, dass im Durchschnitt weniger als ein Bit eines<br />
Chromosoms geändert wird. Die Mutation trägt dazu bei, dass keine einförmigen,<br />
nicht mehr evolutionsfähigen Populationen zustande kommen. Durch eine<br />
zu häufige Mutation wird jedoch eine Entwicklung zu ” besseren“ Individuen<br />
behindert. Wird im obigen Beispiel das 10.Gen des Elternteils e1 mutiert, so<br />
verbessert sich dessen Fitnesswert von f(x)=2,250650 auf f(x)=2,343555.<br />
Wahl der<br />
Evolutionsparameter<br />
4.2.4 Nebenpfad: Evolutionsparameter<br />
Die Wahl der Evolutionsparameter (z.B. Populationsgröße, Mutationswahrscheinlichkeit)<br />
hängt von der Problemstellung und den möglichen genetischen<br />
Operatoren ab. Deshalb kann keine allgemeingültige Parametrisierung angegeben<br />
werden. Des weiteren sollten sich bestimmte Parameter während des Evolutionsprozesses<br />
ändern können.<br />
Am Anfang stehen Operatoren im Vordergrund, die den Suchraum schnell erkunden,<br />
wohingegen nahe des gesuchten Optimums kleine Schritte wichtig sind<br />
um in der Nähe des Optimums zu bleiben. Die genannten Anforderungen an<br />
die Adaptionsfähigkeit der Operatoren werden hauptsächlich durch die Anpassung<br />
der Operatorenwahrscheinlichkeiten (z.B. der Mutationswahrscheinlichkeit)<br />
implementiert. Hierfür gibt es zwei unterschiedliche Ansätze:<br />
Bei der absoluten Aktualisierung der Parameter werden Statistiken über<br />
mehrere Generationen von Populationen geführt und aus deren Entwicklung die<br />
Parameter für den nächsten Evolutionsschritt festgelegt. Dies ist gerechtfertigt,<br />
so lange die getroffene Annahme über den Evolutionsverlauf einer tatsächlichen<br />
Gesetzmäßigkeit entspricht. Im Gegensatz hierzu werden bei der empirischen<br />
Adaption oder Selbstadaption die Parameter zusammen mit der Population<br />
entwickelt. Die Adaption erfolgt meist auf der Ebene der Individuen und wird<br />
anhand deren Fitness bewertet. Es müssen also keine Informationen über das<br />
aktuelle Verhalten der gesamten Population vorliegen.<br />
20
4.3 Methodenbeschreibung<br />
Metaevolution Bei genetischen Algorithmen soll die Suche nach einem globalen Optimum im<br />
gesamten zulässigen Lösungsraum durch die zufällige Auswahl der genetischen<br />
Operatoren gewährleistet sein.<br />
Es besteht jedoch die Möglichkeit, dass die Population zu klein ist oder im<br />
Laufe des Evolutionsprozesses Teile des zulässigen Raumes nicht durchsucht<br />
werden und die Evolution somit in einem lokalen Optimum konvergiert. Eine<br />
Strategie zur Vermeidung derartiger Probleme ist der Einsatz von Methoden<br />
der Metaevolution. Diese steuern die parallele Evolution mehrerer Populationen.<br />
Zwischen diesen Populationen werden in gewissen Abständen Individuen<br />
ausgetauscht, um die Vielfalt zu vergrößern.<br />
Wurde mittels eines genetischen Algorithmus eine beste Lösung gefunden, so<br />
empfiehlt es sich meist eine lokale Suche anzuschließen, welche die zur besten<br />
Lösung des genetischen Algorithmus benachbarten Lösungen auf Optimalität<br />
untersucht.<br />
21
Spezielle<br />
Problemstellungen<br />
4.4 Varianten<br />
Zur Lösung spezieller Problemstellungen wurde eine Vielzahl von Erweiterungen<br />
des klassischen Ansatzes vorgestellt. Hier wird exemplarisch eine Auswahl<br />
vorgestellt.<br />
Genetische Algorithmen für reellwertige Probleme arbeiten mit kontinuierlichen<br />
Werten für die einzelnen Gene [].<br />
Mikro-Genetische Algorithmen für einfache und kleine Probleme benutzen<br />
nur eine sehr kleine Populationsgröße von 4 bis 5 Individuen, müssen dafür aber<br />
spezielle Mutationsoperatoren verwenden [].<br />
Genetische Algorithmen mit erweitertem Wissen werden durch Berücksichtigung<br />
von vorhandenem Wissen über das Problem (z.B. den Lösungsraum)<br />
effizienter implementiert [].<br />
Hybride Genetische Algorithmen kombinieren den genetischen Ansatz mit<br />
anderen Optimierungsansätzen []. Genetische Algorithmen wurden erfolgreich<br />
eingesetzt, um pareto-optimale Lösungen von Mehrziel-Optimierungsproblemen<br />
zu finden [].<br />
Der CHC-Algorithmus von [] kombiniert Ansätze aus den genetischen Algorithmen<br />
und den evolutionären Strategien.<br />
22
4.5 Anwendung<br />
Vorteile Die Vorteile genetischer Algorithmen sind:<br />
• Sie können zur Lösung eines breiten Spektrums von Optimierungsproblemen<br />
eingesetzt werden (u.a. auch bei nichtdifferenzierbaren Funktionen).<br />
• Sie sind extrem robust, da sie auch mit fehlerhaften und unvollständigen<br />
Daten gute Ergebnisse liefern.<br />
• Sie können leicht mit anderen Methoden wie Neuronalen Netzen oder<br />
Fuzzy-Techniken kombiniert werden.<br />
• Sie sind verhältnismäßig einfach zu implementieren.<br />
• Aufgrund des populationsbasierten Ansatzes können genetische Algorithmen<br />
effizient parallel implementiert werden.<br />
Nachteile Die Nachteile genetischer Algorithmen sind:<br />
• Genetische Algorithmen sind universell, d.h. es fließen nurwenig problemspezifische<br />
Informationen in den Lösungsprozess mit ein. Wenn<br />
es eine problemspezifische Lösungsmethode gibt, führt diese in der Regel<br />
zu besseren Ergebnissen.<br />
• Die gefundene Lösung ist nicht notwendigerweise das globale Optimum.<br />
• Es existiert kein absolutes Maß für die Güte der gefundenen ” besten“<br />
Lösung.<br />
• Die ” beste“ Lösung kann von der Initialisierung der Anfangspopulation<br />
abhängen.<br />
• Genetische Algorithmen sind relativ rechenaufwändig.<br />
• Die Lösungsfindung ist für den Benutzer nicht intuitiv nachvollziehbar.<br />
23
Suche in<br />
größen<br />
Räumen<br />
Wahl der<br />
Kodierung<br />
4.6 Anwendung<br />
Genetische Algorithmen wurden sowohl für Probleme der Wissensverarbeitung,<br />
als auch für Optimierungsprobleme entwickelt. Sie eignen sich für<br />
die Suche in großen Suchräumen mit vielen potentiellen Lösungen. Da sie sehr<br />
generell, d.h. wenig problemspezifisch arbeiten, stellen sie auch wenige Voraussetzungen<br />
an das zu lösende Problem.<br />
Aufgrund des populationsbasierten Ansatzes ist es erforderlich, dass die Berechnung<br />
der Fitnesswerte der Individuen schnell durchgeführt werden kann,<br />
da eine große Anzahl solcher Berechnungen notwendig ist.<br />
Weiterhin muss der Lösungsraum des betrachteten Problems so kodierbar sein,<br />
dass er alle (relevanten) Lösungen enthält. Durch die Operationen mit den Individuen<br />
dürfen jedoch nicht zu viele ” unsinnige“ Lösungen entstehen können.<br />
Die Wahl der richtigen Kodierung ist somit eine entscheidende Voraussetzung<br />
für den erfolgreichen Einsatz eines genetischen Algorithmus.<br />
Problemspezifische In der Literatur wird eine große Anzahl von erfolgreichen und Erfolg verspre-<br />
<strong>Heuristiken</strong> chenden Anwendungen genetischer Algorithmen beschrieben. Es existieren jedoch<br />
auch viele Anwendungen, bei denen genetische Algorithmen zu schlechteren<br />
Ergebnissen führen, als andere <strong>Heuristiken</strong>. Wenn das Aussehen des Lösungsraumes<br />
von vornherein bekannt ist, sind problemspezifische <strong>Heuristiken</strong> effizienter.<br />
Wenn der Lösungsraum nur wenige lokale Optima aufweist führt ein<br />
Hill-Climbing-Algorithmus meist zu besseren Resultaten.<br />
Der Einsatz genetischer Algorithmen ist im Allgemeinen immer dann Erfolg<br />
versprechend, wenn:<br />
• Der Lösungsraum groß ist.<br />
• Es viele lokale Optima gibt bzw. wenn über die Eigenschaften des<br />
Lösungsraumes überhaupt wenig bekannt ist.<br />
• Kein globales Optimum sondern eine schnelle, näherungsweise optimale<br />
Lösung gefunden werden soll.<br />
24
Anwendungsbeispiele Die Schwerpunkte der Anwendung genetischer Algorithmen liegen in der Optimierung<br />
NP-schwerer Probleme, dem Maschinellen Lernen, der Analyse in der<br />
chemischen Industrie und der Modellierung von Vorgängen in der Biologie. Außerdem<br />
können sie noch bei einer Vielzahl weiterer Probleme eingesetzt werden,<br />
wie beispielsweise der Funktionsoptimierung oder auch bei Computerspielen.<br />
Beispiele aus der Literatur sind:<br />
• Bin-Packing-Probleme []<br />
• Travelling-Salesman-Probleme [] []<br />
• Scheduling-Probleme [] [] []<br />
• Merkmalsauswahl für Probleme des Maschinellen Lernens []<br />
• Datenanalyse []<br />
• Analyse in der chemischen Industrie []<br />
• Optimierung von Funktionen []<br />
• Computerspiele []<br />
25
5 Ameisensysteme<br />
5.1 Methodenbeschreibung<br />
Ameisensysteme sind ein auf dem Gebiet der kombinatorischen Optimierung<br />
eingesetztes, heuristisches Optimierungsverfahren, das erstmals von DORIGO<br />
1992 vorgestellt wurde. Sie werden vor allem zur Lösung von Kürzeste-Wege-<br />
Problemen eingesetzt (z.B. beim Routing in der Telekommunikation).<br />
Methodenbeschreibung Ameisensysteme bilden das Verhalten von Ameisen bei der Futtersuche nach.<br />
Eine Ameisenkolonie kann in kurzer Zeit den kürzesten Weg von ihrem Nest zu<br />
einer Futterquelle finden, indem die einzelnen Tiere auf ihrem Weg Duftstoffe, so<br />
genannte Pheromone hinterlassen, welche sich im Laufe der Zeit verflüchtigen.<br />
Normalerweise bewegt sich eine einzelne Ameise fast zufällig. Trifft sie jedoch<br />
eine Pheromonspur, so folgt sie dieser mit einer Wahrscheinlichkeit, die von der<br />
Pheromonintensität auf dieser Spur abhängt. Geht sie dieser Spur nach, so<br />
verstärkt sie die Pheromonspur durch ihre eigenen Ausscheidungen und zieht<br />
hierdurch weitere Ameisen an. Somit wird eine optimale Entscheidung über den<br />
einzuschlagenden Weg zur Futterquelle durch kollektives Verhalten getroffen.<br />
Hier finden sie eine ausführlichere Methodenbeschreibung des Ameisen-<br />
Algorithmus.<br />
5.1.1 Nebenpfad: Ameisen-Algorithmus<br />
Methodenbeschreibung Die möglichen Wege, die eine Ameisenkolonie nehmen kann werden durch einen<br />
Graphen mit Bögen (i,j) abgebildet, wie dies in der Abbildung dargestellt ist.<br />
An jedem Knoteni bzw. j dieses Graphen müssen sich die Ameisen entscheiden,<br />
welchen Weg sie weiter einschlagen.<br />
Diese Entscheidung ist von der Pheromonintensität t¡sub¿ij¡/sub¿(t) zum<br />
Zeitpunkt t auf einem Bogen (ij) abhängig. Die Intensität dieser Markierun-<br />
”<br />
gen“ verändert sich mit der Zeit. Eine Ameise wählt nun eine Kante mit einer<br />
Wahrscheinlichkeit, die sich aus den Pheromonintensitäten ergibt.<br />
Wenn alle Ameisen nach n Zeitschritten am Ziel angekommen sind werden die<br />
Pheromonintensitäten auf allen Kanten aktualisiert zu tij(t + n) = ρ · tij + δtij,<br />
26
wobei ρ die Verdunstung des Pheromons zwischen den Zeitpunkten t und t+n<br />
angibt. Die Zunahme der Pheromonintensität δtij ergibt sich als Summe der<br />
Pheromonausschüttungen aller Ameisen die entlang des Bogens (i,j) gelaufen<br />
sind.<br />
Die Pheromonausschüttung einer Ameise auf einem Bogen ist hierbei umgekehrt<br />
proportional zur Länge der Kante. Zudem wird für jede Ameise eine so<br />
genannte Tabuliste gespeichert, auf der festgehalten wird, welche Knoten diese<br />
Ameise bereits besucht hat und für ihren weiteren Weg tabu sind.<br />
Wenn alle Ameisen ihr Ziel erreicht haben ist ein Iterationsdurchlauf beendet,<br />
der bisherige kürzeste Weg wird gespeichert und der Algorithmus startet erneut<br />
mit dem nächsten Lauf der Ameisen, die sich dann an den aktualisierten<br />
Pheromonintensitäten orientieren. Das Verfahren endet, wenn entweder ein<br />
Stopp-Kriterium erreicht ist oder alle Ameisen den gleichen Weg nehmen.<br />
27
Weitere Ameisensysteme<br />
Vor- und<br />
Nachteile von<br />
Ameisensystemen<br />
5.2 Varianten<br />
Da die Ameisensysteme von DORIGO gegenüber anderen Metaheuristiken relativ<br />
schlecht abschneiden, wurde von STÜTZLE und HOOS [ützle98?] die Min-<br />
Max-Ameisensysteme entwickelt. Diese legen den Wertebereich für die Pheromonkonzentration<br />
auf ein Intervall [τmin, τmax] fest. Außerdem darf nur die<br />
beste (z.B. die schnellste) Ameise eine Pheromonspur legen.<br />
Schließlich entwickelten DORIGO und DI CARO [] das Verfahren der Ameisenkolonie-<br />
Optimierung (Ant Colonie Optimization, ACO), welches im Gegensatz zu den<br />
ursprünglichen Ameisensystemen auch eine lokale Verbesserungssuche zulässt.<br />
Aufgrund ihres allgemeinen Ansatzes sind Ameisensysteme bei den meisten Problemstellungen<br />
weniger effizient als Algorithmen, die speziell auf ein bestimmtes<br />
Problem zugeschnitten sind.<br />
Jedoch bieten Ameisensystem mehrere Vorteile gegenüber speziellen <strong>Heuristiken</strong>:<br />
• Sie sind vielseitig und können sehr gut auf verschiedene Modifikationen<br />
desselben Problems angepasst werden. Beispielsweise können sie<br />
sowohl auf das symmetrische Travelling Salesman-Problem als auch auf<br />
das asymmetrische TSP angewendet werden.<br />
• Sie können mit minimalen Veränderungen des Basisalgorithmus an verschiedene<br />
NP-schwereProbleme angepasst werden.<br />
• Da es ein populationsbasierter Ansatz ist, können Ameisensysteme parallel<br />
Implementiert werden.<br />
28
Routing-<br />
Probleme<br />
5.3 Anwendung<br />
Ameisensysteme und ihre Varianten eignen sich vor allem zur Lösung NPschwererRouting-Probleme,<br />
die mit klassischen Methoden der exakten Optimierung<br />
nicht lösbar sind.<br />
Insbesondere sind dies Probleme, bei denen die Größe des Routing-Graphen<br />
exponentiell mit der Problemgröße wächst und Probleme bei denen sich die<br />
Eigenschaften des Graphen dynamisch verändern.<br />
Anwendungsbeispiele Ameisensystem wurden erfolgreich eingesetzt bei<br />
• Netzwerk Routing-Problemen [] []<br />
• Travelling Salesman-Problemen [] []<br />
• Quadratischen Zuordnungsproblemen [][]<br />
• Vehicle Routing-Problemen [] []<br />
29
Beschreiben<br />
von<br />
Lösungsräumen<br />
6 Fitnesslandschaften<br />
6.1 Methodenbeschreibung<br />
Fitnesslandschaften sind eine Methode, um das Verhalten heuristischer Suchmethoden<br />
in der Optimierung zu beschreiben. Sie unterstützen die Wahl einer<br />
guten Suchstrategie im Lösungsraum, indem sie Informationen über die Struktur<br />
des zu durchsuchenden Raumes bereitstellen.<br />
Methodenbeschreibung In vielen Bereichen der Optimierung ist die Menge der lokalen Optima sehr groß,<br />
so dass eine vollständige Enumeration aller dieser Lösungen nicht durchführbar<br />
ist. Nur ein kleiner Teil der Lösungen kann ausgewertet werden. Deshalb ist<br />
es meist notwendig, Informationen über die Struktur des Problems bzw. des<br />
Lösungsraumes in die Lösungsfindung mit einzubeziehen.<br />
Räumliche<br />
Anordnung<br />
der Optima<br />
Formale<br />
Definition<br />
Fitnesslandschaften dienen dazu, die Struktur eines Optimierungsproblems<br />
zu erkunden, um die problemspezifische Vorhersage der Performance einer Heuristik<br />
zu ermöglichen und das Design einer Heuristik für ein bestimmtes Problem<br />
zu erstellen.<br />
Eine Fitnesslandschaft besteht aus einer räumlichen Anordnung der lokalen Optima<br />
des Optimierungsproblems. Jedem solchen Optimum wird eine Höhe im<br />
Raum zugeordnet, welche der Fitness der zugehörigen Lösung entspricht. Die<br />
räumliche Struktur der Fitnesslandschaft wird durch eine Metrik d definiert,<br />
die jedem Paar von Optima einen Distanzwert zuweist (z.B. mit der Hamming-<br />
Distanz, der euklidischen Distanz oder anderen Distanzmaßen). Somit sind ähnliche<br />
Optima in der Fitnesslandschaft benachbart. detaillierten Methodenbeschreibung<br />
6.1.1 Nebenpfad: Methodenbeschreibung<br />
Eine Fitnesslandschaft kann formal definiert werden als Tripel L=(S,f,d) mit<br />
einer Menge von Lösungen S, einer Fitnessfunktion f und einem Distanzmaß<br />
d(s,t) zwischen zwei Lösungen s und t.<br />
Die Nachbarschaft N(s) = {t ∈ s|d(s, t) = dmin} eines Punktes s besteht aus<br />
allen Lösungen t, die höchstens die Distanz d¡sub¿min¡/sub¿ von s haben. Die<br />
Landschaft kann auch als Graph interpretiert werden mit der KnotenmengeV=S<br />
und den Kanten E={(s,t)}.<br />
30
Eigenschaften<br />
von Fitnesslandschaften<br />
Bestimmung<br />
der<br />
Unebenheit<br />
Globale<br />
Eigenschaften<br />
Beispielsweise ist dann der Durchmesser der Landschaft gleich der maximalen<br />
Entfernung zwischen zwei Lösungen im Graphen. Die Topologie des Graphen<br />
ist problemabhängig: z.B. ist für das Bipartitioning-Problem der Graph<br />
ein Johnson-Graph oder für das Travelling Salesman-Problem ein Cayley-Graph<br />
(vgl. Stadler 1995).<br />
Für die problemspezifische Vorhersage der Performance einer Heuristik<br />
und das Design einer Heuristik für ein bestimmtes Problem werden die<br />
Charakteristika einer Fitnesslandschaft beschrieben, welche die Effizienz von<br />
heuristischen Suchmethoden wesentlich beeinflussen:<br />
• Die Unebenheit der Landschaft, d.h. die Varianz von f<br />
• Die Zahl der lokalen Optima und ihre Verteilung im Lösungsraum<br />
• Die Struktur und die Größe von Attraktionsgebieten lokaler Optima<br />
• Die Größe und Struktur von Ebenen mit gleicher Fitness<br />
Um diese Eigenschaften messen zu können, wurden verschiedene Methoden entwickelt.<br />
Zur Abschätzung der Unebenheit einer Landschaft wird z.B. die random<br />
”<br />
walk“-Korrelationsfunktion von Weinberger eingesetzt. Letztere bestimmt die<br />
Autokorrelation durch einen Zufallslauf durch die Fitnesslandschaft, wobei die<br />
” Random Walk“-Korrelation r(m) für die Fitnesswerte von Lösungen (s,t) auf<br />
diesem Lauf berechnet wird, die m Schritte voneinander entfernt sind.<br />
In der Regel wird mit zunehmender Anzahl an Schritten m von s ausgehend<br />
die Korrelation r(m) kleiner. Aus den Werten der Korrelationen wird eine Korrelationslänge<br />
berechnet. Diese ist ein Maß für die Unebenheit der Fitnesslandschaft.<br />
Für viele Problemtypen kann die Korrelationslänge abgeschätzt werden,<br />
wie z.B. beim Travelling Salesman-Problem oder beim Quadratischen Zuordnungsproblem.<br />
Zur Bestimmung globaler Eigenschaften des Lösungsraumes wird die Fitness-<br />
Distanz-Korrelation eingesetzt. Diese wird aus der Korrelation der Fitness<br />
und der Distanz zur global optimalen Lösung berechnet.<br />
Bei strukturierten Lösungsräumen konzentrieren sich die lokalen Optima<br />
in einem kleinen Bereich des Lösungsraumes, d.h. mit abnehmender Distanz<br />
31
zum globalen Optimum werden die Fitnesswerte größer. Bei unstrukturierten<br />
Lösungsräumen hingegen sind die lokalen Optima chaotisch über den<br />
gesamten Lösungsraum verteilt.<br />
32
Vorteile von<br />
Fitnesslandschaften<br />
Nachteile von<br />
Fitnesslandschaften<br />
6.2 Anwendung<br />
• Fitnesslandschaften sind eine gute Möglichkeit, um die Laufzeiten heuristischer<br />
Methoden für kombinatorischer Optimierungsprobleme zu verbessern.<br />
• Sie können mit nahezu allen heuristischen Methoden kombiniert werden.<br />
• Das Konzept der Fitnesslandschaft ist intuitiv verständlich und gut graphisch<br />
darstellbar.<br />
• Die Implementierung ist relativ aufwändig und zusätzlich zur Implementierung<br />
der heuristischen Methode erforderlich.<br />
• Ob die Laufzeit von <strong>Heuristiken</strong> durch den Einsatz von Fitnesslandschaften<br />
sinkt ist problemspezifisch.<br />
Anwendung Aufgrund der relativ aufwändigen Implementierung eignen sich Fitnesslandschaften<br />
vor allem für komplexe, kombinatorische Optimierungsprobleme mit<br />
vielen Instanzen.<br />
Sie werden in Kombination mit vielen heuristische Optimierungsmethoden eingesetzt,<br />
wie z.B. mit Memetischen und Genetischen Algorithmen oder Algorithmen<br />
zur Nachbarschaftssuche.<br />
Sind die Strukturen des Lösungsraumes aufgrund der Problemstellung jedoch<br />
bereits bekannt oder arbeiten heuristische Methoden auch ohne den Einsatz von<br />
Fitnesslandschaften effizient, so kann auf Fitnesslandschaften verzichtet werden.<br />
33
7 Künstliche Neuronale Netze<br />
7.1 Aufbau<br />
Begriff Künstlichen neuronalen Netze sind der Oberbegriff für eine Sammlung von Methoden,<br />
deren Mechanismen zur Informationsverarbeitung sich an den Nervensystemen<br />
im Gehirn von Säugetieren orientieren. In Analogie zur menschlichen<br />
Lernfähigkeit lassen sich mit neuronalen Netzen künstliche lernende Systeme<br />
modellieren, die fehlertolerant und robust gegen ungenaue Daten sind.<br />
Aufbau Ein neuronales Netz lässt sich als ein gerichteter, gewichteter Graph darstellen,<br />
bestehend aus Neuronen (Knoten) und Verknüpfungen (Bögen) zwischen<br />
diesen.<br />
Ein solches neuronales Netzwerk bildet über die Vielzahl einfacher, miteinander<br />
verbundener Neuronen ein funktionales Gesamtsystem. Die Neuronen werden<br />
schichtenweise angeordnet.<br />
Jedes neuronale Netzwerk besteht mindestens aus zwei Schichten. Die unterste<br />
Schicht wird als Eingabeschicht und die oberste Schicht als Ausgabeschicht<br />
bezeichnet. Die Eingabeneuronen in der Eingabeschicht besitzen keine<br />
eingehenden und die Ausgabeneuronen keine ausgehenden Verbindungen. Über<br />
die Ausgabeneuronen gibt das neuronale Netz die Ergebnisse der Berechnungen<br />
nach außen weiter. Oft wird die Eingabeschicht links und die Ausgabeschicht<br />
rechts im neuronalen Netzwerk dargestellt.<br />
Zwischen diesen beiden Schichten können eine beliebige Anzahl verborgener<br />
Schichten (hidden layers) angeordnet sein, die für den Benutzer nicht sichtbar<br />
sind. In der Praxis wird meist nur eine verborgene Schicht verwendet (vgl. Abbildung).<br />
34
7.2 Reizweiterleitung<br />
ReizweiterleitungDie Neuronen erhalten über die gerichteten Verbindungen Reize (Eingaben).<br />
Diese Eingaben werden verarbeitet und erzeugen eine Ausgabe, die über Verbindungen<br />
zu anderen Neuronen weitergeleitet wird. Die Reihenfolge, in der die<br />
Neuronen aktiviert werden, wird festgelegt (z.B. durch eine topologische Sortierung<br />
im Graphen).<br />
Diese Vorgänge können parallel ausgeführt werden, was die Leistungsfähigkeit<br />
des Gesamtsystems erheblich steigert. Die Anpassung eines neuronalen Netzes<br />
erfolgt über die Verbindungen, indem die Reizweiterleitung an andere Neuronen<br />
unterschiedlich stark erfolgt und variiert werden kann. Die unterschiedlich<br />
starke Weiterleitung der Reize wird über die Bewertung der Verbindungen mit<br />
Gewichten erreicht.<br />
RückkopplungRückkopplung<br />
Feedback-<br />
Netze<br />
Feedforward-<br />
Netze<br />
In Bezug auf die Informationsverarbeitung werden Netze mit und ohne Rückkopplung<br />
( Feedback-Netze und Feedforward-Netze) unterschieden. Die<br />
Abbildung zeigt, in welchen Neuronalen Netzen Feedback- und Feedforward-<br />
Verfahren eingesetzt werden.<br />
7.2.1 Nebenpfad: Feedback-Netze<br />
Feedback-Netze erlauben Rückkopplungsmöglichkeiten, d.h. bei einem solchen<br />
Netz kann eine Ausgabe wieder als Eingabe benutzt werden, wodurch ein<br />
Iterationsprozess in Gang gesetzt wird. Es werden so viele Iterationen durchlaufen<br />
bis das Netz einen stabilen Zustand erreicht und sich die Gewichte nur noch<br />
minimal ändern. Beispiele hierfür sind das Hopfield-Netz und die Boltzmann-<br />
Maschine.<br />
7.2.2 Nebenpfad: Feedforward-Netze<br />
Feedforward-Netze sind rückkopplungsfrei, d.h. Neuronen einer Ebene werden<br />
nur mit Neuronen einer höheren Ebene verknüpft. Werden eine Ebene oder<br />
mehrere Ebenen übersprungen, so wird dies eine ” shortcut connection“ genannt<br />
oder ein Feedforward-Netz zweiter oder höherer Ordnung.<br />
Bei vollständig vernetzten Netzen wird jedes Neuron mit jedem anderen<br />
Neuron verknüpft. Bei vollständigen Feedforward-Netzen wird ein Neuron mit<br />
35
jedem Neuron einer höheren Schicht verbunden. Beispiele für Feedforward-Netze<br />
sind das Perceptron oder das Backpropagation-Netzwerk.<br />
36
Eingabe-,<br />
AktivierungsundAusgabefunktion.<br />
7.3 Lernverfahren<br />
Ein Neuron besitzt drei Teilfunktionen:<br />
Erstens werden die eingehenden Reize in der Eingabe- bzw. Propagierungsfunktion<br />
verarbeitet. In den meisten Fällen werden die gewichteten eingehenden Reize<br />
aufsummiert; es sind jedoch auch andere Propagierungsfunktionen möglich.<br />
Dann wird aus dem so berechneten Eingabewert der Aktivierungszustand des<br />
Neurons mit Hilfe der Aktivierungsfunktion berechnet. Aus der Aktivierung<br />
wird über die Ausgabefunktion die Ausgabe des Neurons berechnet.<br />
Lernverfahren Lernverfahren dienen zur Bestimmung der Gewichte auf den Verbindungen<br />
des neuronalen Netzes. Während des Lernprozesses werden diese iterativ<br />
adaptiert. Beim überwachten Lernen benötigt man Eingabevektoren mit<br />
bekannten Ausgaben, die als Muster bezeichnet werden. Das am häufigsten<br />
eingesetzte Verfahren des überwachten Lernens ist der Backpropagation-<br />
Algorithmus.<br />
Teilt man dem Netz während der Trainingsphase mit, ob seine Ausgabe richtig<br />
oder falsch war, nicht jedoch die erwünschte Ausgabe, so wird dies als<br />
bestärkendes Lernen bezeichnet.<br />
Beim unüberwachten Lernen organisiert sich das neuronale Netz selbständig,<br />
in dem beispielsweise statistische Eigenschaften der Eingabemuster extrahiert<br />
werden um ähnliche Eingabemuster zu clustern (z.B. bei Self Organizing Maps).<br />
Diese Lernverfahren bedienen sich verschiedener Lernalgorithmen, wie der Hebb-<br />
Regel, der Delta-Regel oder der verallgeminerten Delta-Regel. Nähere Erläuterungen<br />
zu diesen Lernalgorithmen finden Sie hier.<br />
7.3.1 Nebenpfad: Aktivierungsfunktion<br />
Aktivierungsfunktion Entscheidend für die Anwendung neuronaler Netze ist die Form der Aktivierungsfunktion.<br />
Der Aktivierungszustand eines Neurons zum Zeitpunkt t+1 ist<br />
durch die Aktivierungsfunktion f¡sub¿act¡/sub¿ in Abhängigkeit vom Aktivierungszustand<br />
im Zeitpunkt t, von der Eingabe net¡sub¿j¡/sub¿(t) in ein Neuron j<br />
zum Zeitpunkt t und von einem Neuron-spezifischen Schwellwert θj bestimmt:<br />
aj(t + 1) = fact(aj(t) + netj(t), θj)<br />
37
Binäre<br />
Schwellwertfunktion<br />
Lineare<br />
Schwellwertfunktion<br />
Beim einfachen Perzeptron wird als Aktivierungsfunktion die binäre Schwellwertfunktion<br />
verwendet:<br />
fact = 1, falls netj ≥ θj<br />
fact = 0, sonst<br />
Von einem Neuronj können zwei Ausgabewerte 0 und 1 erzeugt werden, je nach<br />
dem ob der Wert der Propagierungsfunktion kleiner oder größer einem festgelegten<br />
Schwellwert θj ist. Problematisch ist die Unstetigkeitsstelle der Schwellwertfunktion,<br />
da unstetige Funktionen nicht differenzierbar sind.<br />
Die lineare Schwellwertfunktion erlaubt alle Werte im Intervall [0,1] als<br />
Ausgabewerte. Es existieren zwei Schwellwerte θj 1 < θj 2. Ist der Wert der Propagierungsfunktion<br />
kleiner als θj 1 so ist der Wert der Aktivierungsfunktion 1.<br />
Ist er größer als θj 2 so beträgt der Wert 1 und liegt er zwischen θj 1 und θj 2wird<br />
(x − θj 1)/(θj 1 − θj 2) berechnet.<br />
Tangens Für den Backpropagation-Algorithmus eignet sich oft die Funktion Tangens<br />
hyperbolicus- hyperbolicus als Aktivierungsfunktion:<br />
Schwellwertfunktion<br />
Sigmoide<br />
Aktivierungsfunktion<br />
fact = tanh[netj(t) − θj)<br />
Am häufigsten werden sigmoide Aktivierungsfunktionen eingesetzt. Bei<br />
diesem Funktionstyp wird die Schwellwertfunktion mit stetigen, differenzierbaren<br />
Funktionen angenähert. Eine solche S-förmige Funktion ist die logistische<br />
Aktivierungsfunktion:<br />
flog =<br />
1<br />
1−e x/T<br />
wobei der Parameter T die Steilheit des Kurvenanstiegs beeinflusst.<br />
38
Überwachtes<br />
Lernen<br />
7.3.2 Nebenpfad: Lernverfahren<br />
Beim überwachten Lernen wird die vom neuronalen Netz berechnete Ausgabe<br />
eines Eingabevektors mit der vorgegebenen Soll-Ausgabe verglichen und ein<br />
Fehler bestimmt.<br />
Entsprechend der Methode der kleinsten Fehlerquadrate werden die Verbindungsgewichte<br />
so optimiert, dass die gesamte Abweichung von Ist- und Soll-<br />
Ausgabe minimal wird. Die Minimierung der Fehlerquadrate kann in vielen<br />
Fällen mit einem Gradientenverfahren durchgeführt werden.<br />
Backpropagation-Ein<br />
solches Gradientenverfahren ist der Backpropagation-Algorithmus. Zu<br />
Algorithmus Beginn werden alle Verbindungsgewichte mit zufälligen Werten initialisiert. Es<br />
ist vorteilhaft, den Grad der Eingangsverbindungen eines Neurons bei dieser<br />
Initialisierung zu berücksichtigen, um zu große Eingabewerte zu vermeiden.<br />
Levenberg-<br />
Marquardt-<br />
Verfahren<br />
Die Eingabeparameter sind ebenfalls geeignet zu skalieren. Für große Beträge<br />
der Eingabewerte ist die geringe Steigung der Sigmoid-Funktionen problematisch.<br />
Es entsteht ein Plateau, auf dem ein Gradientenverfahren nur langsam<br />
fortschreitet. Generell kann nicht garantiert werden, dass das globale Minimum<br />
wirklich gefunden wird. Um die Minima herum liegen lokale Attraktionsbecken.<br />
Alle Eingabemuster in solch einem Becken liefern dasselbe Ausgabemuster.<br />
Wesentlich effizienter in der Anzahl der Lernschritte als der Backpropgation-<br />
Algorithmus ist das Levenberg-Marquardt-Verfahren. Dieses basiert auf einer<br />
Optimierung nach dem Newton-Approximationsverfahren. Bei der Ausführung<br />
wird jedoch erheblich mehr Speicherplatz benötigt.<br />
7.3.3 Nebenpfad: Lernalgorithmen<br />
Hebb-Regel Die Hebb-Regel wurde 1949 von D.O. HEBB [] vorgestellt. Sie besagt im wesentlichen,<br />
dass die Gewichtung der Verbindung zweier Neuronen erhöht wird,<br />
wenn diese gleichzeitig aktiv sind. Die Hebb-Regel wird beispielsweise im Perceptron-<br />
Netzwerk eingesetzt.<br />
Delta-Regel Eine Erweiterung der Hebb-Regel von WIDROW und HOFF[] ist die Delta-<br />
Regel. Diese ist nur für überwachtes Lernen in Netzwerken ohne versteckte<br />
39
Verallgemeinerte<br />
Delta-Regel<br />
Schichten geeignet. Es wird zusätzlich zur Hebb-Regel der Fehler aus Soll-<br />
Ausgabe und Ist-Ausgabe E¡sub¿j¡/sub¿ des Neurons j berücksichtigt:<br />
∆wij = k · Ej · xi<br />
wobei w¡sub¿ij¡/sub¿ die Gewichtung der Verbindung zwischen Neuron i und j<br />
ist, k eine festzulegende Lernrate und x¡sub¿i¡/sub¿ die Ausgabe des Neurons i.<br />
Die Delta-Regel kann im Gegensatz zur Hebb-Regel auch reellwertige Ausgaben<br />
erlernen und führt zu einer schnelleren Konvergenz als die Hebb-Regel.<br />
Die Delta-Regel wird z.B. im Adaline-Netzwerk eingesetzt.<br />
Dieverallgemeinerte Delta-Regel erweitert die Delta-Regel auf die Anwendung<br />
für mehrschichtige Netzwerke.<br />
Als erstes müssen die Fehler der Neuronen in den versteckten Schichten berechnet<br />
werden. Dies erfolgt, indem die Fehler der nächst höheren Schicht j auf die<br />
nächst tiefere Schicht i so umgelegt werden, dass der Fehler nach der Korrektur<br />
der Gewichte möglichst klein wird.<br />
Die Fehler der Neuronen in den einzelnen Schichten werden so, ausgehend von<br />
der Ausgabeschicht, rekursiv ermittelt:<br />
Ei = xi · (1 − xi) · n<br />
j=1 (wij · Ej)<br />
Durch dieses Verfahren wird erreicht, dass die Fehlerkorrektur nicht nur an einer<br />
Stelle im Netz, sondern auf alle Gewichte verteilt gleichzeitig erfolgt. Einzelne<br />
Gewichte müssen so nur wenig revidiert werden. Die Änderungen der Gewichte<br />
∆wij werden wie bei der einfachen Delta-Regel berechnet. Die verallgemeinerte<br />
Delta-Regel wird z.B. im Backpropagation-Netzwerk verwendet.<br />
40
Perceptron-<br />
Netzwerk<br />
Adaline-<br />
Netzwerk<br />
7.4 Perceptron, Adaline und Backpropagation<br />
Es gibt eine Reihe von verschiedenen Modellen Neuronaler Netze. Diese unterscheiden<br />
sich in der zugrundeliegenden Struktur, den verwendeten Eingabe-<br />
, Aktivierungs- und Ausgabefunktionen und den angewendeten Lernverfahren<br />
bzw. Lernalgorithmen.<br />
Das rückkopplungsfreiePerceptron-Netzwerk , welches 1958 von ROSEN-<br />
BLATT [] entwickelt wurde, besteht aus drei Ebenen; es enthält also eine versteckte<br />
Schicht.<br />
Die Verbindung zwischen der Eingabe- und der mittleren Schicht ist aber mit<br />
festen, nicht lernenden Gewichten versehen. Die Neuronen der mittleren<br />
und der Ausgabeschicht stehen alle durch lernfähige Gewichte miteinander in<br />
Verbindung.<br />
Das Percepton lernt aus Beispielen und arbeitet mit der Hebb-Regel. Als Aktivierungsfunktion<br />
werden die Identität und binäre Schwellwerte eingesetzt.<br />
Einfache Klassifizierungsprobleme können relativ gut mit dem Perceptron gelöst<br />
werden.<br />
Das Adaline-Netzwerk (Adaptive Linear Neuron Network) wurde von WIDROW<br />
und HOFF 1960 [] veröffentlicht. Es besteht aus zwei Schichten, ist rückkopplungsfrei,<br />
arbeitet mit einer binären Schwellwertfunktion und verwendet die<br />
Delta-Regel als Lernregel.<br />
Das Adaline-Netzwerk kann wie alle Netzwerke mit zwei Schichten nur linear<br />
separierbare Funktionen erlernen, bietet jedoch gegenüber dem Perceptron den<br />
Vorteil der Möglichkeit zur Ausgabe reellwertiger Zahlen.<br />
Backpropagation-Das<br />
Backpropagation-Netzwerk (oder mehrschichtiges Perzeptron) ist das<br />
Netzwerk wohl populärste neuronale Netz, da es auch nicht linear separierbare Problemstellungen<br />
lösen kann. Es wurde Mitte der 80er Jahre von RUMEL-<br />
HART, HINTON und WILLIAMS [] entwickelt und ist ein rückkopplungsfreies<br />
Netzwerk, das neben der Ein- und der Ausgabeschicht beliebig viele weitere Zwischenschichten<br />
haben kann. Die verdeckten Schichten und die Ausgabeschicht<br />
sind vollständig miteinander verbunden.<br />
Die verwendete Lernregel ist die verallgemeinerte Delta-Regel.<br />
Als Aktivierungsfunktion wird meist eine sigmoidale Funktion eingesetzt.<br />
Das Backpropagation-Netzwerk wird insbesondere dann eingesetzt, wenn ein<br />
Problem mit nichtlinearen Beziehungen zwischen Ein- und Ausgabedaten<br />
41
vorliegt. Problematisch ist jedoch, dass durch die Verwendung der sigmoidalen<br />
Funktion die Lernphase in einem lokalen Minimum der Fehlerfunktion stecken<br />
bleiben kann.<br />
42
7.5 Hopfield-Netz<br />
Hopfield-Netz Das Hopfield-Netz wurde 1982 von J.J. HOPFIELD [] vorgestellt. Es handelt<br />
sich hierbei um ein rückgekoppeltes autoassoziatives Netzwerk, d.h. bei dem sich<br />
der Zustand eines Neurons auf die Eingänge aller übrigen Neuronen auswirkt<br />
bzw. das Eingangsmuster eines Neurons von den Zuständen aller übrigen Neuronen<br />
gebildet wird.<br />
Das Hopfield-Netzwerk ist also ein einschichtiges, vollständig verbundenes<br />
und symmetrisches Netzwerk. Der Eingabevektor entspricht der Anfangsaktivität<br />
des Netzes, der Ausgabevektor der Aktivität des Netzes im stabilen<br />
Zustand. Als Aktivierungsfunktion kann eine binäre Schwellwertfunktion<br />
eingesetzt werden.<br />
MustererkennungDie Hauptanwendung von Hopfield-Netzen liegt in der Mustererkennung.<br />
Wird beispielsweise ein zweifarbiges Bild vorgegeben, so kann jeder Farbpunkt<br />
durch eine 0 oder eine 1 kodiert werden. Werden dem Hopfield-Netz mehrere<br />
Muster vorgegeben, die gespeichert werden soll, so gehört zu jedem Muster eine<br />
Matrix welche die Gewichte w¡sub¿ij¡/sub¿ speichert.<br />
Aus den Matrizen aller Muster wird eine Gesamtmatrix M berechnet. Bei wenigen<br />
Mustern speichert die Matrix M alle Muster. Wird die Anzahl der Muster<br />
jedoch über einen bestimmten Grenzwert erhöht, speichert das Netz nicht mehr<br />
länger die vorgegebenen Muster, da die Speicherkapazität nicht mehr ausreicht.<br />
Die Wahrscheinlichkeit, dass ein Bild gespeichert wird, sinkt mit steigender Zahl<br />
an Mustern. Die Kapazität kann nach Hopfield mit k = 0,15N abgeschätzt werden.<br />
N steht für die Anzahl der Neuronen des Netzes.<br />
Hopfield-Netze sind in der Lage, fehlerhafte und gestörte Mustern fehlerfreien<br />
Vorgabemustern zuzuordnen und somit die Störung bzw. den Fehler auszuheilen.<br />
Wenn jedoch einzelne Muster stark von den bekannten Mustern abweichen konvergiert<br />
das Netz nicht gegen eine Lösung sondern pendelt zwischen verschiedenen<br />
Mustern hin und her. Korrelierende Muster können nur schlecht gespeichert<br />
werden. Auch ist es möglich, dass ein Netz gegen einen Zustand konvergiert, der<br />
keinem der vorgegebenen Muster entspricht.<br />
43
Boltzmann-<br />
Maschine<br />
7.6 Boltzmann-Maschine<br />
Die Boltzmann-Maschine wurde 1985 von ACKLEY, HINTON und SE-<br />
JNOWSKI [] veröffentlicht und stelt eine Erweiterung des Hopfield-Netzes dar.<br />
Der Aufbau des Boltzmann-Netzes ist mit dem des Hopfield-Netzes identisch,<br />
d.h. das Netz ist vollständig und symmetrischmit Rückkopplung.<br />
HeteroassoziationBoltzmann-Netze können wie Feedforward-Netze, im Gegensatz zum Hopfield-<br />
Netz, unterschiedliche Ein- und Ausgabepaare lernen. Dies wird Heteroassoziation<br />
genannt im Gegensatz zur Autoassoziation, bei der nur die gleichen<br />
Muster für Ein- und Ausgabe verwendet werden können.<br />
Simulated<br />
Annealing<br />
Um nicht in lokalen Minima des Netzzustandes hängen zu bleiben verwendet<br />
die Boltzmann-Maschine eine Simulated Annealing-Heuristik. Mit dieser<br />
kann der Algorithmus aus einem lokalen Minimum in einen völlig anderen Teil<br />
des Lösungsraumes gelangen. Da die Boltzmann-Maschine meist nicht das globale<br />
Minimum erreicht, werden in der Praxis mehrere Läufe durchgeführt, die<br />
Endzustände verglichen und gemittelt.<br />
Algorithmus Der Lernalgorithmus gliedert sich in zwei Phasen. Zuerst werden an die Einund<br />
Ausgabeneuronen ein vorgegebener Input und Output angelegt. Diese werden<br />
während des gesamten Durchlaufes festgehalten. Nach mehreren Simulated<br />
Annealing-Läufen wird über die Endzustände gemittelt. In der anschließenden<br />
freien Phase wird ein vorgegebener Input angelegt, der Output ist frei. Es werden<br />
wiederum mehrere Simulated Annealing-Läufe durchgeführt.<br />
Beide Phasen werden abwechselnd durchlaufen und nach jedem Lauf die Gewichte<br />
des Netzes so angepasst, dass die jeweiligen Zustände sich annähern. Ziel<br />
des Lernalgorithmus ist es, die Gewichte so anzupassen, dass jeder Zustand im<br />
Netz in beiden Phasen dieselbe Wahrscheinlichkeit hat.<br />
Aufwand In Folge dieses iterativen Verfahrens ist die Boltzmann-Maschine sehr rechenund<br />
zeitaufwändig. Die Effizienz ist stark davon abhängig, wie die Abkühlung<br />
beim Simulated Annealing durchgeführt wird und wie genau die Endzustände<br />
gemittelt werden können. Generell gilt, dass je langsamer abgekühlt wird und<br />
je besser die Mittelwertbildung ist, desto besser sind die Ergebnisse.<br />
44
7.7 Kohonen-Netze<br />
Selbstorganisierende In vielen neuronalen Netzen ist die Lage eines bestimmten Neurons im Netz<br />
Karten irrelevant. Im biologischen Gehirn jedoch haben benachbarte Neuronen häufig<br />
ähnliche Aufgaben und werden in bestimmten Regionen organisiert.<br />
Kohonen-Netze (Selbstorganisierende Karten) berücksichtigen dies, indem<br />
die Anordnung der Neuronen im neuronalen Netz von Bedeutung ist. Die<br />
Neuronen können ihre Struktur nach festgelegten Regeln selbst organisieren<br />
und sich so anordnen, dass benachbarte Neuronen von ähnlichen Eingabemustern<br />
aktiviert werden. Die Abbildung ähnlicher Eingabemuster in benachbarte<br />
Neuronen ist eine Abstraktion, die unwichtige Details unterdrückt und nur die<br />
wichtigsten Merkmale abbildet.<br />
Kohonen<br />
Feature Map<br />
KOHONEN []formulierte 1972 ein mathematische Modell (Kohonen Feature<br />
Map) selbstorganisierender sensorischer Karten. Die Kohonen Feature<br />
Map besteht aus zwei Schichten:<br />
Einer Eingabeschicht und einer zwei- oder mehrdimensionalen Ausgabeschicht,<br />
der sensorischen Karte.<br />
Die Neuronen der Ausgabeschicht sind sowohl mit den Eingabeneuronen als<br />
auch untereinander verbunden. Dies ermöglicht eine Rückkopplung der Ausgabeschicht<br />
mit sich selbst.<br />
Die Erregung eines Neurons i kann somit als eine sigmoide Funktion der<br />
Summe aller mit w¡sub¿il¡/sub¿ gewichteten eingehenden Aktivitäten von den<br />
Eingabeneuronen l und den Werten der Ausgabefunktionen f¡sub¿j¡/sub¿ der<br />
Neuronen j der Ausgabeschicht berechnet werden. Das Gewicht g¡sub¿ij¡/sub¿<br />
zwischen den Neuronen i und j der Ausgabeschicht werden als Kopplungsstärken<br />
bezeichnet. Θi ist die Erregungsschwelle.<br />
Umfeldhemmung Über den zweiten Summanden erregen sich die Neuronen der Ausgabeschicht<br />
wechselseitig.<br />
Für kurze Distanzen zwischen den Neuronen ist die Kopplungsstärke erregend,<br />
für lange Distanzen dagegen hemmend. Der hierdurch erzielte Effekt wird<br />
Umfeldhemmung genannt.<br />
Die so entstandene Antwort des Netzes auf eine Eingabe hat ein Erregungszentrum,<br />
in dem die Erregung maximal ist. Die Lage dieses Erregungszentrums<br />
hängt nur von der Eingabe ab.<br />
Lernprozess Während des Lernprozesses werden die Gewichte w¡sub¿il¡/sub¿ ausgehend von<br />
groben Näherungswerten iterativ verbessert. Um lernen zu können wird dem<br />
45
Netz eine Folge von statistisch ausgewählten Eingaben präsentiert.<br />
Mit jeder Eingabe werden die Gewichte angepasst bis sie sich in einem Gleichgewichtzustand<br />
befinden. Ist dieser erreicht, so hat das Netz einen stabilen Zustand<br />
erreicht und Regionen ähnlicher Erregbarkeit haben sich herausgebildet.<br />
46
Vorteile<br />
Neuronaler<br />
Netze<br />
Nachteile<br />
Neuronaler<br />
Netze<br />
7.8 Anwendung<br />
• Neuronaler Netze können in sehr vielen Bereichen angewendet werden.<br />
• Sie erzeugen implizit einModell für die Eingabedaten.<br />
• Sie erfordern keine Annahmen über Verteilungsfunktionen der eingehenden<br />
Daten.<br />
• Sie besitzen einen hohen Automatisierungsgrad.<br />
• Die Toleranz gegenüber fehlenden, fehlerhaften und widersprüchlichen<br />
Daten ist hoch.<br />
• Neuronale Netzwerke können lange Rechenzeiten (Trainingszeit) benötigen.<br />
• Das Finden einer ausreichend guten Lösung ist nicht garantiert.<br />
• Neuronale Netze können sich an die Daten ” überanpassen“ (overfitting).<br />
• Die Lösungsfindung ist nicht nachvollziehbar und nicht überprüfbar.<br />
47
7.9 Anwendung<br />
Anwendungsbereiche Neuronale Netze werden in verschiedenen Bereichen eingesetzt: zur Klassifikation<br />
und Clusterung, zur Prognose und zur Mustererkennung sowie zur Optimierung.<br />
Aufgrund ihrer Fehlertoleranz wurden neuronale Netze außerdem erfolgreich<br />
bei der Identifikation von dynamischen stochastischen Modellen aus gestörten<br />
Messwerten eingesetzt.<br />
In ihrer breiten Anwendbarkeit unterscheiden sich neuronale Netze von den<br />
meisten Methoden der Datenanalyse.<br />
Prognose und<br />
Mustererkennung<br />
Bei der Prognose und Mustererkennung mit neuronalen Netzen wird ausgehend<br />
von den beobachteten Daten eine Funktion bestimmt, welche sich an<br />
die hinter den Daten stehende Struktur möglichst gut anpasst.<br />
Es kann gezeigt werden, dass jede beliebige Funktion durch ein künstliches<br />
neuronales feedforward-Netz mit einer verborgenen Schicht und sigmoider Aktivierungsfunktion<br />
beliebig genau approximiert werden kann.<br />
Klassifikation Die Klassifikation mit neuronalen Netzen ist ein weit verbreitetes Anwendungsgebiet.<br />
Mit einer verborgenen Schicht können linear trennbare Daten klassifiziert<br />
werden, mit zwei verborgenen Schichten können konvexe Polygone als Klassengrenzen<br />
dargestellt werden und mit drei verborgenen Schichten können beliebige<br />
Klassengrenzen repräsentiert werden.<br />
Heuristische<br />
Optimierung,<br />
Clusterung<br />
Gestörte<br />
Messungen<br />
Selbstorganisierende Karten können in verschiedenen Bereichen eingesetzt werden.<br />
In der heuristischen Optimierung können sie das Handlungsreisendenproblems<br />
effizient lösen [].<br />
Bei der Clusterung ergänzen sie die herkömmlichen statistischen Verfahren [].<br />
In der Industrie werden Erweiterungen von Selbstorganisierenden Karten bei<br />
der Robotersteuerung angewendet.<br />
Zur Modellbildung bei fehlenden oder fehlerhaften Messwerten müssen aus den<br />
beobachteten Messungen eines Systems die unbekannten Modellparameter geschätzt<br />
werden. Rückgekoppelte künstliche neuronale Netze wurden in verschiedenen<br />
Arbeiten (z.B. [] [] [] eingesetzt, um aus gestörten Messgrößen die Modellparameter<br />
eines Systems bestimmen zu können.<br />
48
Sonstige<br />
Anwendungsbereiche<br />
Des weiteren werden Neuronale Netze beispielsweise bei der Handschrifterkennung,<br />
der Spracherkennung, der EEG-Klassifikation, der Bildkompression oder<br />
der automatischen Navigation eingesetzt.<br />
49
8 Literatur und Methodenverzeichnis<br />
8.1 Literatur zu Greedy-<strong>Heuristiken</strong> und Nachbarschaftssuche<br />
Literaturverzeichnis<br />
Literatur zu Greedy-<strong>Heuristiken</strong><br />
Feo, T.A./Resende, M.G.C.: Greedy Randomized Adaptive Search<br />
Procedures, in: Journal of Global Optimization, Vol.6, 1995, pp. 109-<br />
133. Hart, J.P./Shogan, A.W.: Semi-greedy Heuristics: An Empirical<br />
Study, Operations Research Letters, Vol. 6, 1987, pp. 107-114. Caruana,<br />
R./Freitag, D.: Greedy attribute selection. Proc. ML-94. Morgan Kaufmann<br />
1994. Auf URL: http://citeseer.ist.psu.edu/caruana94greedy.html<br />
Literaturverzeichnis<br />
Literatur zur Nachbarschaftssuche<br />
Applegate, D./Bixby, R./Chvtal, V./Cook, W.: Finding tours in<br />
the TSP, 2000, auf URL: www.caam.rice.edu/caam/trs/99/TR99-05.ps.<br />
Cerny, V.: Thermodynamical Approach to the Traveling Salesman<br />
Problem: An Efficient Simulation Algorithm, in: Journal of Optimazation<br />
Theory and Applications, Vol. 45, 1985, pp. 41-51. Finke,<br />
G./Burkard, R.E./Rendl, F.: Quadratic assignment problems, in: Annals<br />
of Discrete Mathematics, Vol. 31, pp. 61-82, 1987. auf URL:<br />
http://citeseer.ist.psu.edu/finke98quadratic.html Glover, F./Laguna,<br />
M.: Tabu search, in Reeves, C. (ed.): Modern Heuristic Techniques for<br />
Combinatorial Problems, Blackwell, Oxford, pp. 70-141, 1993. auf URL:<br />
http://citeseer.ist.psu.edu/glover97tabu.html Kirkpatrick, S./Gelatt Jr.,<br />
C.D./Vecchi, M.P.: Optimization by Simulated Annealing, in: Science,<br />
Vol. 220, 1983, pp. 671-680. Kuhn, Ch. H.: Praktische Anwendungen<br />
der Suchstrategie Tabu Search - ein Überblick. Seminararbeit an der<br />
Fernuniversität Hagen - Lehrstuhl für Wirtschaftsinformatik, 2001, auf<br />
URL: www.qno.de/wiwi/winf/Seminar0106.pdf Loureno, H./Martin,<br />
O./Stützle, T.: A Gentle Introduction to Iterated Local Search, in<br />
Proceedings of MIC2001 - Meta-heuristics International Conference,<br />
Vol. 1, 2001, auf URL: iridia.ulb.ac.be/ meta/downloads/mic2001-ils.ps<br />
Stützle, T.: Applying iterated local search to the permutation flow shop<br />
problem. Technical Report AIDA-98-04, FG Intellektik, TU Darmstadt<br />
1998. Von Besten, M./Dorigo, M/Stützle, T.: Design of Iterated Local<br />
Search Algorithms: An Example Application to the Single Machine Total<br />
Weighted Tardiness Problem, in: Proceedings of EvoStim01, Lecture No-<br />
50
tes in Computer Science, Springer 2001. Zimmermann, H.-J.: Operations<br />
Research - Methoden und Modelle. Wiesbaden 2005, S. 298-304.<br />
8.1 Literatur zu Genetischen Algorithmen<br />
Literaturverzeichnis<br />
Einführende Literatur zu Genetischen Algorithmen<br />
Davis, H. (ed.): Handbook of Genetic Algorithms, Van Nostrand Reinhold<br />
1991. Deb, K.: Genetic Algorithm in Search and Optimization: The Technique<br />
and Applications. Auf Url: http://citeseer.ist.psu.edu/138345.html<br />
Falkenauer, E.: Genetic Algorithms and Grouping Problems. John Wiley,<br />
Chichester, New York et al. 1998. Goldberg, D.E.: Genetic Algorithms in<br />
Search, Optimization and Machine Learning. Addison-Wesley, Reading<br />
1989. Holland, J.H.: Adaption in natural and artifical systems. Ann<br />
Arbor, University of Michigan Press 1975. Joereßen, A., Sebastian, H.-J.<br />
(1998): Problemlösung mit Modellen und Algorithmen, Teubner Verlag,<br />
Stuttgart 1988, S. 239 ff. Mitchell, M. (1996): An Introduction to Genetic<br />
Algorithms. MIT Press, 1996. Rechenberg, I. (1973): Evolutionsstrategie:<br />
Optimierung technischer Systeme nach Prinzipien der biologischen<br />
Evolution. Frommann-Holzboog Verlag, Stuttgart 1973. Schwefel, H.-P.:<br />
Evolution and Optimum Seeking. John Wiley & Sons, New York 1995.<br />
Whitley, D.: An overview of evolutionary algorithms: Practical issues and<br />
common pitfalls. Information and Software Technology Special Issue on<br />
Software Engineering using Metaheuristic Innovative Algorithms (2001).<br />
http://citeseer.ist.psu.edu/whitley01overview.html<br />
Literaturverzeichnis<br />
Weiterführende Literatur zu Genetischen Algorithmen<br />
Bui, T./Moon, B.: A new genetic approach for the travelling salesman<br />
problem, in: Proceedings of the First IEEE Conference on<br />
Evolutionary Computation, 1994, pp. 7-12. Deb, K.: Genetic algorithms<br />
in optimal filter design, in: Balagurusamy, E./Sushila, B. (eds.): Proceedings<br />
of the International Conference on Computing Congress, 1993, pp.<br />
29-36. Deb, K./Kumar, A.: Real-coded genetic algorithms with simulated<br />
binary crossover: Studies on multimodal and multiobjective problems,<br />
in: Complex Systems, 9(6), 1995, pp. 431-454. Eshelmann, L.: The CHC<br />
Adaptive Search Algorithm. How to Have Safe Search When Engaging in<br />
Nontraditional Genetic Recombination, in: Rawlins, G. (edt.): FOGA-1.<br />
Morgan Kaufmann 1991, pp. 265-283. Fang, H./Ross, P./Corne, D.: A<br />
promising genetic algorithm approach to jobshop scheduling, reschedu-<br />
51
ling, and open-shop scheduling problems, in Forrest (edt.): Proceedings of<br />
the Fifth International Conference on Genetic Algorithms. Morgan Kaufmann,<br />
1993. http://citeseer.ist.psu.edu/fang93promising.html Goldberg,<br />
D:E:/Deb, K./Clark, J.H.: Genetic algorithms, noise, and the sizing of<br />
populations, in: Complex Systems, Vol. 6, 1992, pp. 333-362. Hibbert,<br />
D.B.: Genetic algorithms in chemistry, in: Chemometrics and Intelligent<br />
Laboratory Systems, Vol. 19, 1993, pp. 277-293. Horn, J./Nafpliotis, N.:<br />
Multiobjective optimization using Pareto genetic algorithms (IlliGAL<br />
Report No 93005). Urbana: University of Illinois at Urbana-Champaign.<br />
Illinois Genetic Laboratory 1993. Kelly, J.D./Davis, L.: Hydridizing the<br />
genetic algorithm and the k nearest neighbors, in: Belew, R./Booker, L.B.<br />
(eds.): Proceedings of the Fourth International Conference on Genetic<br />
Algorithms. Morgan Kaufmann, San Mateo 1991, pp. 377-383. Kkai,<br />
G. (2003): Erfolge und Probleme evolutionärer Algorithmen, induktiver<br />
logischer Programmierung und ihrer Kombination, Arbeitsberichte des<br />
Instituts für Informatik der Friedrich-Alexander-Universität Erlangen-<br />
Nürnberg, Bd 36, Nr 1, Erlangen 2003. Krishnakumar, K.: Microgenetic<br />
algorithms for stationary and non-stationary function optimization. SPIE<br />
Proceedings on Intelligent Control and Adaptive Systems, 1989, 1196,<br />
pp. 289-296. Krolzik, S.: Künstliches Leben - Genetische Algorithmen,<br />
auf URL: http://www.bitel.net.kehsq180/ga ausarbeitung. Lucasius,<br />
C.B./Kateman, G.: Applications of genetic algorithms in chemometrics,<br />
in Schaffer, J.D. (edt.): Third International Conference on Genetic<br />
Algorithms, Morgan Kaufmann, San Mateo 1989, pp. 170-176. Packard,<br />
N.H.: A genetic learning algorithm for the analysis of complex data,<br />
in: Complex Systems 4, No. 5, 1990, pp. 543-572. Tamaki, H./Kita,<br />
H./ Shimizu, N./Maekawa, K./Nishikawa, Y.: A Comparison Study of<br />
Genetic Codings for the Travelling Salesman Problem, in: Proceedings<br />
of the First IEEE Conference on Evolutionary Computionary Computation<br />
1994. Vzquez, M./Whitley, L.D.: A Comparison of Genetic<br />
Algorithms for the Dynamic Job Shop Scheduling Problem. Auf URL:<br />
citeseer.ist.psu.edu/528131.html Wall, M: GAlib - A C++ Library of<br />
Genetic Algorithm Components. Auf URL: http://lancet.mit.edu/ga/<br />
Whitley, D./Mathias, K./Rana, S./Dzubera, J.: Evaluating Evolutionary<br />
Algorithms, in: Artifical Intelligence Journal Vol. 85, 1996, pp. 1-32.<br />
Whitley, L.D./ Howe, A.E./, Rana, S./Watson, J.P./Barbulescu, L.:<br />
Comparing Heuristic Search Methods and Genetic Algorithms for Warehouse<br />
Scheduling, in: Systems, Man and Cybernetics, 1998. Auf URL:<br />
http://citeseer.ist.psu.edu/whitley98comparing.html Yang, J./Honavar,<br />
V.: Feature Subset Selection Using a Genetic Algorithm. 1997. Auf URL:<br />
http://citeseer.ist.psu.edu/article/yang97feature.html<br />
52
8.1 Literatur zu Ameisensystemen und Fitnesslandschaften<br />
Literaturverzeichnis<br />
Einführende Literatur zu Ameisensystemen<br />
Bullnheimer, B./Hartl, R.F./Strauss, C.: An improved ant system<br />
algorithm fort he vehicle routing problem. Technical Report POM-<br />
10/97, Institute of Management Science, University of Vienna 1997.<br />
Colorni, A./Dorigo, M./Maniezzo, V.: Distributed Optimization by<br />
Ant Colonies, in: Proceedings of the First European Conference on<br />
Artificial Life, Paris 1991, pp. 134-142. Di Caro, G./Dorigo, M.: Ant-<br />
Net: Distributed stigmergetic control for communications networks, in:<br />
Journal of Atrificial Intelligence Research, Vol. 9, 1998, pp. 317-365.<br />
Dorigo, M./Maniezzo, V./Colorni, A.: The ant system: optimization<br />
by a colony of cooperating agents, IEEE Transactions on Systems,<br />
Man, and Cybernetics-Part B , Vol. 26, , No. 2, 1996, pp. 29-41.<br />
http://citeseer.ist.psu.edu/dorigo96ant.html<br />
Literaturverzeichnis<br />
Weiterführende LIteratur zu Ameisensystemen<br />
Dorigo, M./Di Caro, G.: The Ant Colony Optimization<br />
Meta-Heuristic, in: Corne, D./Dorigo, M./Glover, F. (eds.):<br />
New Ideas in Optimization. McGraw-Hill, 1999. Auf URL:<br />
http://citeseer.ist.psu.edu/article/dorigo99ant.html Gambardella,<br />
L.M./Taillard, E.D./Dorigo, M.: Ant colonies for the QAP. Technical Report<br />
4-97, IDSIA, Lugano, Switzerland 1997. Gambarella, L.M./Taillard,<br />
E./Agazzi, G.: Ant colonies for vehicle routing problems, in : Corne,<br />
D/Dorigo, M./Glover, F. (eds.): New Ideas in Optimization. McGraw-Hill,<br />
1999. Maniezzo, V.: Exact and approximate nondeterministic tree-search<br />
procedures for the quadratic assignment problem. Technical Report CSR<br />
98-1, in: Science dellInformazione, Universit di Bologna, sede di Cesena,<br />
Italy 1998. Schoonerwoerd, R./Holland, O./Bruten, J./Rothkranz, L.:<br />
Ant-based load balancing in telecommunications networks, in: Adaptive<br />
Behaviour, Vol. 5, No. 2, 1996, pp. 169-207. Stützle, T./Hoos, H.: The<br />
Max-Min ant system and local search for combinatorial optimization<br />
ptoblems, in: Voß, S./Martello, S../Osman, I.H./Roucairol, C. (eds.):<br />
Meta-Heuristics: Advances and Trends in Local Search Paradigms for<br />
Optimization, Kluwer, Boston 1998, pp. 137-154.<br />
53
Literaturverzeichnis<br />
Literatur zu Fitnesslandschaften<br />
Jones, T./Forrest, S.: Fitness Distance Correlation as a Measure of<br />
Problem Difficulty for Genetic Algorithms, in Eshelman, L.J. (ed.):<br />
Proceedings of the 6th International Conference on Genetic Algorithms,<br />
Morgan Kaufmann, 1995, pp. 184-192. Stadler, P.F.: Towards<br />
a theory of landscapes, in: Lopz-Pea, R. (ed.): Complex Systems<br />
and Binary Networks. Springer-Verlag, New York, 1995. Auf URL:<br />
http://sherry.ifi.unizh.ch/stadler95towards.html Weinberger, E.D.: Correlated<br />
and Uncorrelated Fitness Landscapes and How to Tell the<br />
Difference, in: Biological Cybernetics, Vol. 63, 1990, pp. 325-336.<br />
8.1 Literatur zu Neuronalen Netzen<br />
Literaturverzeichnis<br />
Einführende Literatur zu kNN<br />
Bishop, C.M.: Neural Networks for Pattern Recognition, Oxford<br />
Press 1995. Braun, H./Feulner, J./Malaka, R.: Praktikum neuronale Netze,<br />
Springer, Berlin Heidelberg New York 1996. Michie, D./Spiegelhalter,<br />
D.J./Taylor, C.C.: Machine Learning, Neural and Statistical Classification,<br />
Ellis Horwood, New York 1994. Rehkugler, H./Zimmermann,<br />
H.G.: Neuronale Netz in der Ökonomie, Vahlen Verlag, München 1994.<br />
Ritter, Helge; Martinetz, Thomas; Schulten, Klaus: Neuronale Netze<br />
- Einführung in die Neuroinformatik selbstorganisierender Netzwerke.<br />
Bonn, 1991. Rojas, Ral: Theorie der neuronalen Netze, Eine systematische<br />
Einführung; Springer; Berlin, Heidelberg, New York 1996. Zell, Andreas:<br />
Simulation Neuronaler Netze; Addison-Wesley; Bonn, Paris, Reading,<br />
Mass. 1994.<br />
Literaturverzeichnis<br />
Weiterführende Literatur zu kNN<br />
Ackley, D. H., Hinton, G. E., and Sejnowski, T. J.: A learning algorithm<br />
for Boltzmann machines, in: Cognitive Science, Vol. 9, 1985,<br />
pp.147-169. Bock, H.H.: Clustering amd Neural Networks. In: A. Rizzi,<br />
et al. (eds.): Advances in data science and classification. Springer-Verlag,<br />
Heidelberg. 1998, pp. 265-278. Bunke, J.: Künstliche Neuronale Netze<br />
zur Systemidentifikation aus gestörten Messwerten, Dissertation am<br />
Institut für Automatisierungstechnik der Universität Bremen, Bremen<br />
54
1997. Grossberg, S.: Nonlinear neural networks: principles, mechanisms,<br />
and architectures, in: Neural Networks, 1988, 1:17-61. Hebb, D.: The<br />
Organization of Behavior. Wiley, New York 1949. Hopfield, J.: Neural<br />
networks and physical systems with emergent collective computational<br />
abilities. Proceedings of the National Academy of Sciences of the USA,<br />
9(2554) 1982. Kohonen, Teuvo: Self-Organizing Maps. Berlin, 1995.<br />
Rosenblatt, F.: The perceptron: a probabilistic model for information<br />
storage and organization in the brain, in: Psychological Review, Vol. 65,<br />
1958, pp. 386-408. Rumelhart, D. E., Hinton, G. E., Williams, R. J.:<br />
Learning internal representations by error propagation, in Rumelhart,<br />
D.E./McClelland, J.L. (eds.): Parallel distributed processing: Explorations<br />
in the microstructure of cognition. Volume 1: Foundations. MIT,<br />
Cambridge 1986, pp. 318-364. Sjöberg, J.: Non-linear System Identification<br />
with Neural Networks, 1995, PhD, Dept. Of Electrical Engineering<br />
Linköping, Sweden. Wang, H./Brown, M./Harris, C.J.: Neural network<br />
modelling of unknown nonlinear systems subject to immeasurable<br />
disturbances. IEEE Proceedings - Control Theory Applications, 141(4),<br />
pp. 216-222, 1994. Widroff, B./Hoff, M.E.: Adaptive switching circuits,<br />
in: IRE WESCON Convention Record, 1960, pp. 96-140.<br />
8.1 Methoden<br />
Verzeichnis der erläuterten Methoden<br />
Adaline-Netzwerk<br />
Ameisenkolonie-Optimierung<br />
Ameisensysteme<br />
Backpropagation<br />
Boltzmann-Maschine<br />
CHC-Algorithmus<br />
Fitnesslandschaften<br />
Genetische Algorithmen<br />
Greedy-Heuristik<br />
GRASP<br />
Hill-Climbing<br />
Hopfield-Netz<br />
Hybride Genetische Algorithmen<br />
Iterative Lokale Suche (ILS)<br />
Kohonen-Netze<br />
Mikro-Genetische Algorithmen<br />
Min-Max-Ameisensysteme<br />
Perceptron-Netzwerk<br />
Selbstorganisierende Karten<br />
Semi-Greedy-Heuristik<br />
55
Simulated Annealing<br />
Tabu Search<br />
56