Virtuelle Hochschule Bayern Prüfungsfach: Neuronale Netze, Fuzzy Control Aufgabensteller: Prof. Sauer Genetische Algorithmen Prüfungsteilnehmer Name: Schiemann Vorname: Tassilo Hochschule: FH Regensburg Semester: MA 7 Matrikel-Nr.: 2242701 Projekt: Aufgabe 4: Lösen des Travelling-Salesman-Problems mittels Matlab und folgenden Mitteln/Algorithmen: a) Simulated Annealling, b) Threshold Accepting und c) einer SOM Projektteam: Tassilo Schiemann ________________________________________________________________________ ________________________________________________________________________ ________________________________________________________________________ Beurteilung: ____________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ 1 1. Aufgabenstellung Mein Projekt beschäftigte sich mit der Lösung des Travelling-Salesman-Problems. Dabei handelt es sich um die Minimierung des Weges eines Handlungsreisenden, der fest vorgegebene Städte bereisen muss und dann wieder zum Ausgangspunkt zurück kehrt. Diese Fragestellung klingt sehr einfach und kann von Menschen intuitiv gut gelöst werden – mit Glück auch optimal. Dennoch stellt es für einen Computer eine große Herausforderung dar, weil es bereits ab 10 Städten mehr als 3 Mio. (= 10!) verschiedene Reiserouten gibt, kann dieses Problem auch nicht „straight forward“ indem man alle Möglichkeiten durchrechnet gelöst werden. Aber es gibt mehrere Herangehensweisen, die dieses Problem lösen. Im Rahmen meines Projektes habe ich die folgenden 3 Lösungsansätze implementiert: a) Simulated Annealing (SA) b) Threshold Accepting (TA) c) „self organizing map“ (SOM) 2. Lösung 2.1 Beschreibung der Methoden 2.1.1 Simulated Annealing (SA) Bei diesem Algorithmus wird bei der Initialisierung eine zufällige Reihenfolge wie die Städte durchfahren werden angenommen. Der Algorithmus vergleicht daraufhin jeweils zwei zufällig ausgewählte Verbindungen miteinander. Dabei wird die Reihenfolge nicht nur verändert, wenn das Ergebnisse besser ist als die alte Reihenfolge, sondern es werden mit einer bestimmten, sich im Laufe des Algorithmus verringernden Wahrscheinlichkeit auch Reihenfolgen mit längeren Gesamtweg angenommen. 2.1.2 Threshold Accepting (TA) Dieser Algorithmus ist dem Simulated Annealing sehr ähnlich. Er unterscheidet sich nur hinsichtlich seiner Entscheidung wann die Reihenfolge der Städte geändert wird. Dabei wird hier nicht auf Wahrscheinlichkeiten zurückgegriffen sondern auf einen festen Grenzwert (Threshold), der mit fortschreitendem Algorithmus immer kleiner wird und gegen Null geht. Letzteres kann auch so ausgedrückt werden: Anfangs werden bis zu einem gewissen Grad auch schlechtere Reihenfolgen akzeptiert. Aber im Verlauf des Algorithmus werden nur noch Reihenfolgen geändert, wenn sie eine bessere Gesamtlänge mit sich bringen, bzw. eine kaum merkliche Verschlechterung. 2.1.2 Self organizing Map (SOM) Die SOM besteht aus einer einzigen Reihe von Neuronen, deren Anzahl vom Benutzer vorgegeben wird. Bei der Initialisierung der Neuronen werden diese in einem Kreis angeordnet. 2 2.2 Beschreibung des Programms Sämtliche Methoden wurde in einem einzigen Matlab-Programm implementiert, so dass ein zufällig gewähltes Problem mit allen Lösungsalgorithmen berechnet wird und somit die Ergebnisse verglichen werden können. Das Matlab-Skript „main“ startet das Programm. Öffnet man dieses Skript können verschiedene Parameter für die Berechnung eingegeben werden – z.B. die Anzahl der Städte (amountCities), der Abstieg der Temperatur (konvergenz) oder die Anzahl der verwendeten Neuronen in der SOM (amountNeurons). Die Implementierung des SA- und des TA-Algorithmus sind weitgehend an die Implementierung aus dem Artikel „Reiselust“ der Zeitschrift c't angelehnt. Die SOM wurde mit Hilfe der Toolbox „Neuronal Networks“ aus Matlab implementiert. Besonders erwähnt werden sollte, dass mehrere SOMs berechnet werden – Anzahl je nach Benutzereinstellung (amountTestedNetworks). Damit werden nochmals bessere Ergebnisse bei der Lösung mittels SOMs erreicht und nicht zuletzt wird die Verbindung zwischen dem ersten und dem letzten Punkt der Linie meist optimaler gewählt. 2.3 Testverhalten Um die Verfahren miteinander zu vergleichen, habe ich das Programm mehrmals hintereinander ausgeführt und die Ergebnisse dokumentiert. Dabei habe ich die Weglänge für 10 Städte berechnen lassen. Die SOM wurde mit 50 Neuronen erstellt. Ansonsten habe ich die im Programm angegebenen Standardwerte benutzt. Hier die Ergebnisse, wobei die kürzeste Weglänge jeweils blau markiert ist. Ausgangslänge Sa Länge TA Epochen Länge SOM Epochen Länge 6,40 3,76 10164 3,37 5736 3,10 5,92 3,49 22249 4,17 5161 3,60 5,07 3,14 13473 2,93 5135 2,85 6,06 3,64 13078 3,64 7057 3,54 4,61 2,95 20909 2,95 11928 3,20 6,78 3,78 12174 3,34 5487 3,55 Grundsätzlich kann gesagt werden, dass jedes Verfahren eine eindeutige Verbesserung der Weglänge mit sich bringt. Welches Verfahren die besten Ergebnisse liefert kann allgemein gültig nur schwer beantwortet werden. Vorausgesetzt die Verbindung vom ersten zum letzten Neuron ist günstig gewählt, liefert die SOM die besten Ergebnisse von allen 3 Methoden. Bei der Minimierung des Gesamtweges, liefern SA und TA ähnliche Ergebnisse. Auffällig sind aber die deutlich kleineren Epochenanzahlen, die TA zum bestimmen seines Ergebnisses braucht – meist nur 50 % derer, die SA benötigt. 3