Das Problem des Handlungsreisenden

(Travelling Salesman Problem)

Beleg - Neuronale Netze

 

Sven Börner

HTW Dresden - Fakultät Informatik


Inhalt:

  1. Einführung
  2. Mathematische Betrachtung
  3. Kohonen - Netz
  4. Bedienungshinweise
  5. Java Applet
  6. Java Doc
  7. Source Code
  8. 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:

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:


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:

5. Java Applet


 

 

6. Java Doc

Klassenübersicht: Entwicklerdokumentation

7. Source Code

Travelling Salesman Problem
 

8. Quellenangaben

  1. Scherer, Andreas: Neuronale Netze  Grundlagen und Anwendungen. Braunschweig: Vieweg, 1997
  2. Hoffmann, Norbert: Neuronale Netze  Anwendungsorientiertes Wissen. Braunschweig: Vieweg, 1993
  3. Lawrence, Jeanette: Neuronale Netze  Computersimulation. München: Systhema, 1992
  4. Brause, Rüdiger: Neuronale Netze  Eine Einführung in die Neuroinformatik. Stuttgart: Teubner, 1995
  5. Kohonen, Teuvo: Self Organizing Maps. Heidelberg: Springer, 1995
  6. Haykin, Simon: Neural Networks  A comprehensive Foundation. Macmillan: NJ USA, 1994
  7. Zell, Andreas: Simulation Neuronaler Netze. Oldenbourg: Muenchen, 1997


S. Börner