03.10.2013 Aufrufe

Heuristiken

Heuristiken

Heuristiken

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!