Das Problem des Handlungsreisenden
(Travelling Salesman Problem)
Beleg - Neuronale Netze
Sven Börner
HTW Dresden - Fakultät Informatik
Inhalt:
-
Einführung
-
Mathematische Betrachtung
-
Kohonen - Netz
-
Bedienungshinweise
-
Java Applet
-
Java Doc
-
Source Code
-
Quellenangaben
1. Einführung
Das Travelling Salesman Problem beschreibt den Sachverhalt einens Handlungsreisenden,
der auf seiner Tour n Städte hintereinander je einmal besuchen muß.
Dabei soll die kürzeste Wegstrecke gefunden werden. Im hießigen
Fall ist der Startpunkt zugleich der Endpunkt, d.h. aus der Tour wird eine
Rundreise.
2. Mathematische Betrachtung
Die Lösung des Problems birgt für eine geringe Anzahl n von Städten
keine Schwierigkeiten. Es muß für alle möglichen Streckenverläufe
(n! Permutationen) die Länge gefunden werden.
Mit wachsendem n wird die Kapazität einer von Neumann - Maschine
allerdings schnell überschritten, da es sich hierbei um einen NP -
Algorithmus handelt. Dieser ist nicht in polynomialer Zeit lösbar
bzw. können die nötigen Rechenschritte für ein wachsendes
n nicht durch ein Polynom (a0 + a1*x + a2*x2
+ ...) beschrieben werden. So gibt es bei n Städten (n-1)! verschiedene
Wege bzw. (n-1)! / 2 verschiedene Wege, wenn man berücksichtigt, daß
Hin- u. Rückweg vom Streckenverlauf identisch sind.
Bei 10 Städten gibt es schon über 180000 Möglichkeiten,
bei 24 Städten etwa 1.3*1022 usw. Eine kombinatorische
Lösung des Problems scheidet somit aus. Bei einer Rundreise durch
120 Städte gibt es mit ca. 6*10196 möglichen Reisen
mehr Rundreisen als Elementarteilchen im Universum. Deshalb rücken
für die praktische Anwendung Verfahren in den Mittelpunkt des Interesses,
die nicht unbedingt nach langer Rechenzeit die kürzeste überhaupt
mögliche Rundreise (Optimum) finden, sondern bereits nach kurzer Zeit
eine noch nicht ganz so gute Reise (Suboptimum) anbieten.
3. Kohonen - Netz
Man kann das Travelling Salesman Problem im Neuronalen Netz auf verschiedene
Arten lösen. Im vorliegenden Fall wird ein Kohonen Netzwerk (auch
SOM - Self Organizing Map genannt) verwendet. Das Kohonen - Netz gehört
zu den Feed Forward Netzen, bei denen nur Verbindungen zur nächsten
Schicht zugelassen sind. Die Neuronen sind in einer Ebene angeordnet. Diese
Ebene ist mit der Schicht der Eingangsneuronen verbunden. Die einzelnen
Neuronen sind mit ihren Nachbarn gekoppelt, wobei man unterschiedliche
Topologien anwenden kann. Im Kohonen Netz wird das unüberwachte Lernverfahren
angewendet. Mit diesem Netz kann das TSP auch für eine hohe Anzahl
von Städten sehr gute Näherungslösungen liefern.
Als Ausgangsposition für das Netz wurde für jedes einzelne
Neuron eine zufällige Position gewählt. Die Städte ziehen
die Neuronen unterschiedlich stark an. Das Neuron, welches sich einer Stadt
am nächsten befindet, wird als Siegerneuron ausgewählt und darf
sich auf die Stadt zubewegen. Die Nachbarneuronen werden ebenfalls verschoben.
Jedes Neuron ei hat ein Erregungsfeld mit dem Schwerpunkt yi
und dem Durchmesser K. Beim Lernen wandern die Felder auf die Städte
zu, die ihnen am nächsten liegen. Da der Durchmesser dabei gegen Null
konvergiert, liegt zum Schluß jede Stadt im Erregungsfeld einer Zelle.
In unserem Fall gelten folgende Vereinbarungen:
-
Das Kohonen Netz wird durch einen Ring repräsentiert.
-
Der Ring besitzt sehr viele Neuronen.
-
Die Position der Städte wird auf die gleiche Karte übertragen,
in dem die Position des Ringes festgehalten wird.
-
Von den einzelnen Städten gehen Reize aus.
-
Das Neuron, welches den kürzesten Abstand auf der Karte zu einer Stadt
besitzt, wird zum Gewinner gekürt und von der Stadt angezogen.
-
Somit werden auch die Nachbarneuronen an die Nachbarstädte angenähert.
Die Neuronen sind untereinander verbunden. Das Gewicht rij zwischen
den Neuronen i und j hängt dabei von der Entfernung der Neuronen ab.
Dabei gilt für den Radius des Kreises:
rij = e(-d(i,j)^2 / 2*eta)
d ... Eulersche Entfernung
eta ... Lernrate
Folgender Zyklus führt zur Stabilität des Netzes:
-
Initialisieren aller Gewichte mit Zufallswerten
-
Auswählen einer Stadt, dazu deren X- u. Y-Koordinaten in Eingangsneuronen
übertragen
-
Neuron j herausfunden, welches der Stadt am nächsten liegt:
(Xi - wxi)2 + (yi - wyi)2
= min
Modifikation der Geichte:
wxi = wxi * eta * rij * (xi
- wxi)
wyi = wyi * eta * rij * (yi
- wyi)
eta ... Lernrate
wxi , wyi ... Gewicht des Neurons
Neuberechnung der Gewichte
-
Veränderung der Lernrate
- Anpassung der Nachbarschaft
4. Bedienungshinweise
Das Java Applet basiert auf dem Abstract Window Toolkit (AWT) von Sun und
ist somit auf nahezu allen Java-fähigen Browsern lauffähig, auch
auf denen mit einer älteren JRE-Versionsnummer, die noch keine Java
Foundation Classes (Swing) anbieten.
Die einzelnen Städte werden an zufällig gewählten Koordinaten
positioniert. Mit dem Betätigen des Start Buttons wird die Animation
angestoßen. Der New
Map Button startet eine neue Animation mit selbst eingestellten Werten
oder mit den Vorgabewerten (Default).
Es können folgende (Start-) Werte eingestellt werden:
-
Anzahl der Städte, Neuronen und Durchläufe
Das Travelling Salesman Problem macht mit mindestens 4 Städten erst
Sinn. Dennoch kann zur Veranschaulichung ein Mindestwert von einer Stadt
angegeben werden. Die Anzahl der Neuronen sollte um ein Vielfaches höher
liegen als die Anzahl der Städte. Sind sehr viele Neuronen und Städte
am TSP-Problem beteiligt, empfiehlt sich eine hohe Anzahl von Durchläufen.
- Bereich der Lernrate eta und der Nachbarschaft sigma
eta sollte zwischen 0 und 1 liegen. sigma muß lediglich größer
als 0 sein. Die optimalen Einstellungen können durch Versuche annähernd
bestimmt werden und hängen von verschiedenen Faktoren wie Anzahl der
Städte und Neuronen ab.
- Anzeige der Animation aller n Durchläufe
n ist standardmäßig bei 100 eingestellt. Die Animation dient lediglich
dem Verständnis der Lernprozesses des Kohonen-Netzes. Die Graphikausgabe
beansprucht verglichen mit der eigentlichen Berechnung des SOM-Netzes sehr
viel Zeit und kann daher abgeschalten werden.
5. Java Applet
6. Java Doc
Klassenübersicht:
Entwicklerdokumentation
7. Source Code
Travelling Salesman Problem
8. Quellenangaben
-
Scherer, Andreas: Neuronale Netze Grundlagen und Anwendungen. Braunschweig:
Vieweg, 1997
-
Hoffmann, Norbert: Neuronale Netze Anwendungsorientiertes Wissen.
Braunschweig: Vieweg, 1993
-
Lawrence, Jeanette: Neuronale Netze Computersimulation. München:
Systhema, 1992
-
Brause, Rüdiger: Neuronale Netze Eine Einführung in die
Neuroinformatik. Stuttgart: Teubner, 1995
-
Kohonen, Teuvo: Self Organizing Maps. Heidelberg: Springer, 1995
-
Haykin, Simon: Neural Networks A comprehensive Foundation. Macmillan:
NJ USA, 1994
- Zell, Andreas: Simulation Neuronaler Netze. Oldenbourg: Muenchen, 1997
S.
Börner