Hochschule Darmstadt - Fachbereich Informatik - Ameisenalgorithmen zur Routenerzeugung in der embedded Fahrzeugnavigation Abschlussarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) vorgelegt von Mike Thomas Hauth Referent : Prof. Dr. J. Wietzke Korreferent : Prof. Dr. K. Kasper Ausgabedatum : 04.10.2007 Abgabedatum : 04.04.2008 Erklärung Ich versichere hiermit, dass ich die vorliegende Arbeit selbstständig verfasst und keine anderen als die im Literaturverzeichnis angegebenen Quellen benutzt habe. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder noch nicht veröffentlichten Quellen entnommen sind, sind als solche kenntlich gemacht. Die Zeichnungen oder Abbildungen in dieser Arbeit sind von mir selbst erstellt worden oder mit einem entsprechenden Quellennachweis versehen. Diese Arbeit ist in gleicher oder ähnlicher Form noch bei keiner anderen Prüfungsbehörde eingereicht worden. Darmstadt, den 04.04.2008 Abstrakt Eine der komplexesten Aufgabenstellungen in der Fahrzeugnavigation ist die Routenerzeugung. Gegenwärtig nutzt man zumeist Verfahren auf Basis von einfachen und heuristischen Bestimmungsalgorithmen zur Ermittlung des kürzesten Weges zwischen der Start- und Zieladresse. Solche Verfahren haben den Nachteil, dass sie ihren vollständigen Lösungsraum bewerten müssen, bis sie zu einer optimalen Lösung kommen. Diese ist jedoch gerade in der Routenplanung nicht zwingend notwendig, da eine näherungsweise optimale Lösung meist ausreichend ist für eine zufriedenstellende Navigation. Daher ist der Einsatz eines Optimierungsverfahrens naheliegend. Die Algorithmen der Ant Colony Optimization (ACO) stellen solche Optimierungsverfahren dar. Die nachfolgende Arbeit betrachtet, inwiefern neu entwickelte Erweiterungen die ACO für die Routenerzeugung in einem Straßennetzwerk qualifiziert. Denn bisher wurde die ACO nur auf kombinatorische Optimierungsprobleme angewendet. Zum Vergleich werden einfache und heuristische Bestimmungsverfahren herangezogen. Die daraus resultierenden theoretischen Algorithmen werden durch ihre Implementierung und unter verschiedenen Parametrisierungen in Untersuchungen überprüft. Des Weiteren wird eine Infrastruktur geschaffen, um die neu entwickelten ACO Algorithmen zur Routenerzeugung in eine exemplarische eingebettete Fahrzeugnavigation zu integrieren. Abstract One of the most difficult tasks in the navigation system is the route calculation. At the present time a method is used based on simple and heuristical graph search algorithms to determine the shortest route between the starting and destination address. The disadvantage of such a method is that they have to evaluate the complete solution space before they get to the optimal result. This is not mandatory particularly in route planning, because a proximity manner optimal solution is most often enough for a satisfying navigation. An optimizing procedure represents the algorithm of the Ant Colony Optimization (ACO). Following task shows to what extent new developed modifications qualify the ACO for the route planning in a road network. So far ACO was only applied for combinatorial optimization problems. The simple and heuristical graph search algorithms are considered for comparison. The resulting theoretical algorithms are tested by its implementation and under different parameter examinations. Furthermore an infrastructure is created, to integrate the newly developed ACO Algorithm for calculating routes in a model imbedded navigation system. Symbolverzeichnis ACO Ant Colony Optimization ACO/SP Ant Colony Optimization zur Bestimmung kürzester Wege AS Ant System AS/SP Ant System zur Bestimmung kürzester Wege ACS Ant Colony System ACS/SP Ant Colony System zur Bestimmung kürzester Wege EAS Elitist Ant System EAS/SP Elitist Ant System zur Bestimmung kürzester Wege ASrank Rank-Based Ant System ASrank /SP Rank-Based Ant System zur Bestimmung kürzester Wege MMAS MAX − MIN Ant System n Anzahl an Knoten im Graphen e Anzahl an Kanten im Graphen i Ein Knoten j Nachbarknoten zu i (i, j) Kante zwischen Knoten i und j W eighti,j Kantengewichtung H Heuristisch bestimmte Entfernung zwischen Startknoten und Zielknoten Hcurrent Heuristisch bestimmte Entfernung zwischen aktuellem Knoten und Zielknoten Hnext Heuristisch bestimmte Entfernung zwischen Nachbarknoten und Zielknoten Q Ergebniswert einer qualitativ optimalen Lösung (i.d.R. heuristisch bestimmt) t Aktuelle Iteration v tmax Maximale Anzahl an Iterationen im Algorithmus tnobest Anzahl an Iterationen ohne Verbesserung bis eine Stagnation erkannt wird m Anzahl an künstlichen Ameisen mmin Mindestanzahl an künstlichen Ameisen die für eine Iteration benötigt werden k Eine künstliche Ameise k Elitist Anzahl elitärer Ameisen τ Globale Information, Pheromon τi,j Abgelegte Pheromonmenge auf Kante zwischen Knoten i und j τ0 Initiale Pheromonmenge τ arithmetrisches Mittel aller Pheromonwerte η Lokale Information, anwendungsspezifische Gewichtsgröße ηi,j Kehrwert der Kantengewichtung zwischen den Knoten i und j α Einflussgewichtung von globalen Informationen β Einflussgewichtung von lokalen Informationen ∆τ + Pheromonemenge die aus der aktuell global besten Tour resultiert ∆τ k Pheromonmege die aus der gefundenen Ameisenlösung resultiert pi,j Übergangswahrscheinlichkeit für Kante i, j ρ Verwitterungsfaktor ξ lokaler Verwitterungsfaktor T Liste mit Kanten einer Tour T+ Liste der Kanten der optimierten Tour Tk Liste der Kanten der Lösung einer Ameise k Tt+ Liste der Kanten der besten Tour in Iteration t L Länge einer Tour L+ Länge der optimierten Tour L+ t Länge der besten Tour in Iteration t w Anzahl an berücksichtigten Ränge in ASrank r Rang nach Lösungsqualität einer Ameisenlösung in ASrank q0 Wahrscheinlichkeit zum direkten Nutzen vorhandenen Wissens q Zufallswert zum Bestimmen der konkreten Anwendung von q0 vi Jik Ausschlussliste besuchter Knoten der Ameise k in der Iteration i c Qualitätsfaktor für zielgerichtete Suche c− Untere Qualitätsfaktorschranke für zielgerichtete Suche c+ Obere Qualitätsfaktorschranke für zielgerichtete Suche d Wertigkeitsfaktor für Straße d− Untere Wertigkeitsfaktorschranke für Straße d+ Obere Wertigkeitsfaktorschranke für Straße Qopen Warteschlange für zu untersuchende Knoten Qclosed Warteschlange für fertig untersuchte Knoten nstart Startknoten ndest Zielknoten nprev Vorgängerknoten W eighti,nstart Entfernung zwischen Startknoten und aktuellem Knoten i Inhaltsverzeichnis 1 Einleitung 2 1.1 Motivation und Kontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Problemstellung und Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Erzielte Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Grundlagen 2.1 2.2 2.3 6 Ameisen als natürliches Vorbild . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.2 Orientierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 Ablauf bei der Futtersuche . . . . . . . . . . . . . . . . . . . . . . . . 8 Ameisenalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 Ant System Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 Ant Colony System Algorithmus . . . . . . . . . . . . . . . . . . . . . 15 2.2.3 Weitere ACO Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.4 Gegenüberstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Routingverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Inhaltsverzeichnis 2.4 viii 2.3.1 Kartendaten im GDF Format . . . . . . . . . . . . . . . . . . . . . . 22 2.3.2 Konventionelle Algorithmen . . . . . . . . . . . . . . . . . . . . . . . 28 Automotive Embedded Systeme . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4.1 Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4.2 Navigationskomponente . . . . . . . . . . . . . . . . . . . . . . . . . 36 3 Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 38 3.1 Situation und ihre Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2 Initialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.2.1 Pheromone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.2.2 Heuristischer Lösungswert . . . . . . . . . . . . . . . . . . . . . . . . 41 Konstruktion der Touren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.3.1 Vermeidung von Abbrüchen . . . . . . . . . . . . . . . . . . . . . . . 42 3.3.2 Zielgerichtetes Suchen . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.3.3 Streben nach höherwertigen Verbindungen . . . . . . . . . . . . . . . 51 3.3.4 Vermeidung von Stagnation . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 3.4 3.5 Fehleinschätzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.4.1 Verhältnismäßige Initialisierung der Pheromone . . . . . . . . . . . . . 57 3.4.2 ACO plus Lokale Suche . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.4.3 Optimierung im Umfeld der besten Lösung . . . . . . . . . . . . . . . 58 3.4.4 Kanten- statt Knotentabuisierung . . . . . . . . . . . . . . . . . . . . 59 Zwischenfazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Inhaltsverzeichnis ix 4 Implementierung der ACO Algorithmen 61 4.1 Verwaltung der Kanteninformationen . . . . . . . . . . . . . . . . . . . . . . 61 4.2 Künstliche Ameise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.2.1 Initialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.2.2 Konstruktion der Tour . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.3.1 Ant System Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3.2 Nebenläufiger Ant System Algorithmus . . . . . . . . . . . . . . . . . 70 4.3.3 Ant Colony System Algorithmus . . . . . . . . . . . . . . . . . . . . . 72 4.3.4 Elitist Ant System Algorithmus . . . . . . . . . . . . . . . . . . . . . 75 4.3.5 Rank-Based Ant System Algorithmus . . . . . . . . . . . . . . . . . . 76 4.4 Komplexität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.5 Parametrisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.6 Integration in die Navigationskomponente . . . . . . . . . . . . . . . . . . . . 81 4.3 5 Leistungsfähigkeiten der ACO/SP Algorithmen 83 5.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.2 Aufteilung von Ameisenläufen auf Iterationen . . . . . . . . . . . . . . . . . . 84 5.3 Gewichtung der globalen zur lokalen Information . . . . . . . . . . . . . . . . 87 5.4 Lernverhalten im iterativen Verlauf . . . . . . . . . . . . . . . . . . . . . . . 89 5.5 Einfluss der Verwitterung auf die Optimierung . . . . . . . . . . . . . . . . . 91 5.5.1 Verwitterung mit Faktor ρ . . . . . . . . . . . . . . . . . . . . . . . . 91 5.5.2 Verwitterung in ACS/SP . . . . . . . . . . . . . . . . . . . . . . . . . 93 Inhaltsverzeichnis x 5.6 Verhalten nach Verkehrsstörung . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.7 Ressourcenbedarf zur Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.8 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6 Resümee 97 7 Ausblick 99 A Anhang 101 A.1 Parametrisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 B Danksagung 103 Literatur 104 Abbildungsverzeichnis 2.1 Ablauf der Futtersuche bei Ameisen . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 GDF Informationen aus Level 0 und 1 . . . . . . . . . . . . . . . . . . . . . . 23 2.3 Darmstadt aufgeteilt und organisiert in einem Quadtree ([Men07], Seite 39) . . 27 2.4 API für Zugriff auf Straßennetzinformationen . . . . . . . . . . . . . . . . . . 28 2.5 Radiale Ausdehnung des Dijkstra Algorithmus (Schema) . . . . . . . . . . . . 31 2.6 Zielgerichtete Ausdehnung des A* Algorithmus (Schema) . . . . . . . . . . . 32 2.7 Vergleich zweier Graphen untersucht mit A* Algorithmus . . . . . . . . . . . . 32 2.8 Kommerzieller Ansatz der Routenerzeugung (Schema) . . . . . . . . . . . . . 33 2.9 Aufbau Embedded Automotive System . . . . . . . . . . . . . . . . . . . . . 34 2.10 Komponenten des Framework in der Headunit . . . . . . . . . . . . . . . . . 36 3.1 Typische Struktur in einem Graphen eines Straßenmodells . . . . . . . . . . . 39 3.2 Falscheinschätzung der lokalen Information . . . . . . . . . . . . . . . . . . . 40 3.3 Fälle von vereinfachten Knotenübergängen . . . . . . . . . . . . . . . . . . . 42 3.4 Anzahl an Abbrüchen bei der Wegesuche in AS . . . . . . . . . . . . . . . . . 43 3.5 Vergleich von Abbruchhäufigkeiten mit und ohne Abbruchprävention . . . . . . 44 3.6 Klassifizierung nach heuristischer Veränderung bei Standortwechsel . . . . . . 46 Abbildungsverzeichnis 3.7 xii Klassifizierung nach trigonometrischer Abweichung von Ideallinie bei Standortwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.8 Funktionen zur Abbildung der Kursabweichung auf Übergangsqualität . . . . . 48 3.9 Effektivität von Funktionen im Vergleich (Versuch 1) . . . . . . . . . . . . . . 50 3.10 Effektivität von Funktionen im Vergleich (Versuch 2) . . . . . . . . . . . . . . 51 3.11 Abweichungen vom kürzesten Weg durch Bevorzugung höherwertiger Straßen . 54 3.12 Auswirkung des Lageparameters τloc auf die Optimierungsqualität . . . . . . . 56 3.13 Auswirkung der Stagnationserkennung auf die Optimierungsqualität (Auszug) . 56 3.14 Auswirkung des Überprüfungsverfahrens auf die Optimierungsqualität . . . . . 57 3.15 Schleifenbildung bei Kanten- statt Knotentabuisierung . . . . . . . . . . . . . 59 4.1 Klasse CTrail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.2 Klasse CAnt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.3 Klasse CAlgorithmBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.4 Vergleich zwischen Nebenläufiger AS/SP und AS/SP . . . . . . . . . . . . . . 73 4.5 Integration der ACO in Navigationskomponente (hier ACS-Algorithmus) . . . . 82 5.1 Aufteilung einer konstanten Anzahl von Ameisenläufen (Optimierung) . . . . . 85 5.2 Aufteilung einer konstanten Anzahl von Ameisenläufen (Aufwand) . . . . . . . 86 5.3 Optimierungsqualität bei konstantem α und variablem β . . . . . . . . . . . . 87 5.4 Optimierungsqualität bei variablem α und konstantem β . . . . . . . . . . . . 88 5.5 Lernverhalten über den iterativen Verlauf . . . . . . . . . . . . . . . . . . . . 90 5.6 Qualität und Zeitaufwand der ersten Lösung . . . . . . . . . . . . . . . . . . 91 5.7 Einfluss der Verwitterung auf die Optimierung . . . . . . . . . . . . . . . . . 92 Abbildungsverzeichnis xiii 5.8 Einfluss der lokalen Verwitterung in ACS/SP auf die Optimierung . . . . . . . 93 5.9 Verhalten nach exemplarischer Verkehrsstörung auf der optimierten Route . . . 94 5.10 Verlauf des Ressourcenbedarf einer exemplarischen Optimierung mit ACO/SP . 95 Listings 2.1 Pseudocode des AS Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Pseudocode des ACS Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Pseudocode des Dijkstra Algorithmus . . . . . . . . . . . . . . . . . . . . . . 29 4.1 Pseudocode der Tourkonstruktion in CAnt . . . . . . . . . . . . . . . . . . . 64 4.2 Pseudocode der Übergangsentscheidung in CAnt . . . . . . . . . . . . . . . . 65 4.3 Pseudocode der Routenerzeugung in AntSystem::CAlgorithm . . . . . . . . 69 4.4 Pseudocode der Pheromonaktualisierung in AntSystem::CAlgorithm . . . . 70 4.5 Pseudocode der Routenerzeugung in AntSystemThread::CAlgorithm . . . . 71 4.6 Pseudocode der Routenerzeugung in AntColonySystem::CAlgorithm . . . . 74 4.7 Pseudocode der lokalen Pheromonaktualisierung in AntColonySystem::CAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . 4.8 4.9 74 Pseudocode der globalen Pheromonaktualisierung in AntColonySystem::CAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . 74 Pseudocode der Pheromonaktualisierung in ElitistAntSystem::CAlgorithm 75 4.10 Pseudocode der Pheromonaktualisierung in RankedAntSystem::CAlgorithm 76 1. Einleitung In diesem Kapitel wird die für die Arbeit zugrunde liegende Motivation dargestellt. Es wird ein Kontext zu vergleichbar motivierten Problemstellungen und ihrer Lösung gegeben. Darauf folgend wird die Problemstellung erläutert und die in der Arbeit gewünschte Zielsetzung beschrieben. Anschließend werden zusammengefasst die erzielten Ergebnisse genannt. Abschließend stellt ein Abschnitt den Aufbau der vorliegenden Arbeit vor. 1.1 Motivation und Kontext Die Natur hat über Generationen Wege für Problemlösungen entwickelt, die in der Technik Ihresgleichen suchen. Eine dieser Leistungen ist die Fähigkeit von Ameisen Wege zwischen ihrem Nest und einer Rohstoff- bzw. Futterquelle zu finden. Dabei kann die Welt der Ameise noch so komplex sein, eine ausgebildete Ameisenstraße ist in der Regel optimal. Vergleichbare kombinatorische Optimierungsanforderungen werden in der Informatik häufig gestellt und oftmals nur unter hohem Ressourceneinsatz in Brute-Force gelöst. Ein nahverwandtes Problem zu dem der natürlichen Ameisen ist die Routenerzeugung in einem Navigationssystem. Mit steigender Anzahl von Kreuzungen in einem Straßennetz nimmt die Anzahl der möglichen Lösungen und damit die Komplexität der Aufgabenstellung fakultativ zu. In einem städtischen, nationalen oder gar kontinentalen Straßennetz ist die Komplexität 1. Einleitung 3 entsprechend schnell schwer zu überschauen. Die Motivation für diese Arbeit liegt darin, die Fähigkeiten von natürlichen Ameisen zur Bestimmung optimaler Wege für die Routenerzeugung zu adaptieren und mit konventionellen Algorithmen zur Bestimmung kürzester Wege zu vergleichen. Der Informatiker Dorigo hat Anfang der Neunziger Jahre des letzten Jahrhunderts die Fähigkeiten staatenbildender Insekten zur Inspiration genommen und ein Verfahren zur Optimierung kombinatorischer Probleme entwickelt (siehe [CDM91]). Die resultierenden Ameisenalgorithmen sind in der Ant Colony Optimization (ACO) zusammengefasst und artverwandt mit den Genetischen Algorithmen ([Wei07], Seite 45ff). Bei beiden wird versucht, iterativ bessere Lösungen mit Hilfe zuvor untersuchter Lösungen zu finden. Während der genetische Algorithmus hierbei untersuchte Lösungen rekombiniert, untersuchen Ameisenalgorithmen verstärkt den Lösungsraum im Umfeld gefundener Lösungen. Weitere kombinatorische Optimierungsverfahren in der Informatik sind die der Lokalen Suche. Eine zuvor heuristisch bestimmte Lösung wird optimiert, indem ihre Nachbarschaft untersucht wird. Das Simulierte Abkühlen vertauscht hierfür zum Beispiel Kombinationsreihenfolgen innerhalb einer Lösung. Die Tabu Suche([Wei07], Seite 163ff) untersucht Nachbarschaftslösungen über mehrere Iterationen. Dabei tabuisiert sie die Wiederholung der erfolgten Lösungsschritte während der selben Iteration. Für andere Fachgebiete in der Informatik, wie zum Beispiel der Mustererkennung und Sprachsynthese, existieren ebenfalls Optimierungsverfahren. Allen voran die der Künstlichen Neuronalen Netze ([LC04], Seite 15), der Polynomklassifikator ([Nie03], Seite 369ff) und die Fuzzy-Logik ([LC04], Seite 92ff). Insbesondere mit den künstlichen Neuronalen Netzen besteht eine Verwandtschaft zu den Ameisenalgorithmen, da beide innerhalb ihres Modells erlernte Hilfsparameter zur Bestimmung einer iterativ optimierten Lösung speichern. Jedoch sind künstliche Neuronale Netze darauf ausgelegt, ein vorgegebenes Verhalten durch stetiges Wiederholen und Vergleichen zu erlernen. Ameisenalgorithmen sind hingegen unüberwacht. Sie benötigen zur Qualitätsbestimmung einer gefundenen Lösung nur einen Schätzwert bzw. die Qualität der bisher besten gefundenen Lösung. 1. Einleitung 1.2 4 Problemstellung und Zielsetzung Die Routenerzeugung für mobile Navigationssysteme enthält ein weites Spektrum an Anforderungen. Sie muss schnell sein, einen optimalen Weg finden und dynamisch auf Ereignisse im Straßennetz reagieren können. Die Anforderung der Schnelligkeit bezieht sich bei der Routenerzeugung vor allem darauf, wie lange ein Anwender nach der Definition eines Zieles warten muss, bis er die erste Routenanweisung erhalten kann. Eine aufbauend optimierte Lösung wird erst im weiteren Reiseverlauf benötigt. Dies ist auch in direkten Zusammenhang mit einem flexiblen Reiseverlauf zu sehen. Auf Abweichungen von der erzeugten Route muss unmittelbar reagiert werden können und auf unvorhersehbare Änderungen bei Streckenabschnitte der Route Alternativen bereit gehalten werden. Doch auch indirekte Änderungen im Straßennetz, wie zum Beispiel dem Auflösen einer Verkehrsbehinderung abseits der Route, können zu einer neuen optimalen Route führen. Eine weitere Herausforderung sind die in einem Embedded Automotive System begrenzten Ressourcen. Die vorhandene Arbeitsspeicherkapazität verhindert im Allgemeinen eine vollständige Repräsentation des Straßennetzmodells zu einem Zeitpunkt. Im Weiteren muss der Algorithmus zur Erzeugung der Route möglichst effektiv mit den vorhandenen Rechenleistungskapazitäten haushalten. Bei der Modellierung der neuen Ameisenalgorithmen zur Bestimmung kürzester Wege kann grundlegend auf die Gruppe der Ant Colony Optimization Algorithmen zurückgegriffen werden. Allerdings sind diese für Problemstellungen wie der Bestimmung kürzester Wege in einem Straßennetzmodell einer Stadt nicht unverändert einsetzbar. Dies liegt zum Einen an der Struktur eines Straßennetzes und im Weiteren an der Orientierungslosigkeit der künstlichen Ameisen zu Beginn des Algorithmus. Als Ziel soll ein Algorithmus entwickelt werden, der das Verhalten von Ameisen bei der Futtersuche modelliert. Dabei soll auf die besonderen Begebenheiten hinsichtlich der Routenerzeugung für Fahrzeugnavigationen und ihrer eingeschränkten Hardwareressourcen Rücksicht genommen werden. Zur Grundlage kann der zu entwickelnde Algorithmus dabei auf die vorhandenen Algorithmen der Ant Colony Optimization zur Lösung kombinatorischer Aufgaben zurückgreifen. 1. Einleitung 1.3 5 Erzielte Ergebnisse Aus der Arbeit resultierte eine neue eigenständige Gruppe von Algorithmen der Ant Colony Optimization. Ihre Realisierbarkeit wurde durch Implementierungen und ihre Leistungsfähigkeit in statistischen Untersuchungen nachgewiesen. Die Integration in ein exemplarisches eingebettetes Fahrzeugnavigationssystem wurde durch Kompatibilität der erzeugten Routen und Nutzung der Navigationsschnittstellen sichergestellt. 1.4 Vorgehensweise In Kapitel 2 werden die zum Verständnis der Arbeit notwendigen Grundlagen eingeführt. Zunächst werden die wichtigsten Fähigkeiten der natürlichen Ameisen hinsichtlich Orientierung und Kommunikation erläutert. Des Weiteren wird eine ausgewählte, für die Problemstellung geeignete Gruppe von Ant Colony Optimization Algorithmen vorgestellt und ihre Unterschiede untereinander aufgezeigt. Im Folgenden werden die rechnerinterne Darstellung und die Schnittstellen zum Zugriff auf die Kartendaten beschrieben. Ferner werden die beiden gängigsten konventionellen Algorithmen zur Bestimmung kürzester Wege eingeführt. Zuletzt wird das InCar-Multimediasystem und seine Navigationskomponente, an der sich die prototypische Entwicklung zur Routenerzeugung orientiert, grundlegend vorgestellt. Im darauffolgenden Kapitel 3 werden die Modifikationen und Erweiterungen der Dorigo et al. Ant Colony Optimization Algorithmen zur Routenerzeugung in der Theorie aufgezeigt und ihre Auswirkungen auf die Verbesserung der Leistungsfähigkeit nachgewiesen. Im Anschluss wird in Kapitel 4 die Implementierung der neuen Algorithmen detailliert dargestellt. In diesem Zusammenhang wird auch auf die Besonderheiten zur Effizienzsteigerung und die Portierbarkeit in die Zielnavigationssystem eingegangen. Zuletzt zeigt Kapitel 5 die Ergebnisse von Versuchen zwischen den spezialisierten Ant Colony Optimization Algorithmen untereinander und im Vergleich zu konventionellen Algorithmen zur Bestimmung kürzester Wege. 2. Grundlagen Im nachfolgenden Kapitel werden die für das Verständnis notwendigen Grundlagen eingeführt. Zunächst geht Abschnitt 2.1 auf die natürlichen Ameisen, ihre Fähigkeiten und ihr Sozialverhalten ein. Darauffolgend wird in Abschnitt 2.2 das Konzept des Optimierungsverfahrens Ant Colony Optimization (ACO) und ihrer Algorithmen auf Basis von künstlichen Ameisen erläutert. Der Abschnitt 2.3 stellt das für die Arbeit vorliegende Kartenmaterial, seine Repräsentation und Zugriffsschnittstellen in digitaler Form vor. Im Weiteren werden herkömmliche Algorithmen und Verfahren zur Routenerzeugung aufgeführt. 2.1 Ameisen als natürliches Vorbild Ameisen gehören gemeinsam mit den Wespen und Bienen der Gruppe der Taillenwespen (lat. Apocrita) an. Sie sind staatenbildend und aufgrund ihrer weiten Verbreitung sehr anpassungsfähig und vielfältig entwickelt. Ameisen sind in der Lage im Kollektiv ohne zentrale Koordination komplexe Aufgaben zu lösen. Dies wird insbesondere durch ihr ausgeprägtes Sozialleben und ihrer Fähigkeit zur umfangreichen Kommunikation ermöglicht. Des Weiteren besitzt das Ameisenkollektiv wegen seines Informationsaustausches eine Schwarmintelligenz mit einem kollektiven Gedächtnis ([BoyoJ], Seite 1). Die aus den nachfolgenden Unterabschnitten stammenden Informationen stammen aus [Sch85] und [HW98]. 2. Grundlagen 2.1.1 7 Kommunikation Zum Informationsaustausch nutzen Ameisen überwiegend zweierlei Wege. Zum Einen nutzen sie chemische Duftstoffe, die sie in unterschiedlichen Drüsen ihres Körpers produzieren, zum Anderen taktile Berührungen mittels ihrer Fühler. Von einigen Ameisenarten ist auch bekannt, dass sie durch Stridulation, dem Reiben des hinteren Beinpaars am Hinterleib, Schallwellen bis in den Ultraschallbereich aussenden können. Dies nutzt zum Beispiel die Blattschneideameise, um nach einer Verschüttung unter Blättern nach Hilfe zu rufen, bis sie durch Artgenossen geborgen wird. Chemische Duftstoffe dienen auf unterschiedliche Weise zur Kommunikation. Zum Einen signalisiert die Ameise anderen Mitgliedern beschrittene Wege, indem sie beständig beim Lauf eine Pheromonspur hinterlegt. Andererseits fordert sie auf diese Weise auch Arbeitsunterstützung an, wenn sie zum Beispiel ein Insekt angreift, beißt und mit Ameisensäure verwundet. Des Weiteren signalisiert sie Gefahrensituationen mittels Duftstoffe. Die taktile Kommunikation dient vor allem zur unmittelbaren Kommunikation zwischen zwei Ameisen, wenn eine Ameise zum Beispiel Hunger hat und aus dem Sozialmagen einer Artgenossin Nahrung gespendet haben möchte. Weiterhin führen Ameisen Artgenossen zu Futterquellen, wenn die Pheromonspur noch nicht ausreichend beduftet wurde. Sollte dabei die geführte Ameise den Kontakt verlieren, wartet die Leitameise und versprüht Signalisierungspheromone, bis ihre Kollegin wieder bei ihr ist. 2.1.2 Orientierung Während der Mensch und andere große Lebewesen mit großem Lebensraum sich in erster Linie in einem zweidimensionalen Raum orientiert, muss eine Ameise sich in allen drei Dimensionen orientieren können, um den Weg zurück zu ihrem überlebensnotwendigen Nest zu finden. Behilflich sind ihr hierbei mehrere Körpersensoren und Techniken. Zunächst legt jede Ameise bei ihrem Lauf eine stetige Pheromonspur, von der sie und andere Ameisen angelockt werden. An dieser Pheromonspur kann sie sich auch wieder auf dem Rückweg zum Nest orientieren. Optisch können sich Ameisen an Lichtquellen (Lichtkompassorientierung) und an markanten Landschaftsmerkmalen orientieren. Bei der angeborenen Phototaxis, der Fähigkeit zwischen 2. Grundlagen 8 Beleuchtungsstärken zu unterscheiden, orientiert sich die Ameise an der Sonne bzw. dem Mond. Eine positive Phototaxis bedeutet das Hinbewegen zu einer Lichtquelle, während man unter einer negativen Phototaxis das Fortbewegen von der Lichtquelle versteht. Aus Erfahrung und Lernvorgängen entwickelt sich die Menotaxis, mit deren Hilfe sich eine Ameise an einem bestimmten Winkel zum Lichtreiz orientieren kann. Mit Hilfe ihrer biologischen Uhr gleicht sie hierbei die scheinbare Bewegung der Sonne aus und kann somit einen beliebigen Ort auch nach verstrichener Zeit wieder aufsuchen. Ergänzend können einige Ameisenarten sich mit Hilfe ihrer Facettenaugen am polarisierten Himmelslichtmuster orientieren. Auch wenn Ameisen nur eine eingeschränkte Fähigkeit zur Mustererkennung besitzen, prägen sich einige Arten dennoch das markante Umfeld anhand von Wegpunkten in das Gedächtnis ein. Die afrikanische Stachelameise kann sich sogar den Weg zwischen Futterquelle und Nest anhand von Blättern und Ästen merken. Auf diese Weise kann sie relativ schnell und einfach den Rückweg finden. Als Weiteres sind Ameisen in der Lage zu bestimmen in welchem Winkel sie sich zur Schwerkraft befinden, um sich daran zu orientieren. Die Wüstenameise nimmt darüberhinaus die Länge der zurückgelegte, Wegstrecke und die Luftlinie zu ihrem Ausgangspunkt wahr. Dadurch kann sie auf dem Rückweg Abkürzungen nutzen.[WWR01] 2.1.3 Ablauf bei der Futtersuche Zunächst schwärmen alle Ameisen vom Nest in beliebige Richtungen aus (siehe Abbildung 2.1, Schritt 1). Während dem Laufen verlegt jede Ameise eine Pheromonspur hinter sich. Sobald eine lohnenswerte Futterquelle gefunden wurde, nimmt die Ameise Futter auf und kehrt zurück zu ihrem Nest (siehe Abbildung 2.1, Schritt 2). Dabei orientiert sie sich an der stärksten von der Futterquelle ausgehenden Pheromonspur (siehe Abbildung 2.1, Schritt 3). Die Wüstenameise würde bei Bedarf versuchen über eine Abkürzung zum Nest zurück zu kehren. Sobald sie mit dem Futter am Nest angekommen ist, versucht sie Artgenossen zu rekrutieren. In der Regel verteilt sie hierzu Futterproben und motiviert eine Kollegin, ihr zu der Futterquelle zu folgen. Durch die stetige Begehung der Pheromonspur wird diese immer weiter ausgeprägt und andere Ameisen werden immer stärker von ihr angelockt. Es entsteht eine Ameisenstraße 2. Grundlagen 9 (siehe Abbildung 2.1, Schritt 4). Vereinzelte Ausbrüche von der Ameisenstraße verhindern eine Stagnation in einem lokalen Minimum. Längere Wege werden über einen Zeitraum weniger stark beduftet, da Ameisen auf dem kürzeren Weg schneller und somit auch häufiger den Pfad passieren. Der natürliche Verwitterungsprozess verstärkt dies zusätzlich und lässt schlechtere Wege mit der Zeit aus dem kollektiven Gedächtnis verschwinden. Das kollektive Gedächtnis hilft auch dem Ameisenvolk in unvorhersehbaren Situationen, wie zum Beispiel Unterbrechung einer Ameisenstraße durch Pfützenbildung bei Regen. Die Unterbrechung der bisher optimierten Route führt nicht zu einer vollständigen Desorientierung der Ameisengruppe, sondern lässt das Hindernis über bisher geringer bewertete Umwege umgehen. Abbildung 2.1: Ablauf der Futtersuche bei Ameisen 2.2 Ameisenalgorithmen Bei den Ameisenalgorithmen handelt es sich um Metaheuristiken zur kombinatorischen Optimierung. Sie haben das Verhalten von natürlichen Ameisen bei der Futtersuche zur Grundlage (siehe Abschnitt 2.1.3). Metaheuristischen Algorithmen beschreiben eine abstrakte Abfolge von Schritten zur Anwendung auf eine ganze Klasse von Problemstellungen ([Ren07], Seite 19). Der erste Ameisenalgorithmus, Ant System, stammte von Marco Dorigo und war zur 2. Grundlagen 10 Lösung des Traveling Salesman Problem angewandt [CDM91]. Zwischenzeitlich haben sich eine Reihe weiterer Ameisenalgorithmen entwickelt, welche unter der Bezeichnung Ant Colony Optimization (ACO) zusammengefasst werden. Teilweise sind diese Algorithmen auf spezielle Optimierungsprobleme zugeschnitten. Typische Anwendungsfälle für Ameisenalgorithmen sind zum Beispiel • Routenoptimierung mit mehreren Zwischenpunkten (z.B. Abfallentsorgungs-, Auslieferungsund Busrouten), • Maschinenbelegungsoptimierung, • Proteinfaltung, • Personaleinsatzplanung und • Routing in Netzwerken (siehe [BDT00], Seite 39ff). Aber auch einfache Problemstellungen werden gerne über praxisorientierte Optimierungsverfahren ähnlich dem Ameisenalgorithmus gelöst. So zum Beispiel werden häufig auf Grundlage von Trampelpfaden, dem Equivalent zu den Pheromonspuren, optimierte befestigte Wege angelegt. Für diese Arbeit werden nur Ameisenalgorithmen, die sich für die Bestimmung einer Route eignen, herangezogen. Hierzu gehören insbesondere der Ant System Algorithmus (siehe Abschnitt 2.2.1), der Ant Colony System (ACS) Algorithmus (siehe Abschnitt 2.2.2) und weitere spezialisierte Ant System Algorithmen (siehe Abschnitt 2.2.3). Jeder ACO Algorithmus besteht aus einer einheitlichen Abfolge. Zunächst werden alle Ameisen auf den Weg durch einen Graphen, bestehend aus Knoten mit verbindenden Kanten, geschickt. Eine Übergangsregel entscheidet hierbei, welche von dem aktuellen Knoten wegführende Kante genutzt wird, um zu einem nächsten bisher unbesuchten Knoten zu gelangen. Hierzu nutzt die Übergangsregel eine gewichtete Wahrscheinlichkeit auf Basis der Pheromonmenge der betroffenen Kante (Globale Information) und der Kantengewichtung, wie zum Beispiel Länge der Strecke (Lokale Information). Eine weitere Bedingung ist, dass der zu erreichende Zielknoten bisher von der künstlichen Ameise noch nicht besucht wurde. Nachdem eine Iteration 2. Grundlagen 11 abgeschlossen ist, also alle Ameisen ihr Ziel erreicht haben, wird die Lösungsqualität einer jeden Ameise ausgewertet und gegebenenfalls als neueste beste Lösung gespeichert. Zuletzt werden die Pheromoninformationen anhand der gefundenen Lösungen aktualisiert, bevor eine neue Iteration beginnt. Wichtige Parameter in jedem Ameisenalgorithmus sind • die Anzahl der Ameisen pro Iteration, • die Anzahl der Iterationen, • das Verhältnis zwischen globalen und lokalen Informationen in der Übergangsregel und • die Stärke von Verwitterungseinflüssen beim Aktualisierungsvorgang. Insbesondere die Stärke der Verwitterungseinflüsse spielen eine sensible Rolle, da eine zu niedrige Verwitterung einen Algorithmus in einem möglichen lokalen Minima stagnieren lässt und eine zu hohe Verwitterung den Lernvorgang hemmt. Ein richtiges Verhältnis zwischen globalen und lokalen Informationen ist ebenfalls wichtig. Eine zu hohe Einschätzung der lokalen Information führt zu einem Brute-Force Algorithmus, während eine Überbewertung der globalen Information den Algorithmus ebenfalls in einem lokalen Minimum stagnieren lassen kann. 2.2.1 Ant System Algorithmus Ant System (AS) war der erste vom Beispiel der Natur nachempfundene Ameisenalgorithmus und wurde von Colorni, Dorigo und Maniezzo 1991 in dem Artikel Distributed optimization by ant colonies [CDM91] vorgestellt. Er beinhaltet alle im Abschnitt 2.2 genannten Merkmale von Ameisen bei der Futtersuche. Bei AS wird davon ausgegangen, dass eine Gruppe von Ameisen von einem Start- zu einem Zielknoten durch einen modellierten Graphen laufen. Dorigo nennt als Parameter für die Anzahl der Ameisen gleich die Anzahl an Knoten im Graphen m = n (siehe [DS04], Seite 71). Dabei nutzen sie zur Entscheidungsfindung beim Knotenwechsel eine Übergangsregel. Sobald alle Ameisen ihr Ziel erreicht haben, werden die Pheromonwerte aller Kanten im Graphen aktualisiert. Hierzu setzt zunächst ein Verwitterungsprozess ein, bei dem die Pheromonwerte 2. Grundlagen 12 an allen Kanten um einen parametrisierten Faktor reduziert werden. Anschließend werden die in den einzeln gefundenen Routenlösungen besuchten Kanten mit einem qualitätsabhängigen Wert für die Route neu beduftet. Danach wiederholen alle Ameisen ihren Lauf in einer weiteren Iteration. Sobald eine definierte Anzahl an Iterationen abgeschlossen ist oder ein definiertes Qualitätsziel erreicht wird, gilt der Algorithmus als beendet. 2.2.1.1 Konstruktion der Touren Eine Übergangsregel bestimmt die Kriterien für den Wechsel vom aktuellen Knoten i zu einem benachbarten Knoten j. Sie basiert auf drei Faktoren: • Zyklenfreiheit. Das heißt jede Ameise k darf in einer Iteration t jeden Knoten höchstens einmal besuchen. Hierzu führt die Ameise eine Liste Jik aller bereits besuchten Knoten. Vor dem in Betracht ziehen eines Übergangs zu Knoten j überprüft sie, dass der Knoten j noch nicht in Liste Jik geführt wird. • Heuristic desirability. Jede Kante (i, j) besitzt eine lokale Information ηi,j , die bestimmt, wie gut sie für einen Übergang geeignet ist. In einem Modell, wie dem der Suche nach dem kürzesten Weg, stellt diese Information die Inverse des Kantengewichtes 1 W eighti,j dar. Die lokale Information ist in einem Problemlösungsprozess im Regelfall statisch. • Learned desirability. Zusätzlich zur lokalen Information besteht die globale Information τi,j , welche die Pheromonmenge einer Kante bestimmt. Sie repräsentiert das bisher erworbene Wissen der Ameisen über den gesamten Optimierungsprozess. Die globale Information ist daher nicht statisch. Die Auswahlwahrscheinlichkeit für eine Ameise k in der Iteration t zu einem Knotenübergang von Knoten i zu Knoten j wird in AS gemäß Gleichung 2.1 ausgedrückt: pki,j = P [τi,j (t)]α · [ηi,j (t)]β α β [τ (t)] · [η (t)] k i,j i,j l∈T / (2.1) i Die Wahrscheinlichkeit pki,j für Ameise k, dass sie einen Wechsel von Knoten i zu Knoten j vollzieht, hängt somit von der Gewichtung der Übergangswahrscheinlichkeit im Verhältnis 2. Grundlagen 13 zur Summe der Gewichtungen aller möglichen Übergangswahrscheinlichkeiten ab. Die Übergangswahrscheinlichkeit einer Kante (i, j) ist hierbei das Produkt aus der Potenz der globalen Information τi,j mit ihrem Gewichtungsexponenten α und der Potenz der lokalen Information ηi,j mit ihrem Gewichtungsexponenten β. Die Exponenten α und β ermöglichen den lokalen und globalen Informationen unterschiedlich hohe Bedeutung zuzuordnen. Ihre Höhe kann frei bestimmt werden, wobei die unter Abschnitt 2.2 genannten Aspekte berücksichtigt werden müssen. Im AS empfiehlt Dorigo Werte für α = 1.0 und 2.0 ≤ β ≤ 5.0 (siehe [DS04], S. 71). Bei α = 0 ergibt sich eine Lösung eines rein stochastichen Algorithmus. Gesammelte Erfahrungswerte werden bei einer Entscheidung nicht hinzugezogen. Bei limβ→0 wird die am stärksten ausgeprägte Route als Lösung gewählt. Die Erforschung neuer Teilabschnitte durch Abweichung vom Hauptpfad wird weitgehend ausgeschlossen und eine Stagnation in einem lokalen Minimum begünstigt. Die eigentliche Entscheidung, welche Kante (i, j) letztendlich genutzt wird, wird gleichverteilt, zufällig unter Berücksichtigung der Übergangswahrscheinlichkeiten pki,j bestimmt. Hierdurch wird die Suche auf den wahrscheinlichsten Weg konzentriert, ohne dass abseits gelegene Pfade benachteiligt werden. 2.2.1.2 Aktualisierung der Pheromonpfade Nachdem alle Ameisen eine Iteration abgeschlossen haben, also für jede Ameise k ein Lösung Lk (t) vorliegt, werden die globalen Informationen τi,j aktualisiert. Zunächst verwittert an jeder Kante im Graphen ein Anteil des Pheromons (siehe Gleichung 2.2). Durch die Verwitterung wird der Gefahr einer Stagnation des Algorithmus in einem lokalen Minimum entgegengewirkt. Ausgedrückt wird die Verwitterung als Faktor ρ. Dorigo nennt für den AS einen Faktor von ρ = 0.5, für 0.0 < ρ < 1.0 (siehe [DS04], S. 71). τi,j = τi,j · (1 − ρ) (2.2) k Anschließend werden die neu zu verlegende Pheromonmengen ∆τi,j (t) bestimmt (siehe Glei- chung 2.3). Hierzu wird jede Ameisenlösung der aktuellen Iteration Lk (t) bewertet, indem sie 2. Grundlagen 14 zu einer qualitativ optimalen Lösung Q ins Verhältnis gesetzt wird. Das Ergebnis ergibt die Pheromonmenge, die die Ameise k auf alle Kanten (i, j) ihrer Lösung zusätzlich verteilt. Der Wert der qualitativ optimalen Lösung Q kann das Ergebnis aus einem heuristischen Verfahren sein (Q = H). k ∆τi,j (t) = Q (2.3) Lk (t) Die aktuellen Pheromonmengen τi,j auf den Kanten (i, j) werden bestimmt, indem die aufsummierten neuen Pheromonspuren ∆τi,j aller Ameisen m auf die vorhandene Pheromonspuren τi,j addiert werden (siehe Gleichung 2.4). τi,j = τi,j + m X k (t) ∆τi,j (2.4) k=1 Kanten, die in keiner Lösung der aktuellen Iteration betreten wurden, bleiben von der Neubelegung unberührt (∆τi,j (t) = 0). 2.2.1.3 Algorithmus Zu Beginn des Algorithmus findet eine Initialisierung statt (Listing 2.1, Zeile 1ff). Alle Kanten des Graphen werden hierbei homogen mit dem Pheromonwert τ0 initialisiert. Dieser Vorgang ist notwendig, um während der Aktualisierung des Pheromonpfades einen Division durch 0 -Fehler zu vermeiden. Dorigo empfiehlt für AS den Wert τ0 = m Q ([DS04], S. 70). Im nächsten Schritt wird die global beste Tour T + als ∅ und ihre zugehörige Länge mit ∞ initialisiert. In der Iterationsschleife (Listing 2.1, Zeile 7ff) sucht anschließend jede Ameise k eine Lösung unter wiederholter Anwendung der Übergangsregel, bis der Zielknoten (Destination) erreicht wird. Besuchte Kanten (i, j) werden hierbei in T k gespeichert und das Gewicht W eighti,j der genutzten Kante auf das Gesamtgewicht der Tour Lkt addiert. Wenn die Länge einer abgeschlossenen Tour einer Ameise Lk kürzer ist als die aktuell global beste Tour L+ , werden L+ und T + neu gesetzt. Nach Abschluss aller Ameisenläufe innerhalb der Iteration t findet die Aktualisierung der Pheromonspuren τ gemäß Abschnitt 2.2.1.2 statt (Listing 2.1, Zeile 25ff). Danach beginnt eine neue Iteration mit t = t + 1 bis t = tmax . 2. Grundlagen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 15 //Initialisierung Foreach Kante τi,j = τ0 End Foreach T+ = ∅ L+ = ∞ //Iterationsschleife For t = 1 To tmax //Ameisenschleife For k = 1 To m Tk = ∅ Lk = 0 //Tourkonstruktionsschleife While i Not Destination Wähle nächsten Knoten j gemäß Abschnitt 2.2.1.1 Tk ⇐ j Lk = Lk + W eighti,j i=j End While If L+ > Lk L+ = Lk T+ = Tk End If End For //Pheromonaktualisierung For k = 1 to m Aktualisiere Pheromone τ für Tour T k gemäß Abschnitt 2.2.1.2 End For End For Listing 2.1: Pseudocode des AS Algorithmus 2.2.2 Ant Colony System Algorithmus Mit steigender Komplexität des Graphen steigt die Gefahr einer Stagnation des AS Algorithmus in einem lokalen Minimum. Die resultierenden Optimierungslösungen sind in solchen Fällen bei AS im Vergleich zu anderen Lösungsansätzen (z.B. Genetischen Algorithmen und Simulated 2. Grundlagen 16 Annealing) schlechter (siehe [Rad04], Seite 12ff). Der Ant Colony System (ACS) ist eine Weiterentwicklung auf Basis des AS und soll insbesondere diese Gefahr vermindern. ACS wurde von Dorigo&Gambardella 1997 vorgestellt [DG97] und unterscheidet sich zu AS an drei wesentlichen Stellen. Zum Einen nutzt er mit Hilfe einer modifizierten Übergangsregel im Gegensatz zu AS mehr das erlernte Wissen. Zum Zweiten aktualisiert er die Pheromonpfade nur noch mit Hilfe der besten gefundenen Lösung und zum Dritten reduziert er mit jedem Knotenübergang den auf der genutzten Kante hinterlegten Pheromonwert. Im Zusammenspiel ergibt sich ein ausgewogenes Streumaß der Pheromonwerte und ein forschungsinteressiertes Verhalten der künstlichen Ameisen. Eine Stagnation, aufgrund unverhältnismäßig hoher Pheromonwerte auf Kanten einer minder optimalen Lösung, kann ausgeschlossen werden. Die aus AS bekannten Parameter sind in ACS weiter gültig. Dorigo schlägt in [DS04], Seite 71 folgende Werte vor. Die Gewichtungsfaktoren mit α = 1.0 und 2.0 ≤ β ≤ 5.0 sind gleichbleibend zu AS. Der Verdunstungsfaktor mit ρ = 0.1 ist wesentlich geringer als bei AS, da die hauptsächliche stagnationsverhindernde Verwitterung bereits bei jedem Knotenübergang stattfindet. Die Anzahl der Ameisen ist konstant bei m = 10 und bleibt damit unabhängig von der Komplexität des Graphen. Die Pheromoninitialisierung fällt mit τ0 = 1 n·Q gegenüber AS sehr viel niedriger aus, da extreme Pheromonwerte sehr viel unwahrscheinlicher auftreten und somit auch neue Kanten jederzeit ausreichend Beachtung finden. 2.2.2.1 Konstruktion der Touren Im ACS besteht bei jeder Übergangsentscheidung eine parametrisierte Wahrscheinlichkeit q0 (0.0 ≤ q0 ≤ 1.0), dass zu dem Knoten j mit der höchsten Übergangswahrscheinlichkeit ohne ein Hinzuziehen einer Zufallskomponente gewechselt wird. Andernfalls wird der aus AS bekannte gewichtete Zufallsmechanismus (J) gemäß Gleichung 2.1 zur gewichteten Auswahl eines Nachfolgeknoten j angewendet (siehe Gleichung 2.5). n o α β argmaxl∈T , q ≤ q0 ; / ik [τi,l ] · [ηi,l ] j= J , ansonsten (2.5) 2. Grundlagen 17 Der Zufallswert q (0.0 ≤ q ≤ 1.0 ) entscheidet hierbei, welche Art von Übergang durchgeführt wird. Über den Parameter q0 kann nun gesteuert werden, ob die Ameisen sich im Gebiet der erlernten Route orientieren (großes q0 ) oder nach neuen Wegen suchen (kleines q0 ) sollen. Dorigo empfiehlt für q0 = 0.9, das heißt statistisch wird zu 90% der höchst bewertete Knotenübergang direkt gewählt. 2.2.2.2 Lokale Aktualisierung der Pheromonpfade Einer der wesentlichsten Unterschiede zwischen AS und ACS ist, dass die Pheromonpfade bereits während jedem Ameisenlauf aktualisiert werden. Bei jedem Knotenübergang wird die auf der Kante anliegende Pheromonmenge um einen Faktor basierend auf dem Parameter ξ reduziert (siehe Gleichung 2.6). Die Pheromoninformationen sind somit während des Ameisenlaufs einer Iteration nicht statisch. τi,j = (1 − ξ)τi,j + ξ · τ0 (2.6) Für ξ empfiehlt Dorigo&Stützle einen Wert nahe 0.1. 2.2.2.3 Globale Aktualisierung der Pheromonpfade Im Gegensatz zu AS werden bei ACS im Anschluss aller Tourkonstruktionen in einer Iteration nur jene Pheromonwerte auf Kanten verändert, die sich in der Route der besten Ameisenlösung befinden (siehe [DS04], Seite 77). Dies bezieht sich sowohl auf die Verwitterung der Spuren, als auch für die Neubelegung. Ansonsten gelten dieselben Regeln wie unter Abschnitt 2.2.1.2 beschrieben. 2.2.2.4 Algorithmus Die Unterschiede im ACS Algorithmus liegen in der Ameisenschleife (Listing 2.2, Zeile 9ff) und der an jeder Iteration anschließenden Aktualisierung der Pheromone (Listing 2.2, Zeile 30ff). 2. Grundlagen 18 Bei jedem Knotenübergang entscheidet die künstliche Ameise zufällig von neuem, ob sie erlerntes Wissen nutzt (q ≤ q0 ) oder auch neue Wege in Betracht zieht (q > q0 ). In einer Iteration wird jedoch nicht jede gefundene Ameisentour T k gespeichert, sondern nur eine verbessernde bisher beste Lösung T + . Die Pheromone auf den Kanten der besten Tour T + werden am Ende der Iteration aktualisiert. Alle Pheromone auf Kanten, die sich nicht in der besten Tour befinden, bleiben unberührt. Dagegen reduziert jede Ameise bei jedem Knotenübergang die auf der Kante abgelegte Pheromonmenge τi,j . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 //Initialisierung Foreach Kante τi,j = τ0 End Foreach T+ = ∅ L+ = ∞ //Iterationsschleife For t = 1 To tmax //Ameisenschleife For k = 1 To m T =∅ L=0 //Tourkonstruktionsschleife While i Not Destination If( q ≤ q0 ) Wähle nächsten Knoten Abschnitt 2.2.2.1 Else Wähle nächsten Knoten 2.2.2.1 End If Aktualisiere Pheromon τi,j 2.2.2.2 T ⇐j L = L + W eighti,j i=j End While If L+ > L L+ = L T+ = T End If End For //Pheromonaktualisierung Aktualisiere Pheromone τ für T + End For j mit höchster Wahrscheinlichkeit gemäß j mit gewichtetem Zufall gemäß Abschnitt auf genutzter Kante gemäß Abschnitt gemäß Abschnitt 2.2.2.3 Listing 2.2: Pseudocode des ACS Algorithmus 2. Grundlagen 2.2.3 19 Weitere ACO Algorithmen Im folgenden Abschnitt sollen ACO Algorithmen vorgestellt werden, die das AS erweitern. Die Modifikationen verringern das Risiko einer Stagnation und sollen dazu beitragen, bessere Optimierungslösungen zu finden. Die nachfolgende Auswahl aus der unbestimmt großen Anzahl von Variationen begrenzt sich auf solche, welche für die Problemstellung der Suche nach dem kürzesten Weg in einem Straßengraphen am meisten geeignet erscheint. 2.2.3.1 Elitist Ant System Algorithmus Bei dem Elitist Ant System (EAS) geht man davon aus, dass es einige Ameisen k Elitist gibt, die nichts weiter tun, als die Pheromonspur der bisher besten Route T + abzulaufen und diese mit der entsprechenden Pheromonmenge ∆τ + zu verstärken. Dorigo et al. weisen nach, dass auf dieser Modifikation bessere Touren in weniger Iterationen als in AS gefunden werden können (siehe [DMC91], [Dor92], [DG96]). Insgesamt ist der Algorithmus im Wesentlichen identisch zu AS (siehe Abschnitt 2.2.1). Nur die Aktualisierung der Pheromone unterscheidet sich hinsichtlich der Menge der neu verlegten Pheromone. Hier werden zusätzlich noch Pheromone auf die Kanten der besten bisher gefundenen Tour mit entsprechend hoher Wertung gelegt (siehe Gleichung 2.7). τi,j = τi,j + m X + k ∆τi,j (t) + k Elitist · ∆τi,j (2.7) k=1 Dorigo & Stützle empfehlen beim EAS für die Anzahl elitärer Ameisen k Elitist die Anzahl von Knoten im Graphen und abweichend zum AS eine Pheromoninitialisierung τ0 von kElitist +m , ρ·Q also die Anzahl von elitären und herkömmlichen Ameisen im Verhältnis zum Produkt aus Verdunstungsfaktor mit kürzester Entfernung zwischen Start- und Zielknoten (siehe [DS04], Seite 71). 2. Grundlagen 2.2.3.2 20 Rank-Based Ant System Algorithmus Eine zusätzliche Erweiterung von AS stellen Bullnheimer et al. als Rank-Based Ant System (ASrank ) vor (siehe [BHS97]). Sie sortieren alle Tourlösungen nach Ergebnisqualität (r) und erlauben nur den w besten Lösungen die Ablage von Pheromonen. Die abgelegten Pheromonmengen werden absteigend nach ihrer Qualität mit einem Rangfaktor w − r multipliziert. Mit dem höchsten Rangfaktor wird die Pheromonspur der optimierten Tour T + verstärkt (siehe Gleichung 2.8). τi,j = τi,j + w−1 X + r (w − r) · ∆τi,j + w∆τi,j (2.8) r=1 Bullnheimer et al. fanden mit ASrank im Experiment deutlich bessere Lösungen als mit AS und immer noch geringfügig bessere Ergebnisse als mit EAS (siehe [BHS97]). Dorigo & Stützle empfehlen für den ASrank folgende Parametrisierung (siehe [DS04], S. 71). Die Gewichtungsfaktoren α, β und die Anzahl der Ameisen m sind gleichbleibend zu AS. Der Verdunstungsfaktor für Pheromone ρ liegt bei 0.1 und die Pheromoninitialisierung bei 0.5·r·(r−1) . ρ·Q Die empfohlene Anzahl der pheromonablegenden Ameisen w liegt konstant bei sechs. 2.2.3.3 MAX − MIN Ant System Algorithmus Das MAX − MIN Ant System (MMAS) wurde erstmals 1997 von Stützle&Hoos vorgestellt [SH97]. Es kennzeichnet sich durch vier Änderungen gegenüber dem AS aus. Vergleichbar zu ACS verstärkt nur die bisher beste Ameisentour die Pheromonspur. Als zweite Modifikation wirkt eine Ober- und Untergrenze [τmin , τmax ] der Pheromonmenge auf Kanten einer Stagnation in einem lokalen Minimum entgegen. Drittens wird der Forschungsdrang der künstlichen Ameisen zu Beginn des Algorithmus verstärkt, indem die Pheromoninitialisierung τ0 der Obergrenze τmax entspricht. Die vierte Änderung entspricht der Reinitialisierung des Graphen bei Stagnation. Hierzu wird die Anzahl an Iterationen seit Finden einer neuen besseren Route überwacht. Wird in einem definierten Iterationsintervall keine bessere Lösung gefunden, geht der Algorithmus von einer Stagnation aus. Stützle&Dorigo empfehlen für die Verdunstung den sehr kleinen Parameterwert von ρ = 0.02. Für die Initialisierung τ0 bzw. Obergrenze τmax 2. Grundlagen einen Wert von 21 1 ρ·Q bzw. 1 ρ·L+ und als Untergrenze τmin = τmax · √ (1− n 0.05) , avg−1 wobei avg die durchschnittliche Anzahl an wegführenden Kanten von einem Knoten sind. Das heißt τmin geht bei zunehmender Zahl von Knoten und Komplexität gegen 0. 2.2.4 Gegenüberstellung Die Eigenschaften der vorgestellten Ameisenalgorithmen sind in Tabelle 2.1 gegenübergestellt. Die Spalte mit der Bezeichung Gefahr für Stagnation beschreibt die Wahrscheinlichkeit des Eintretens einer Stagnation in einem lokalen Minimum. Verhalten bei Stagnation sagt aus, wie der Algorithmus sich selbstständig aus einer eingetretenen Stagnation wieder befreit. Die Komplexität bei Pheromonablage beschreibt den entstehenden Aufwand bei der Neubelegung mit Pheromonen im Graphen nach jeder Iteration. Algorithmus Gefahr für Verhalten bei Komplexität bei Pheromonablage Stagnation Stagnation AS sehr hoch keine Reaktion alle Touren werden berücksichtigt ACS niedrig keine Reaktion nur die global beste Tour wird berücksichtigt EAS hoch keine Reaktion alle Touren zzgl. beste Tour wird berücksichtigt ASrank hoch keine Reaktion nur die sechs besten Touren werden berücksichtigt MMAS mittel Pheromonwerte werden nur die global beste Tour wird zurückgesetzt berücksichtigt Tabelle 2.1: Gegenüberstellung verschiedener ACO Algorithmen 2. Grundlagen 2.3 22 Routingverfahren Die Aufgabe eines Routingverfahrens liegt darin, unter definierten Kriterien die günstigste Route zwischen einer Start- und einer Zieladresse zu ermitteln. Hierfür greift das Routingverfahren auf digitalisierte Straßenkarten zurück, um eine Lösung mit Hilfe von einem algorithmischen Verfahren zur Bestimmung kürzester Wege zu bestimmen. Aufgrund der großen Anzahl an geographischen Informationen in vorliegenden Straßenkarten ist eine unmittelbare Anwendung solcher Algorithmen jedoch nicht effizient möglich. Daher müssen die topografischen Objekte strategisch aufbereitet werden. 2.3.1 Kartendaten im GDF Format Zur Speicherung digitaler Kartendaten entwickelte die Fahrzeugnavigationsindustrie das Austauschformat Geographic Data File. Es stellt ein konzeptionelles und logisches Datenmodell für Intelligent Transportation Systems (ITS) dar. Es speichert die vektorisierten Kartendaten in einem nicht-binären Dateiformat und wird unter der Norm ISO/DIS 14825:2004 beschrieben (siehe [ISO04]). Das Format hält auch Möglichkeiten für herstellerspezifische Erweiterungen offen. Der Aufbau erfolgt in drei Ebenen für die Topologien (Level 0) und ihrer Beschreibung (Level 1 und 2). Abbildung 2.2 stellt vereinfacht die ersten beiden Ebenen dar. In rot sind hierbei einige Primitiven der Ebene 0 und in blau einige Eigenschaften und Attribute der Ebene 1 dargestellt. Eine komplexe Eigenschaft der Ebene 2 könnte die Stadt Darmstadt sein, aus der der in der Abbildung gezeigte Ausschnitt stammt. Des Weiteren können mit Relationen im GDF Beziehungen zwischen zwei Features beschrieben werden. Hierdurch wird es zum Beispiel möglich, erlaubte Abbiegemanöver oder die Zugehörigkeit von Straßen zu Ortschaften zu modellieren. Da das GDF-Format die Kartendaten in einem Textformat speichert, sind sie sehr umfangreich vom Speicherplatzbedarf. Als Beispiel beträgt dieser für das Deutsche Bundesgebiet cirka 13 GB (siehe [Men07], S. 15). Aus diesem Grund ist eine Abstraktion, Partitionierung und Umwandlung in ein Binärformat für die eigentliche Anwendung praktisch unausweichlich. 2. Grundlagen 23 Abbildung 2.2: GDF Informationen aus Level 0 und 1 Strategien hierzu werden in Abschnitt 2.3.1.4 und das vorliegende binäre Kartenformat in Abschnitt 2.3.1.5 eingeführt. Im Nachfolgenden wird eine kurze Einführung in die zur Routenerzeugung notwendigen Informationen aus den GDF Ebenen gegeben. Eine ausführliche Beschreibung in das GDF Format befindet sich in [Men07], S. 14ff. 2.3.1.1 Level 0: Topology Auf der Topologieebene befinden sich die Geometrien der Karte. Dazu gehören Punkte bzw. Knoten in der nullten, Kanten in der ersten und Flächen in der zweiten Dimension. Kanten bilden sich hierbei aus Verbindungen zwischen zwei Knoten. Sogenannte Shapepoints entlang der Linie ermöglichen hierbei eine Kurvengestaltung. Flächen setzen sich aus beliebig vielen, mindestens jedoch drei Kanten zusammen. Keine der Geometrien lassen auf dieser Ebene einen Rückschluss zur Realität zu. Ein Knoten kann zum Beispiel eine Straßenkreuzung, aber auch ein Ort von Interesse (engl. Point of Interest (POI)) sein, eine Kante kann ein Teil einer Straße, einen Fluss oder eine Eisenbahnlinie und eine Fläche einen Gebäudekomplex, einen Wald oder einen See repräsentieren. 2. Grundlagen 24 Ein Knoten besitzt eine geographische Koordinate, ausgedrückt durch einen x-Wert (geographische Länge), einen y-Wert (geographische Breite) und einen z-Wert (Höhe). Die Höhe stellt hierbei jedoch nur eine Ordinalzahl dar für Situationen, wie zum Beispiel zwei sich kreuzende Kanten. In der Regel ist ihr Wert 0. 2.3.1.2 Level 1: Features Mit Hilfe von Eigenschaften (Features) werden die Zusammenhänge zwischen der Topologie aus Ebene 0 und der Realität hergestellt. Hierzu ist jedes Level 0 Element einer von vier Kategorien auf Level 1 zugeordnet. Diese vier Kategorien sind: • Point Feature Objekte ohne geographische Größe Verknüpft mit einem Knoten aus Level 0 z.B. POI oder Kreuzung • Line Feature Lineare Objekte Verknüpft mit einer oder mehreren Kanten aus Level 0 z.B. Straße, Eisenbahnlinie, Fluss oder Grenze • Area Feature Flächige Objekte Verknüpft mit keiner, einer oder mehreren Flächen aus Level 0 z.B. Gebäude, Wald oder See • Complex Feature Objekte von Level 1 oder 2 z.B. Stadt oder Bundesland Ein vierstelliger Feature Code definiert, um welche Art von Objekt es sich handelt. So ist zum Beispiel ein Objekt aus der Kategorie Line Feature mit dem Feature Code 4110 eine Straße und 2. Grundlagen 25 ein Point Feature mit dem Feature Code 4120 eine Kreuzung. Feature Codes von 9000-9999 sind für herstellerspezifische Features. Eine vollständige Liste aller Feature Codes findet sich unter [Nav06]. Für die Routenerzeugung sind insbesondere die Feature Codes 4110 (Straße) und 4210 (Kreuzung) von Bedeutung. Weitere Informationen zu einem Feature können mit Attributen definiert werden. Attribute sind einem oder mehreren Feature Codes zugeordnet. Zum Beispiel kann das Attribut Official Name sowohl von einer Straße, als auch einem Gebäude oder POI genutzt werden. Andere Attribute, wie zum Beispiel Average Speed, sind hingegen nicht allgemeingültig sondern ergeben nur im Zusammenhang mit Straßen einen Sinn. In [Men07] werden die in Tabelle 2.2 genannten Attribute für eine Routenerzeugung als notwendig definiert. Attribute Name Type Code Beschreibung Official Name ON Offizieller Name der Eigenschaft (z.B. Straßenname) Functional Road Class FC Straßenklasse 0 = Hauptstraße 1 = Straße erster Klasse 2 = Straße zweiter Klasse 3 = Straße dritter Klasse 4 = Straße vierter Klasse (Nebenstraße) Direction of Traffic DF Erlaubte Durchfahrtsrichtung(en) 1 = Beide Richtungen 2 = Durchfahrt nur in positiver Richtung 3 = Durchfahrt nur in negativer Richtung 4 = Durchfahrt in keiner Richtung möglich Average Speed AS Gefahrene Durchschnittsgeschwindigkeiten in km h Tabelle 2.2: Attribute auf Level 1 mit Bezug zur Routenerzeugung (siehe [Men07], Seite 20) 2. Grundlagen 2.3.1.3 26 Level 2: Complex Features Complex Features dienen dazu, aus mehreren Level 1 bzw. Level 2 Features komplexe Konstrukte zu vereinfachen. [Men07] führt als Beispiel die Vereinfachung des Straßennetzes einer Stadt für eine städteübergreifende Navigation an, bei der die genauen innerstädtischen Details bei der Erzeugung der Route nicht notwendig sind, um ein Routing durchzuführen. Auch Complex Features können mit Attributen versehen werden. 2.3.1.4 Aufteilung und Organisation der Karte Das GDF Format eignet sich aufgrund seiner Speichergröße und Struktur nicht für den unmittelbaren Einsatz in einer Navigationsanwendung. Selbst wenn man die Meta- und nicht relevanten Karteninformationen außen vorlässt, bleibt die Datenmenge zu groß für die Nutzung im Arbeitsspeicher. [Men07] wendet hierfür zum Einen eine physikalische Trennung auf dem Datenträger und zum Anderen eine logische Trennung in Aufgabenbereiche der Karte. Zur Ressourcenoptimierung ist die Gesamtkarte in Kacheln aufgeteilt, welche wiederum in den Blättern eines Quadtrees organisiert werden. Während der Routenerzeugung und der -darstellung werden nur die verwendeten Kartenpartitionen im Speicher gehalten. Die Ausdehnung eines Kachelblattes orientiert sich hierbei an der Anzahl der Knoten, die sich in ihm befinden. Als Obergrenze sind hierbei 1000 Knoten definiert. Des Weiteren ist die Länge und Breite eines Rechteckes auf 65536 (= 216 )m festgelegt (siehe [Men07], S. 36). Für die logische Trennung werden die Kartendaten unterteilt in den Carto layer und den Road Network Layer. Für die Routenerzeugung ist ausschließlich der Road Network Layer notwendig. Dieser enthält das gesamte Straßennetzwerk mit allen notwendigen Informationen. Der Carto layer enthält ergänzende graphische Kartenelemente, wie zum Beispiel Eisenbahnlinien, Wasserflächen und Grünanlagen. In Abbildung 2.3 ist auf der linken Seite Darmstadt mit den 13 Kacheln und auf der rechten Seite die Quadtree Struktur, in der diese organisiert sind, symbolisch dargestellt. 2. Grundlagen 27 Abbildung 2.3: Darmstadt aufgeteilt und organisiert in einem Quadtree ([Men07], Seite 39) 2.3.1.5 Kartendaten in der Navigationskomponente Die in dieser Arbeit verwendete Navigationskomponente besitzt bereits ein aus GDF Daten erzeugtes binäres Kartenformat gemäß Abschnitt 2.3.1.4 und die dazu gehörende Infrastruktur zur Umwandlung und zum Zugriff (siehe [Men07], Seite 31ff). Für den Zugriff auf die Straßennetzinformationen in der Navigationskomponente sind insbesondere die in der Abbildung 2.4 ersichtlichen Klassen zuständig. Die Datenbankklasse CDatabase führt den physikalischen Zugriff auf den binär gespeicherten Road Network Layer aus und liefert Knoten (CDBNodeRef) und Kanten (CDBEdgeRef) anhand ihrer numerischen ID zurück. Kanten sind generell Straßen, die in einer, beiden oder keiner Richtung befahren werden können. Weiterführend sind Informationen über die Straßenlänge und Fahrdauer der Straßenklasse und befahrbaren Durchschnittsgeschwindigkeit über Akzessoren abrufbar. Erlaubte Fahrrichtungen, Straßenklasse und Durchschnittsgeschwindigkeiten sind hierbei konform zu den Attributen aus dem GDF Format (siehe Tabelle 2.2). Bei den Knoten handelt es sich um Verbindungen zwischen zwei oder mehr Kanten bzw. um Endelemente einer Kante. Für jeden Knoten können die Anzahl und die IDs der angebundenen Kanten bestimmt werden. Des Weiteren kann zu jedem Knoten die geographische Position (DBPoint) bestimmt werden. Auf dieser Abstraktionsschicht existiert somit ein gewichteter und gerichteter Graph als Inzidenzliste. Die Gewichtung kann nach Anforderung der Straßenlänge oder der Fahrdauer für die Straße entsprechen. Gerichtet wird der Graph durch die Angabe der erlaubten Durchfahrtsrichtungen. Eine positive erlaubte Fahrrichtung bedeutet die Kante ist vom Knoten From zum Knoten To befahrbar, eine negativ erlaubte Fahrrichtung umgekehrt. 2. Grundlagen 28 Abbildung 2.4: API für Zugriff auf Straßennetzinformationen 2.3.2 Konventionelle Algorithmen In diesem Abschnitt sollen die zwei bekanntesten Algorithmen zur Bestimmung kürzester Wege in einem Graphen vorgestellt werden. Beide werden später für Vergleichsmessungen gegen die ACO Algorithmen herangezogen. Zuletzt wird ein Verfahren zur Bestimmung des kürzesten Weges vorgestellt, welches konkret auf die Anforderungen bei der Routenerzeugung eingeht. 2.3.2.1 Dijkstra Algorithmus Der Dijkstra Algorithmus ist ein uninformierter Greedy Algorithmus zur Bestimmung des kürzesten Weges in einem Graphen zwischen zwei Knoten mit ausschließlich positiv gewichteten Kanten. Er wurde 1959 von Edsger W. Dijkstra in [Dij59] vorgestellt. Sein Konzept basiert darauf, dass für alle Knoten im Graphen die kürzeste Entfernung vom Startknoten und den dafür notwendigen Vorgängerknoten in aufsteigender Entfernungsreihenfolge bestimmt wird. Sobald der Zielknoten untersucht wurde bricht der Algorithmus ab. Im Detail besitzt der Algorithmus eine Prioritätswarteschlage Qopen , in der alle Knoten n des Graphen G aufsteigend nach ihrer Entfernung vom Startknoten nstart liegen und eine Liste Qclosed für bewertete Knoten. Unbewertete Knoten haben eine Entfernung von ∞. Jeder Knoten speichert im Weiteren seinen Vorgängerknoten nprev . Zum Start des Algorith- 2. Grundlagen 29 mus befindet sich nstart mit einer Entfernung von 0 am Anfang von Qopen . nstart wird aus Qopen entnommen und als Knoten i untersucht. Hierfür werden alle Knoten j, die über eine Kante (i, j) mit Knoten i verbunden sind, bewertet, indem die Entfernung W eighti,nstart mit dem Kantengewicht W eighti,j addiert wird. Sollte die bisher gefundene Entfernung für W eightj,nstart größer sein als W eighti,nstart + W eighti,j , so wird diese als neue Entfernung angenommen, i als Vorgängerknoten jprev für j gesetzt und der Knoten j in Qopen wieder eingegliedert. Abschließend wird i in Qclosed gelegt. Das Verfahren wird mit dem nächsten Knoten aus Qopen wiederholt. Sobald der Zielknoten aus Qopen entnommen wurde und in Qclosed abgelegt, wurde ist der Algorithmus beendet. Zuletzt kann anhand der Knoten in Qclosed vom Zielknoten ndest aus der Weg über die Vorgängerknoten zu nstart rücktraversiert werden. Nachfolgend wird in Listing 2.3 der Algorithmus in Pseudocode dargestellt. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //Initialisierung Qopen ⇐ G Qclosed = ∅ //Bewertung While ndest Not In Qclosed i = Pop( Qopen ) Foreach j In i If W eightj,nstart > W eighti,nstart + W eighti,j W eightj,nstart = W eighti,nstart + W eighti,j jprev = i Qopen ⇐ j End If End Foreach End While //Ruecktraversierung T ⇐ ndest While T f irst Not nstart T f irst ⇒ n Shift nprev In T End While Listing 2.3: Pseudocode des Dijkstra Algorithmus Ein wesentlicher Aspekt bei der Routenerzeugung ist die Zeitkomplexität eines Algorithmus. [Men07] führt diese auf Seite 61 auf. Die Zeitkomplexität hängt beim Dijkstra Algorithmus 2. Grundlagen 30 entscheidend von zwei Faktoren ab. Zum Einen wie viele Schleifeniterationen notwendig sind bis der Zielknoten aus Qopen in Qclosed überführt wird und zum Zweiten die Komplexität der Iterationschleife. Das Zweite ist recht exakt bestimmbar, während das Erste, die Anzahl der Schleifendurchläufe, von der Knotendichte im Radius zwischen Start- und Zielknoten abhängt. In jeder Iteration wird der Knoten mit der kleinsten Entfernung zum Startknoten min nd aus Qopen entnommen. Hierbei hängt die Komplexität von der Datenstruktur ab. Im Allgemeinen wird eine Prioritätswarteschlange verwendet, bei der sich das kleinste Element stets an erster Stelle befindet und O(1) beträgt. Anschließend werden alle Nachbarknoten von min nd in Qopen untersucht, was einer linearen Suche entspricht, wobei Qopen sich stets verkleinert und somit eine maximale Komplexität von O( n2 ) mit sich bringt. Das einsortierte Speichern des Knoten in Qopen erfordert ebenfalls eine maximale Komplexität gleich der derzeit in Qopen befindlichen Knoten, also im Mittel O( n2 ). Da in jeder Iteration ein Knoten n bis zur Entnahme des Zielknotens aus Qopen entnommen wird, ist ihre maximale Komplexität gleich der Anzahl an Knoten im Graphen. Die folgende Gleichung 2.9 zeigt die resultierende zeitliche Gesamtkomplexität von Dijsktra. 2·n n· 1+ = n + n2 , d.h.O n2 2 (2.9) Das hauptsächliche Problem des Dijkstra Algorithmus liegt an seiner radialen Ausdehnung. Für die Bestimmung des kürzesten Weges muss der gesamte minimale Spannbaum im Radius zwischen dem Start- und Zielknoten bestimmt werden (siehe Abbildung 2.5). Von Vorteil ist seine exakte Lösungsgenauigkeit. Eine veränderte Alternative des Dijkstra Algorithmus ist die bidirektionale Suche ([SS05]). Bei ihr wird der Graph vom Startknoten vorwärts- und vom Zielknoten aus entgegengerichtet bis zu einem gemeinsamen Schnittpunkt untersucht. Empirische Untersuchungen weisen hier einen Vorteil gegenüber dem unidirektionalen Dijkstra Algorithmus nach (siehe [Möh99]). 2. Grundlagen 31 Abbildung 2.5: Radiale Ausdehnung des Dijkstra Algorithmus (Schema) 2.3.2.2 A* Algorithmus Der A* Algorithmus gehört zu den informierten Greedy Algorithmen und ist wie der Dijkstra Algorithmus in der Lage, kürzeste Wege in einem Graphen zu bestimmen. Er wurde 1968 von Hart et. al in [HNR68] vorgestellt. Das Konzept des A* Algorithmus basiert auf dem Dijkstra Algorithmus. Jedoch nimmt er als Reihenfolgekriterium nicht die zurückgelegten Wegstrecke vom Startknoten, sondern die geschätzte Gesamtwegstrecke zwischen Start- und Ziel bei entsprechendem Knotenübergang. Auch der A* Algorithmus besitzt eine Prioriätswarteschlange Qopen zum Speichern noch zu untersuchender Knoten und eine Liste Qclosed zum Speichern der abgeschlossen untersuchten Knoten. Jeder Knoten speichert zusätzlich zur bisher zurückgelegten Entfernung W eighti,nstart eine heuristische Annahme zur verbleibenden Entfernung bis zum Zielknoten W eightheuristic n,ndest . Die heuristische Annahme darf die tatsächliche Entfernung nicht übersteigen. Bei der Routenerzeugung wählt man hierzu zum Beispiel die Distanz einer direkten Verbindung zwischen Start- und Zielknoten. Qopen liefert in jeder Iteration den Knoten i mit der derzeit kleinsten Gesamtwegstrecke D (siehe Gleichung 2.10). Daraufhin werden alle Nachbarknoten j, die sich in Qopen befinden, bewertet. Sollte das derzeitige Dj größer sein als das neue über i erreichbare, wird der Knoten aktualisiert und wieder in Qopen hinzugefügt. Abschließend wird i 2. Grundlagen 32 in Qclosed hinzugefügt. Auch im A* Algorithmus endet der Algorithmus, sobald ndest zu Qclosed verschoben wurde. Die eigentliche Route kann über die gespeicherten Vorgängerknoten nprev vom Zielknoten rücktraversiert werden. D = W eightheuristic n,ndest + W eighti,nstart (2.10) Abbildung 2.6: Zielgerichtete Ausdehnung des A* Algorithmus (Schema) Die Zeitkomplexität des A* Algorithmus ist identisch zu Dijkstra Algorithmus. Auch sie ist abhängig von der Anzahl an Knoten n. Jedoch ist die Ausdehnung zielgerichtet (siehe Abbildung 2.6) und nicht radial wie beim Dijkstra Algorithmus. Die endgültige Zeitkomplexität hängt alleinig von der Struktur des Graphen ab. Abbildung 2.7 verdeutlicht dies Anhand zweier Graphen. Der linke Graph bietet einen zielgerichteten Weg vom Start- zum Zielknoten, hier ist der A* Algorithmus deutlich effizienter als der Dijkstra Algorithmus. Der rechte Graph hingegen verlangt die Erkundung von Umwegen entgegen der Zielrichtung, untersucht entsprechend mehr Knoten und ist vergleichbar effizient mit dem Dijkstra Algorithmus. Abbildung 2.7: Vergleich zweier Graphen untersucht mit A* Algorithmus Der A* Algorithmus ist die Basis vieler Routenerzeugungsanwendungen. Eine Reihe von Erweiterungen optimieren nochmals die Effizienz entsprechend den Anforderungen. So kann zum Beispiel die bidirektionale Suche auch mit dem A* Algorithmus durchgeführt werden. Der Dynamische A* Algorithmus bzw. D* Algorithmus ermöglicht eine flexible Reaktion auf Kostenänderungen auf Kanten und Änderungen in der Graphenstruktur (siehe [Ste94]). Eine Reihe weiterer verwandter Algorithmen verbessern die Speichereffizienz auf Kosten der Laufzeit, indem sie schlechte Knoten vergessen (siehe [WPA]). 2. Grundlagen 2.3.2.3 33 Konventionelle Routenerzeugung in Straßennetzen Bei den Strategien im Kontext der Routenerzeugung in kommerziellen Navigationssystemen halten sich die Hersteller sehr bedeckt. Dennoch kann davon ausgegangen werden, dass die Verfahren vom Grundsatz alle dem nachfolgenden Schema grundlegend folgen. Aus dem Kartenmaterial werden mehrere Straßengraphen unterschiedlicher Straßenkategorien (siehe [SS05], Seite 8) und regionaler Zusammengehörigkeit erzeugt (siehe [MSS+ 05]). Innerhalb der Partitionen wird der minimale Spannbaum zwischen den Partitionsschnittstellen vorberechnet, um den Aufwand für den interpartitionalen Routenerzeugungsprozess in den Vorbereitungsprozess zu verlagern (siehe [SS05], Seite 8). Bei der Routenerzeugung kommen zumeist informierte bidirektionale Suchalgorithmen zum Einsatz. Es findet eine vollständige Suche im lokalen Bereich der Start- und Zieladresse statt, um in ein Straßennetz einer höheren Kategorie mit dünnerem Straßennetz zu gelangen. Die weitere Suche erfolgt nun nur noch im höher kategorisierten Straßengraphen. Das Verfahren der lokalen Suche nach einem höher kategorisierten Straßennetz iteriert, bis beide Algorithmeninstanzen zusammentreffen ([SS05], Seite 8). Abbildung 2.8 zeigt in der untersten Schicht die lokale Suche beider Instanzen im Start- und Zieladressenbereich nach einer höheren Straßennetzkategorie. In der darauffolgenden Schicht wird diese höhere Kategorie durchsucht, bis wieder eine höhere Kategorie erreicht wird und die Komponenten der bidirektionale Suche aufeinander stoßen. Abbildung 2.8: Kommerzieller Ansatz der Routenerzeugung (Schema) 2. Grundlagen 34 Dabei wird ein empfindlicher Kompromiss getroffen zwischen der Geschwindigkeit der Routenerzeugung und der Genauigkeit. Denn durch das Streben nach höherwertigen Straßennetzen wird eine Suche nach einem kürzeren Weg im gleich- oder niederkategorisierten Graphen ausgeschlossen ([SS05], Seite 8). 2.4 Automotive Embedded Systeme Unter einem Automotive Embedded System verstehen Wietzke & Tran ein in ein Kraftfahrzeug integriertes System aus Hard- und Software ([WT05]). Im Vordergrund steht in der Arbeit das Infotainmentsystem, welches mit seinen Komponenten für die Information und Unterhaltung der Fahrzeuginsassen zuständig ist. Die Hauptkomponente ist die Headunit mit Ein- und Ausgabegeräten (Human Machine Interface (HMI)). Weitere Komponenten, wie zum Beispiel Telefon-, Audio-, GPS-Empfangsgeräte, sind angeschlossen (Abbildung 2.9, blau) und kommunizieren über ein Echtzeitnetzwerk mit der Headunit (Abbildung 2.9, rot). In der Headunit befinden sich auch die als Software realisierten logischen Geräte zur Repräsentation der Hardwaregeräte und der Dispatcher zur Nachrichtenverteilung zwischen den Softwarekomponenten in der Headunit. Logische Geräte, Dispatcher und weitere Softwarekomponenten sind als Bestandteile eines Frameworks realisiert (Abbildung 2.9, orange). Abbildung 2.9: Aufbau Embedded Automotive System 2. Grundlagen 35 In den nachfolgenden Abschnitten sollen die Bestandteile des exemplarisch verwendeten Infotainmentsystems einführend beschrieben werden. Zunächst geht der Abschnitt 2.4.1 auf die Softwarearchitektur des Frameworks ein, welches auf dem Infotainmentsystem zum Einsatz kommt. Anschließend wird in Abschnitt 2.4.2 die Navigationskomponente, für welche die Routenerzeugung entwickelt wird, eingeführt. 2.4.1 Framework Das verwendete Framework gemäß [WT05] folgt dem Paradigma des Komponentenmodells. Jede Einzelkomponente erfüllt eine definierte Funktionalität und bietet Schnittstellen nach außen (siehe [WT05], Seite 279). Daraus resultieren Vorteile bei der Standardisierung der Komponentenkommunikation, der Schnittstellenspezifikation im Entwicklungsprozess und der Qualitätssicherung durch Wiederverwendung bewährter Softwareelemente. Die möglichen Funktionalitäten beschränken sich nicht nur auf die Implementierung von logischen Geräten, sondern können auch solche ohne weitere Hardware darstellen (z.B. Navigation). Jede Komponente (Abbildung 2.10, rot) besitzt eine von einem gemeinsamen Interface geerbte Nebenläufigkeit. Das Framework besitzt einige Basiskomponenten mit Verwaltungsaufgaben und zur Sicherstellung von Grundfunktionalitäten. Diese sind in Abbildung 2.10 zusätzlich rot schraffiert dargestellt. Die Admin Komponente überwacht und verwaltet die Zustände der Komponenten. Zur Überwachung steht ihr ein Watchdog zur Verfügung. Die System Dispatcher Komponente verwaltet die Kommunikation zwischen den Komponenten und mit dem Echtzeitnetzwerk. Eine Human Machine Interface (HMI) Komponente verwaltet die Darstellung auf dem graphischen Ausgabegerät und die Benutzereingaben. Hierzu besitzt jede Komponente mit graphischer Oberfläche ein Subsystem in der HMI Komponente. In Shared Memory, in Abbildung 2.10 grün schraffiert dargestellt, wird für jede Komponente ein Kontext angelegt. Über diesen kann eine Komponente mit anderen Objekte austauschen. Des Weiteren dient sie zur Realisierung der Watchdogfunktionalität. 2. Grundlagen 36 Abbildung 2.10: Komponenten des Framework in der Headunit 2.4.2 Navigationskomponente [Men07] beschreibt die Entwicklung und Integration einer Navigationskomponente in das vorgestellte Framework. Das hieraus resultierende Navigationssystem wird für die in dieser Arbeit beschriebene Routenerzeugung verwendet. Die Hauptelemente des Navigationssystems sind in der Komponente in folgende Blöcke aufgeteilt. • Database Zugriff auf Kartenmaterial (siehe Abschnitt 2.3.1.5) Bestandteil des HMI Subsystems Beschreibung [Men07], Seite 72 • Map Control Anzeige der Karte auf dem HMI Bestandteil des HMI Subsystems Beschreibung [Men07], Seite 76 • Routing Erzeugung der Route zwischen Start- und Zieladresse Bestandteil des HMI Subsystems Beschreibung [Men07], Seite 78 • Address Search Eingabe und -validierung von Start- und Zieladresse Bestandteil der Navigationskomponente Beschreibung [Men07], Seite 80 2. Grundlagen 37 In der Routenerzeugung wird die Database und das Routing als Schnittstellen verwendet. Die Database Schnittstelle wurde in Abschnitt 2.3.1.5 beschrieben. Die Routing Schnittstellen stellen dabei die Verbindung zwischen der Navigationskomponente und der Routenerzeugung bereit. Die konkrete Integration der ACO Routenerzeugung in das Routing der Navigationskomponente wird in Abschnitt 4.6 beschrieben. Aktuell arbeitet eine Projektgruppe an der Verringerung der Kohäsion der Navigationskomponente, insbesondere innerhalb des HMI Subsystems (siehe [SRK08]). 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen Im nachfolgenden Kapitel werden die in der Arbeit entwickelten Modifikationen für die ACO zur Bestimmung kürzester Wege in einem Straßennetz vorgestellt. Die Definition der kürzesten Wege bezieht sich hierbei nicht auf die Länge des ermittelten Weges, sondern allgemeiner auf die Kosten in Hinblick auf die Optimierungsmaßeinheit. Prinzipiell können alle in Abschnitt 2.2 genannten Ameisenalgorithmen mit den Modifikationen erweitert werden. Wird auf einen modifizierten Algorithmus eingegangen, trägt dieser im nachfolgenden Text das Kürzel SP für Shortest Path. 3.1 Situation und ihre Anforderungen Vom Grundgedanken sind Ameisenalgorithmen sehr gut geeignet, um eine kombinatorische Problemstellung, wie die der Suche nach dem kürzesten Weg zu lösen. Jedoch besitzt der modellierende Graph eine Struktur, die der Performance des Algorithmus mehrere Probleme stellt. Zum Einen sind besiedelte Gebiete in der Regel blockweise aufgebaut. Das zugehörige Straßennetz ist meist an allen Blockkanten angeschlossen und an den Blockecken durch Kreuzungen 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 39 verbunden. Hierdurch ergibt sich ein hohes Aufkommen an Zyklen. Des Weiteren ist die Anzahl von weiterführenden Kanten an Knoten in einem Straßennetz meist gering im Verhältnis zu der Gesamtzahl an Knoten (siehe Abbildung 3.1, links). Diese beiden Eigenschaften in Kombination führen für Ameisen in einem herkömmlichen ACO Algorithmus zu einer hohen Abbruchwahrscheinlichkeit, da eine Ameise per Definition (siehe Abschnitt 2.2) einen Knoten kein zweites Mal besuchen darf (siehe Abbildung 3.1, rechts, Szenario in Grün). Ähnlich verhält es sich bei Sackgassen (siehe Abbildung 3.1, links, Szenario in Blau). Auch hier bricht eine herkömmliche künstliche Ameise aus gleichem Grund erfolglos ihre Wegesuche ab. Abbildung 3.1: Typische Struktur in einem Graphen eines Straßenmodells Eine weitere Schwierigkeit basiert auf den stark gemischten Längenverhältnissen von Kanten des Straßennetzes im vorliegenden Kartenmaterial. Insbesondere in komplexen Straßenabschnitten, wie zum Beispiel mehrspurige Kreuzungen oder Kreisverkehre, haben Längenangaben keine reale Bedeutung. Algorithmisch betrachtet ergeben sich allerdings wesentliche Probleme an Kanten, die quasi keine Länge besitzen. Da die Länge im Regelfall als lokale Information eine wichtige Entscheidungsgrundlage für Ameisenalgorithmen zur Kantenwahl darstellen, werden solche Kanten unberechtigt bevorzugt. Da sich die globalen Informationen aus der Wertung der lokalen Informationen herleiten, kann sich eine Stagnation des Algorithmus auf einem lokalen Minimum einstellen, da das Verhältnis zwischen der zielzuführenden und zielwegführenden 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 40 Kante stark differiert (siehe Abbildung 3.2). Die lokalen und globalen Informationen gemeinsam stellen somit kein Garant zur Optimierung bei der Routenerzeugung dar. Abbildung 3.2: Falscheinschätzung der lokalen Information In den ersten Iterationen eines Ameisenalgorithmus befinden sich keine bzw. wenige Erfahrungswerte im Graphen. Die Ameisen orientieren sich daher verstärkt an den lokalen Informationen der Kanten. Dies hat zur Folge, dass sich die Ameisen radial vom Startknoten aus in alle Richtungen ausbreiten. Für Ameisen, die sich vom Zielknoten entfernen, besteht allerdings auch eine geringere Wahrscheinlichkeit, dass sie eine kürzere Route finden als ihre Artgenossen, die sich auf den Zielknoten hinbewegen. Vielmehr brechen sie ab, weil sie in einen Zyklus oder am Kartenende in eine Sackgasse laufen. Das Auffahren auf eine hierarchisch höherwertig anzusehende Straße verspricht erfahrungsgemäß eine subjektiv bessere Route. Eine herkömmliche Ameise orientiert sich aber ausschließlich an lokalen und globalen Werten der nachfolgenden Kanten. Sie führt dabei keinen Vergleich zu Eigenschaften der vergangenen Kante aus. Ihre Betrachtung kann jedoch die Route positiv beeinflussen. 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 3.2 3.2.1 41 Initialisierung Pheromone Die Initialisierung der Pheromone auf den Kanten des Graphen erfolgt in den bisher vorgestellten Ameisenalgorithmen über eine Konstante τ0 . Ihre Zusammensetzung unterscheidet sich zwischen den ACO Algorithmen nur wenig. In jedem Fall, ausgenommen dem MMAS, strebt ihr Wert homogen für jede Kante gegen 0. Diese Strategie ist im Grundsatz legitim, allerdings unter der Voraussetzung, dass der Gesamtgraph zu Beginn des Algorithmus initialisiert wird. In anderen Fällen, wenn der Graph eine unbekannte Dimension besitzt und zu groß ist, um vollständig im Arbeitsspeicher gehalten zu werden, ist das Verfahren fehlerhaft. Bei der vorliegenden Kartendatenstruktur und ihrer Repräsentationsform liegt dieser Fall vor. Knoten und Kanten werden erst beim Betreten eines Nachbarknotens durch eine Ameise dem Algorithmus bekannt gemacht. Eine Initialisierung mit der konstanten Pheromonmenge τ0 kann hierdurch zu einer Überbewertung der Kante gegenüber in früheren Iterationen gefundenen Kanten führen, da diese bereits Verwitterungsvorgänge durchgeführt haben. Die folgerichtige Strategie beim Umgang mit τ0 wäre somit τ0 variabel zu halten und in jeder Iteration mit den anderen Pheromonspuren verwittern zu lassen. 3.2.2 Heuristischer Lösungswert Zur Bestimmung der neu abzulegenden Pheromonmenge wird das Verhältnis zwischen einer heuristisch bestimmte Optimallösung Q und der gefundenen Ameisenlösung herangezogen. Für die Einschätzung der Optimallösung kann bei der Routenerzeugung, vergleichbar zum A* Algorithmus, auf die Länge der Luftlinie zwischen Start- und Zielknoten zurückgegriffen werden. Diese lässt sich exakt über die Koordinaten der Knoten mit Hilfe des Seitenkosinussatzes bestimmen. Eine ungefähre Genauigkeit genügt hierbei, sodass insbesondere für kurze Entfernungen eine Bestimmung über den Satz des Pythagoras genügt. Auch gibt es keine besonderen Bedingungen bei der Schätzung, wie sie beim A* Algorithmus bekannt sind. 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 3.3 42 Konstruktion der Touren Die Konstruktion einer Route durch die künstliche Ameise verläuft über ständige gewichtet zufällige Knotenübergänge, bis der gesuchte Zielknoten erreicht ist. Die Berechnung der Wahrscheinlichkeit für einen Knotenübergang ist der zeitkomplexeste Vorgang im gesamten Ameisenalgorithmus. Er ist begleitet von der Durchsuchung linearer Listen und Anwendung ressourcenintensiver mathematischer Funktionen. Die bereits erläuterte spezielle Struktur eines Straßengraphen erlaubt es häufig, den Vorgang der Knotenübergänge zu optimieren. Jeder Knoten mit weniger als drei Kanten kann bei einem Knotenübergang direkt übergangen werden. Ein Knoten mit zwei angeschlossenen Kanten verlangt, dass man ihn über eine Kante betritt. Diese Kante ist im Weiteren tabu für die künstliche Ameise und sollte der neu betretene Knoten nicht der Zielknoten sein, so muss dieser über die letzte übrig bleibende Kante verlassen werden (siehe Abbildung 3.3, links). Auch für Knoten mit mehr als zwei angeschlossenen Kanten kann ein solcher Übergang eintreten, wenn alle alternativen Nachbarknoten bereits in der aktuellen Ameisenroute besucht wurden (siehe Abbildung 3.3, rechts). Den Sonderfall, dass die Ameise keine weiterführende Kanten zur Auswahl hat, wird in Abschnitt 3.3.1 behandelt. Abbildung 3.3: Fälle von vereinfachten Knotenübergängen 3.3.1 Vermeidung von Abbrüchen Die in Abschnitt 3.1 angesprochene Problematik des Abbruches eines Ameisenlaufs kann auf zweierlei Wege behandelt werden. Zum Einen könnte die abgebrochene Ameisentour in der Iteration nicht bewertet werden. Dies würde zu einer sehr konstanten oberen Zeitkomplexität für jede Iteration führen. Das bedeutet andererseits aber auch, dass es Iterationen geben kann, in denen keine oder nur wenige Ameisenläufe erfolgreich absolviert werden. Die Folge wäre eine Verzögerung der Erforschung einer 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 43 optimalen Lösung. Unter pessimistischen Betrachtungen könnte sogar der Verwitterungsprozess den Lernprozess übersteigen und das Wissen auf den Initialzustand zurückfallen lassen. Die zweite Möglichkeit lässt eine Ameise bei Abbruch der Tour diese wiederholen, bis sie diese erfolgreich absolviert. Hierdurch lässt sich die maximale Zeitkomplexität für eine Iteration nur noch statistisch einschätzen. Andererseits fließen in jeder Iteration die gewünschte Anzahl an Lösungen in den Aktualisierungsprozess ein und sichert somit eine bessere Vorhersagbarkeit des Lernverhaltens. Abbildung 3.4 zeigt die statistisch benötigte Anzahl an Laufversuchen einer Ameise über den Verlauf mehrerer Iterationen im modifizierten AS Algorithmus. Die Enden der blauen Linie zeigen dabei die jeweils minimale und maximale Anzahl an Versuchen für einen erfolgreichen Lauf in der Iteration. Die Streuungsbalken zeigen die zugehörigen 0.25- und 0.75-Quantile. Daraus wird deutlich, dass eine Abbruchsituation in einem realistischen Straßengraphen die Regel ist und unter Beachtung der genannten Nachteile nur die zweite Möglichkeit in Betracht kommt. Gut zu erkennen ist auch die Eigenschaft, dass mit fortschreitendem Wissen im Graphen die Abbruchhäufigkeit signifikant sinkt. Für die Bewertung wurden 10 Algorithmusläufe mit jeweils 13 Ameisen und 10 Iterationen herangezogen. Abbildung 3.4: Anzahl an Abbrüchen bei der Wegesuche in AS Der bis zu einem Abbruch betriebene Aufwand zur Wegesuche geht jedoch bei einer begrenzten Erinnerungstiefe weiterhin verloren. Effizienter ist die Annahme, dass die Ameise ein Kurzzeitgedächtnis besitzt und sich an die jeweiligen Vorgängerknoten erinnern kann. Mit diesem Wissen kann die Ameise den in die Sackgasse führenden Pfad zurückgehen und mit der neu gewonnenen 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 44 Erfahrung eine neue Kantenwahl treffen. Selbst wenn die Ameise sich nur an den unmittelbar vorausgehenden Knoten erinnern kann, wird das Ergebnis statistisch deutlich verbessert. Abbildung 3.5 zeigt die Abbruchhäufigkeit von Ameisen mit einer Erinnerungstiefe von einem Vorgängerknoten (rot) im Vergleich zu einer Lösung mit Ameisen ohne Erinnerungsfähigkeit (blau). Im Weiteren wurden die gleichen Parameter bei beiden Auswertungen gewählt. Abbildung 3.5: Vergleich von Abbruchhäufigkeiten mit und ohne Abbruchprävention Bei einer Erinnerungsfähigkeit über den vollständigen Laufpfad ist die Ameise in der Lage sich aus jeder Sackgassensituation zu befreien, vorausgesetzt es gibt eine Lösung. 3.3.2 Zielgerichtetes Suchen Zu Beginn eines ACO Algorithmus untersuchen die Ameisen vom Startknoten aus radial alle Richtungen. Erst im späteren Verlauf, mit zunehmendem Wissen im Graphen, konzentrieren sie ihre Suche im Umfeld der optimierten Lösung. Bei einer geographischen Problemstellung, wie dem der Routenerzeugung, kann davon ausgegangen werden, dass die optimale Lösung sich mit hoher Wahrscheinlichkeit in der Umgebung der Luftlinie zwischen Start- und Zielkno- 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 45 ten befindet. Diese Annahme nutzt bereits der A* Algorithmus als Kernunterscheidung zum Dijkstra Algorithmus bei der Suche eines kürzesten Weges. Natürliche Ameisen sind ebenfalls in der Lage einen direkten Weg und seine Länge zwischen ihrem Standort und dem Nest abzuschätzen (siehe Abschnitt 2.1.2). Demnach ist es logisch, auch im Ameisenalgorithmus bei der Kantenwahl eine vergleichbare Funktionalität abzubilden. Eine zielgerichtete Suche darf allerdings vom Ziel wegführende Kanten nicht grundsätzlich ausschließen, sondern nur zum Ziel führende Kanten verhältnismäßig bevorzugen. Auf diese Weise wird der Suchraum auf den geographischen Raum zwischen Start und Ziel konzentriert. Ein Annährungswert c beschreibt die Qualität der Übergangskante hinsichtlich ihrer Abweichung von der Ideallinie zwischen aktuellem Knoten und Zielknoten. Der jeweilige Wert c wird über eine Bewertungsfunktion bestimmt und mit der Übergangswahrscheinlichkeit pki,j aus globalen und lokalen Informationen multipliziert (siehe Gleichung 3.1). Als Bewertungsfunktionen können unterschiedlich rechenintensive Verfahren mit verschiedenen Ergebnisgüten genutzt werden. pki,j = pki,j · c 3.3.2.1 (3.1) Heuristische Klassifizierung Die einfachste Methode ist die Klassifizierung einer heuristischen Veränderung bei Standortwechsel in hinführende und wegführende Kante (siehe Abbildung 3.6). Dabei wird die geschätzte verbleibende Entfernung zwischen potenziell nächstem Knoten und Zielknoten (Hnext ) von der geschätzten aktuellen Entfernung zum Zielknoten (Hcurrent ) subtrahiert. Verbleibt ein positiver Rest, so würde sich ein Kantenübergang dem Ziel annähern, ein Kantenübergang würde sich vermutlich lohnen, c würde einen höheren Wert annehmen. Anderenfalls würde sich der Kantenübergang vom Zielknoten entfernen und er würde sich vermutlich weniger lohnen, c würde einen kleinen Wert annehmen (siehe Gleichung 3.2). Zur heuristischen Einschätzung kann die Länge einer direkten Verbindung, bestimmt über die geographischen Koordinaten der betroffenen Knoten, gewählt werden. Die Parameterwerte für positiv (c+ ) und negativ (c− ) anzusehende Übergänge müssen in einem richtigen Verhältnis zueinander gewählt werden. 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 46 Für positive Kanten sollte der Parameter hoch genug sein, um seine Vorzüge gegenüber schlechteren Kanten klar zu vertreten, andererseits darf er die Übergangsentscheidung nicht alleinig dominieren. Abbildung 3.6: Klassifizierung nach heuristischer Veränderung bei Standortwechsel c= c + , Hcurrent − Hnext ≥ 0; c − , ansonsten (3.2) Von Vorteil bei dem Verfahren ist die Wiederverwendbarkeit der getroffenen Kantenklassifizierung. Sie bleibt unverändert bis sich der Zielpunkt verändert. Daher kann sie für nachfolgende Knotenübergänge über die Laufzeit des Algorithmus gepuffert werden. Nachteilig ist der harte Übergang im Bereich des näherungsweise neutralen Knotenwechsels (Hcurrent − Hnext ≈ 0), also wenn sich der Schätzwert zum Zielknoten bei aktuellem Knoten und Nachfolgeknoten nicht wesentlich ändert. Eine weiterführende Methode vergibt jeder Kante einen Rang absteigend zur Wertigkeit der resultierenden Standpunktverbesserung bei Kantenübergang. Hierdurch wird eine scharfe Abgrenzung im Bereich eines neutralen Übergangsbereiches vermieden. Nachteilig bei dem Verfahren ist die entstehende zusätzliche Zeitkomplexität durch die notwendige Sortierung der weiterführenden Kanten bei jedem Betreten eines Knoten. 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 3.3.2.2 47 Trigonometrische Klassifizierung Das zweite Verfahren zur Klassifizierung von Kanten ist die Bestimmung und Bewertung der trigonometrischen Abweichung des Kurses auf den Zielknoten bei gegebenem Übergang zum Nachbarknoten (siehe Abbildung 3.7). Abbildung 3.7: Klassifizierung nach trigonometrischer Abweichung von Ideallinie bei Standortwechsel Mit Hilfe des Kosinussatzes (Gleichung 3.3) kann der Winkel zwischen den beiden Geraden durch die Punkte des aktuellen Knotens und des Zielknotens (AZ), sowie durch den Nachfolgeknoten und den Zielknoten (N Z) bestimmt werden. 2 cosγ = 2 AZ + AN − N Z 2 · AZ · AN 2 ! (3.3) Bei einer Abweichung cosγ von 0◦ bzw. 360◦ führt die Kante auf direktem Weg in Richtung Ziel (c = c+ ), bei einer Abweichung cosγ von 180◦ führt sie direkt vom Ziel weg (c = c− ). Alle Zwischenwerte werden stetig zwischen c+ und c− mit Hilfe einer Bewertungsfunktion f (cosγ) abgebildet (c = f (cosγ)). Die Wahl der Funktion zur Qualitätsbewertung der weiteren Annäherung zeigt große Unterschiede. Statistische Vergleiche zwischen verschiedenen Bewertungsfunktionen zeigen signifikante Unterschiede im Zeitaufwand, bis eine definierte Optimierungsqualität bei der Lösung erreicht wurde (siehe Abbildung 3.9) und in der Qualität der Lösung bei definierter Iterationszahl (siehe Abbildung 3.10). Einige Funktionen und ihre Eigenschaften werden hier genannt, in Abbildung 3.8 gezeigt und nachfolgend beschrieben. 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 48 Die über den Kosinussatz bestimmte Kursabweichung cosγ liegen in Gradmaß im Intervall von [cos0◦ ; cos180◦ ] bzw. [−1; 1] und stellen den Definitionsbereich der Funktion f dar. Für den Wertebereich der Funktion f wird das Intervall [c− ; c+ ] festgelegt. Abbildung 3.8: Funktionen zur Abbildung der Kursabweichung auf Übergangsqualität • Lineare Funktion (Abbildung 3.8, grün) f (cosγ) = cosγ+1 2 Suchraum wird statistisch halbiert Gute und Schlechte Übergänge werden linear gleichbehandelt • Polynomfunktion (Abbildung 3.8, blau in verschiedenen Helligkeitsabstufungen) f (cosγ) = (cosγ+1)y , 2y y = {2, 3, 4, 5, 6} Suchraum wird stark eingegrenzt Schlechte Übergänge werden kaum untersucht • Natürlich logarithmische Funktion (Abbildung 3.8, magenta) f (cosγ) = ln(cosγ+2) 1.1 Suchraum wird statistisch kleiner als die Hälfte Potentiell schlechte Übergänge werden ebenfalls weitgehend untersucht 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 49 • Sigmoid Funktion (Abbildung 3.8, rot) f (cosγ) = 1 1+e−5.0·cosγ Suchraum wird statistisch halbiert Gute Übergänge werden proportional besser untersucht als schlechte Übergänge • Polynomfunktion mit ungeradem Exponenten (Abbildung 3.8, braun) f (cosγ) = 0.5 · cos5 γ + 0.5 Großer Teil des Suchraums gilt als mittelmäßig im folgendenden Sinne: Mittelmäßige Kantenübergänge werden gleichbehandelt Extrem gute/schlechte Übergänge werden extrem gut/schlecht behandelt • Zusammengesetzte Polynomfunktion mit ungeradem Exponent (Abbildung 3.8, orange) [−1; 0)f (cosγ) = 0.2 · cos5 γ + 0.2, [0; 1]f (cosγ) = 0.8 · cos5 γ + 0.2 Großer Teil des Suchraums gilt als mittelmäßig im folgendenden Sinne: Mittelmäßige Kantenübergänge werden relativ schlecht, aber gleichbehandelt; Extrem gute/schlechte Übergänge werden extrem gut/schlecht behandelt Wie bereits erwähnt hat die Wahl der Funktion zur Abbildung der Abweichung auf die Qualitätseinschätzung einen beträchtlichen Einfluss auf die Effektivität des gesamten Algorithmus. Das in Abbildung 3.9 gezeigte Diagramm basiert auf einem Versuch mit verschiedenen Funktionen im Vergleich gegenüber der heuristischen Methode zur Einschätzung der Qualität für einen Übergang. Aufgabenstellung für den Algorithmus war eine innerstädtische Route auf mindestens 95% der kürzesten Länge zu optimieren. Die Referenzlänge wurde durch den A* Algorithmus erzeugt. Zum Einsatz kam der ACS/SP Algorithmus mit 13 Ameisen. Für jede Messung wurden zehn Algorithmenläufe durchgeführt. Der Parameter für c+ lag bei 2.0 und für c− bei 0.5. Zu erkennen ist, dass die besten Ergebnisse bei Funktionen erzielt werden, die den Suchraum maximal einschränken. Hierfür geeignet ist insbesondere die Gruppe der Potenzfunktionen. Die besten Ergebnisse konnten mit f (cosγ) = (cosγ+1)y 2y bei y = 4 erzielt werden. Ungeeignet sind die Potenzfunktionen mit ungeraden Exponenten, die natürlich logarithmische Funktion und 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 50 Abbildung 3.9: Effektivität von Funktionen im Vergleich (Versuch 1) die Sigmoidfunktion. Sie geben dem Algorithmus keine ausreichend klare Auskunft über die Qualität einer Kante und schränken den Suchraum zu wenig ein. Eine weitere Untersuchung betrachtet die Qualität eines Optimierungsprozesses in einem definierten Intervall. Es werden dieselben Parameter gewählt wie in der vorherigen Untersuchung. Die Abbruchbedingung ist jedoch der Abschluss von zehn Iterationen. Verglichen wird die Länge der gefundenen optimierten Route eines Algorithmuslaufes im Vergleich zu der Länge einer Referenzroute, die durch einen A* Algorithmus bestimmt wurde. Der Vergleich zeigt hierbei ein ähnliches Bild ( siehe Abbildung 3.10). Die maximale Einschränkung des Suchraumes, insbesondere im schlechten Suchraum, führt zu besseren Ergebnissen. Insbesondere eine extreme Bewertung von guten Kantenübergängen führt in Einzelfällen zu besonders guten Ergebnissen (Polynomfunktionen mit Exponenten > 2). Eine gleichmäßige Bewertung von mittelmäßigen Kantenübergängen erreichen dagegen selbst in Ausnahmefällen keine überragenden Optimierungsergebnisse und liegen auch bei den durchschnittlichen Ergebnissen hinter denen von Potenzfunktionen. Alle Abweichungsqualitätsfunktionen liefern bei Betrachtung eines definierten Intervalls im Mittelwert bessere Ergebnisse als durch die heuristische Qualitätsbestimmung. Die Vorteile des Bewertungsverfahrens mit Hilfe von trigonometrischen Funktionen liegen in der stetigen Abbildung aller Qualitätsniveaus. Wichtig ist jedoch die richtige Wahl der Funktion 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 51 Abbildung 3.10: Effektivität von Funktionen im Vergleich (Versuch 2) zur Abbildung der Abweichung auf die Qualitätseinschätzung. Sie sollte den Suchraum maximal einschränken und klare Unterscheidungen zwischen den Qualitätsniveaus im gesamten Definitionsbereich herausbilden. Einziger Nachteil ist der hohe Ressourcenbedarf bei der Berechnung von Kursabweichungen durch Verwendung von rechenaufwändigen Funktionen. Dieser Aufwand kann jedoch vernachlässigt werden, solange sich der Zielknoten und somit die Ergebnisse der Qualitätsbestimmung nicht ändern. Sie bleiben über den gesamten Algorithmus konstant und können somit gepuffert werden. 3.3.3 Streben nach höherwertigen Verbindungen Eine Eigenschaft subjektiv optimaler Wege liegt in der Verwendung möglichst hochwertiger Straßenabschnitte. In bewährten Suchverfahren für kürzeste Wege wird gezielt versucht, in ein höherwertiges Straßenteilnetz zu gelangen und in diesem möglichst lange bis zum Ziel zu bleiben. Dies hat nicht nur den bereits genannten Grund der höheren Wahrscheinlichkeit für einen besseren Weg, sondern soll auch die Komplexität des Straßengraphen reduzieren. 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 52 Herkömmliche Ameisenalgorithmen sind nicht darauf ausgelegt auf Eigenschaften vergangener Kanten Rücksicht zu nehmen. Wenn eine Ameise auf einem Knoten vor der Auswahl der nächsten Kante steht, kennt sie bereits nicht mehr die zum Vergleich notwendigen Attribute der vorher passierten Kante. Die ACO/SP behebt diesen Mangel. Sie vergleicht bei jeder Kantenbewertung die Güte des nachfolgenden Kantenkandidaten mit der Vorgängerkante und wertet ihre Übergangswahrscheinlichkeit entsprechend auf oder ab. Als Kriterien für die Kantenbewertung stehen im GDF Format zwei geeignete Attribute zur Verfügung (siehe Tabelle 2.2). Die Function Road Class bildet eine objektive Kategorisierung der Wertigkeit des betroffenen Straßenabschnittes. So sind Hauptstraßen im Allgemeinen besser ausgebaut als Nebenstraßen. Dies resultiert im aufnehmbaren Verkehrsvolumen und der zu erwartenden Konsistenz des Verkehrflusses. Das zweite GDF Attribut zur Kantenbewertung ist die Average Speed. Sie bezieht sich auf die durchschnittliche zu erreichende Geschwindigkeit auf der Straße. Die Geschwindigkeit unterstützt damit die Straßenklasse als Kriterium für die Wertigkeit einer Straße, insbesondere wenn es zwischen mehreren gleichberechtigt guten Straßen zu entscheiden gilt. Das Ergebnis aus dem Entscheidungsprozess ist ein Wertigkeitsfaktor d, der über eine Multiplikation in die Übergangswahrscheinlichkeit pki,j mit einfließt (siehe Gleichung 3.4). Die Parameter für den Wertebereich von d liegen bei d− ≤ d ≤ d+ . pki,j = pki,j · d (3.4) Die Bestimmung der Wertigkeit einer Nachfolgekante kann auf verschiedene Weisen erfolgen. In einer Aufstellung sollen diese erläutert werden: • FC und AS gleichberechtigte Entscheidungskriterien Sollte FC gleich- oder höherwertig sein oder AS höherwertig sein, dann d = d+ , ansonsten d = d− . Abweichungen von kürzestem Weg in Abbildung 3.11 in blau • FC primäres, AS sekundäres Entscheidungskriterium Sollte FC höherwertig sein oder sollte FC gleichwertig sein und AS höherwertig, dann d = d+ , ansonsten d = d− Abweichungen von kürzestem Weg in Abbildung 3.11 in magenta 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 53 • FC primäres, AS untergeordnetes Entscheidungskriterium Sollte FC höherwertig sein dann d = d+ , wenn FC gleichwertig und AS höherwertig, dann d = d+ −d− 2 + d− , ansonsten d = d− Abweichungen von kürzestem Weg in Abbildung 3.11 in orange In der Abbildung 3.11 ist der über den Dijkstra Algorithmus ermittelte kürzeste Weg in schwarz und die bei den genannten Bewertungsverfahren aufgetretenen Abweichungen in unterschiedlichen Farben eingetragen. Die Abbildung und ihr nebenstehendes Diagramm kamen durch eine statistische Erhebung der aufgeführten Bewertungsverfahren, sowie ohne Berücksichtigung der Straßenwertigkeit, zustande. Bei der Erhebung wurden die Ergebnisse von jeweils 20 Algorithmenläufe ermittelt. Es kam der ACS/SP Algorithmus mit einem Abbruch nach 20 Iterationen und 13 künstlichen Ameisen zum Einsatz. In die Kartengrafik (Abbildung 3.11, links) sind jeweils die besten Ergebnisse hinsichtlich Länge in Farbe eingetragen. In grün ist zusätzlich das Ergebnis ohne ein obengenanntes Verfahren eingezeichnet. Das Diagramm (Abbildung 3.11, rechts) zeigt die statistischen Abweichungen bezogen auf Länge und Zeitaufwand in Prozent gegenüber Läufen ohne Bewertung der Straßengüte. Es sind jeweils die Werte von Minimum, Maximum, Untere und Obere Quartile eingetragen. Die statistische Untersuchung zeigt, dass die Optimierung auf höherwertige Straßen bei der innerstädtischen Routenerzeugung ungeeignet ist, um einen kostenoptimalen Weg zu finden. Der Zeitaufwand ist höher und die resultierenden Ergebnisse sind im Allgemeinen schlechter als ohne ein Bewertungsverfahren. Dies hängt insbesondere mit der Struktur von Ballungsräumen zusammen. In Ballungsräumen wie Städten finden sich häufig mit Hilfe von kleinen Straßen durch Wohngebiete kurze Wege, während Hauptstraßen diese weiträumig umfahren. Bei einer stadtgrenzenübergreifenden Routenerzeugung hingegen hat die Einbeziehung von Straßengüten ihre vollkommene Berechtigung, da man hier weite Strecken kostengünstig über hochwertige Straßenverbindungen absolvieren kann. Dennoch ist eine verkehrsoptimierte Strecke in der Regel auch in einem Ballungsraum auf hochwertige Straßen ausgelegt, da weniger Verkehrsflussunterbrechungen durch Vorfahrtsregelungen und der subjektive Eindruck einer besseren Route zu erwarten ist. Eine Möglichkeit der Behebung dieses Widerspruches wäre die Bewertung der Hochwertigkeit einer Straße erst nach einer rudimentären Optimierungsstufe hinzuzufügen 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 54 Abbildung 3.11: Abweichungen vom kürzesten Weg durch Bevorzugung höherwertiger Straßen und das bisherige Ergebnis auf diese Weise durch den Algorithmus mit neuen Aspekten zu überarbeiten. 3.3.4 Vermeidung von Stagnation Das größte Problem in der Gruppe der AS Algorithmen ist das Risiko einer Stagnation in einem lokalen Minimum. Das Risiko rührt in erster Linie von der ständig wiederholten Belegung von Kanten mit Pheromonen, die zu einem lokalen Minimum gehören. Das MMAS schützt sich vor einer solchen Stagnation, indem es in regelmäßigen Abständen eine Verbesserung der besten Route erwartet. Bleibt diese über eine definierte Anzahl an Iterationen aus, geht der Algorithmus von einer Stagnation aus. In der Folge wird das bisher errungene Wissen im Graphen gelöscht, indem die Pheromonewerte auf allen Kanten in den Initialzustand zurückgesetzt werden. Das ACS hingegen entfernt sich vom Grundgedanken des Prinzips aus der Natur und reduziert bei jedem Knotenübergang die Pheromonspur auf der genutzten Kante. Erst nachdem 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 55 die Iteration abgeschlossen ist, werden die neuen Pheromonspuren teilweise auf Grundlage der optimierten Lösung neu verlegt. Eine unverhältnismäßig dominierende Pheromonspur reduziert sich somit selbstständig entweder durch eine betretende Ameise oder durch den Verwitterungsprozess. Auf diese Weise schützt sich der ACS eigenständig vor einer Stagnation. In der Gruppe der AS/SP kommt ein Verfahren zum Einsatz, das dem des MMAS ähnelt. Das aus MMAS bekannte Verhalten, bei einer Stagnation das gesamte erlernte Wissen zu verwerfen, ist für ein Laufzeitverfahren, wie es die Routenerzeugung in einem mobilen Navigationssystem darstellt, untauglich. Man würde sämtliche errungenen Erfahrungen für die Reaktion auf kurzfristige unvorhersehbare Situationen verlieren. Vielversprechender ist es, nur extreme Pheromonwerte auf ein moderateres Niveau zu reduzieren. Die Rangordnungen zwischen den Kanten bleiben bestehen und gewähren jederzeit eine erfahrungsunterstützte Entscheidung. Die moderaten Werte für die extremen Pheromonwerte liegen jeweils zwischen dem arithmetrischen Mittel der Pheromonwerte τ und dem zu reduzierenden Extremwert τi,j (siehe Gleichung 3.5). Die Lage des neuen moderaten Pheromonwertes wird durch τloc bestimmt. τi,j = τ + τi,j − τ τloc (3.5) Eine Untersuchung zeigt, dass ein Wert von τloc = 2.0 in den besten Optimierungsergebnissen resultiert (siehe Abbildung 3.12). Bei der Untersuchung kam ein AS/SP mit 15 Ameisen und 60 Iterationen zum Einsatz. Gemittelt wurden die Ergebnisse von zehn Algorithmusläufen verglichen gegen den kürzesten Weg, ermittelt durch den Dijkstra Algorithmus. Zwei weitere Kriterien drängen sich bei der Vermeidung von Stagnationen auf: Erstens, ab welchem Iterationsintervall ohne Verbesserung der Optimierungslösung spricht man von einer Stagnation und zweitens, wie kurzfristig sollte die Wirkung der Regelung überprüft werden. Zu beiden Kriterien wurden Versuche durchgeführt mit den im oberen Absatz erwähnten Parametern. Dabei stellte sich heraus, dass die Wahl der Anzahl von Iterationen bis zu einer Stagnation relativ stabil ist und kein entscheidendes Kriterium darstellt. Bei den Versuchen hat sich lediglich bei der Intervallgröße von vier Iterationen ein minimal stabileres Verhalten bei der Güte der Optimierung ergeben (siehe Abbildung 3.13). 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 56 Abbildung 3.12: Auswirkung des Lageparameters τloc auf die Optimierungsqualität Abbildung 3.13: Auswirkung der Stagnationserkennung auf die Optimierungsqualität (Auszug) 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 57 Das zweite Kriterium der Überprüfung wurde ebenfalls mit der genannten Versuchsanordnung untersucht. Dabei zeigte sich, dass bei Eintritt einer Stagnation eine kontinuierliche Reduzierung der Pheromone bis zur Überwindung der Stagnation die besten und stabilsten Ergebnisse ergeben (siehe Abbildung 3.14). In jeder Iteration werden die Pheromonewerte, welche größer als τ sind, weiter reduziert. Die Alternative geht von einer Überwindung der Stagnation bei Reduktion aus und reduziert die Pheromone erst dann weiter, wenn wieder ein Iterationsintervall ohne Verbesserung der Optimierungslösung absolviert wird. Abbildung 3.14: Auswirkung des Überprüfungsverfahrens auf die Optimierungsqualität 3.4 Fehleinschätzungen In diesem Abschnitt werden Konzepte zur ACO/SP Erweiterung vorgestellt, welche bei der Implementierung und anschließenden Untersuchung nicht die erhofften Resultate herbeiführten. 3.4.1 Verhältnismäßige Initialisierung der Pheromone Eine Erweiterung der Pheromoninitialisierung brachte nicht die gewünschten Erfolge. Der Grundgedanke war, das prinzipielle negative Ansehen unbesuchter Kanten zu beheben, indem neu entdeckte Kanten nicht mit dem verwitterten τ0 initialisiert werden, sondern mit einem 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 58 vorsichtig optimistischeren Pheromonwert aus dem Bereich unterhalb des arithmetrischen Mittelwertes. Dadurch sollte der Forschungsdrang der künstlichen Ameisen insbesondere in der AS Gruppe auch bei fortgeschrittener Iterationszahl aufrecht erhalten bleiben. Die Implementierung und anschließende statistischen Versuche zeigten jedoch, dass durchweg schlechtere Ergebnisse hinsichtlich Laufzeit und Optimierungsqualität resultieren. Einige Beispielsläufe befinden sich auf der beigefügten CD ROM im Verzeichnis Versuche/Pheromoninitialisierung. 3.4.2 ACO plus Lokale Suche Dorigo et al. stellen in [DS04] die kombinierte Optimierung vor. Dabei wird eine gefundene optimierte ACO Zwischenlösung mit einem Verfahren aus der Lokalen Suche weiteroptimiert und anschließend die Pheromone auf den Kanten dieser Lösung abgelegt. Die Problemstellung der kürzesten Wegesuche und die Graphenstruktur des Straßengraphen ergaben jedoch frühzeitig, dass diese Weiteroptimierung nicht ohne hohen Rechenaufwand betrieben werden kann und die resultierende Qualitätsverbesserung der Ergebnisse diesen nicht rechtfertigen. Dies hängt insbesondere damit zusammen, dass ein einfacher Austausch von einzelnen Knoten bzw. Kanten in einer Routenlösung keine neue Lösung ergeben. Vielmehr müssen ganze Teillösungen gefunden werden und diese gegen Teillösungen in der ACO Lösung ausgetauscht werden. Dieses Vorgehen widerspricht jedoch wieder der Lokalen Suche. 3.4.3 Optimierung im Umfeld der besten Lösung Eine zu einem Zeitpunkt gefundene beste Lösung enthält viele Elemente einer optimalen Lösung. Dieser Grundgedanke leitete zu folgender Erweiterung: Wenn eine Ameise auf einer Tour auf ein Teilstück der bisher besten Lösung trifft, soll sie mit höherer Wahrscheinlichkeit diesen Weg weiter verfolgen. Das Ergebnis ist eine schnelle Stagnation in einer suboptimalen Lösung, da der Forschungsdrang der Ameisen stark eingeschränkt wird. In der Implementierung prüfte die Ameise, ob eine 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 59 potenzielle Kante bereits in der global besten Lösung enthalten ist. Sollte dies der Fall sein, wendet sie einen Faktor auf die Übergangswahrscheinlichkeit an. 3.4.4 Kanten- statt Knotentabuisierung Da eine Navigation in erster Linie Straßen-, also Kantenorientiert ist, waren frühe Überlegungen anstelle von Knoten Kanten für die Liste bereits besuchter Elemente zu wählen. In der Implementierung hätte sich der weitere Vorteil ergeben, dass eine zusätzliche Datenstruktur zur Speicherung dieser besuchten Elemente gespart werden könnte, da bereits die Datenstruktur für die Ameisentour die Kantenfolge speichert. Die ersten Lösungsresultate zeigten jedoch die logische Falscheinschätzung, da die künstlichen Ameisen häufig wiederholt Knoten besuchten und Kantenschleifen liefen (siehe Abbildung 3.15). Keine der Lösungen war näherungsweise optimal. Abbildung 3.15: Schleifenbildung bei Kanten- statt Knotentabuisierung 3.5 Zwischenfazit Für den Umgang mit dem Szenario eines Straßennetzes wie in Abschnitt 3.1 beschrieben, wurden effiziente Modifikationen entwickelt, um erfolgreich einen kürzesten Weg durch ACO zu bestimmen. Insbesondere das Vermeiden von Abbrüchen verkürzt die benötigte Laufzeit um 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 60 ein Vielfaches, indem erbrachte Rechenleistung während einer Abbruchsituation in Erfahrung für den betroffenen Ameisenlauf umgewandelt wird. Die zielgerichtete Suche hilft der künstlichen Ameise den Weg zum Ziel weitgehend umwegefrei und mit einer höheren Qualität zu finden. Das Streben nach höherwertigen Straßenelementen zeigte sich als eher ungeeignet bei der Suche nach kürzesten Wegen in einem innerstädtischen Straßennetz. Jedoch optimiert es subjektiv eine Route, indem es Umwege toleriert. Speziell für die Gruppe der AS/SP Algorithmen wurde ein Mechanismus zur Vermeidung von Stagnation eingeführt. Allerdings ist das Verfahren nicht ausreichend optimal, um die Resultate der natürlichen Eigenschaften des ACS/SP Algorithmus zu erreichen. In Kapitel 5 wird weiterführend die Leistungsfähigkeit der unterschiedlichen ACO/SP Algorithmen unter verschiedenen Blickwinkel untersucht. Der optimale ACO/SP Algorithmus basiert somit unter den bisherigen Betrachtungen auf einem ACS/SP Algorithmus mit • der vorgestellten Initialisierung, • einer Vermeidung von Abbrüchen, • einer zielgerichteten Suche bei minimalem Suchraum und • nachfolgender Weiteroptimierung durch Bevorzugung höherwertiger Straßenelementen. 4. Implementierung der ACO Algorithmen In diesem Kapitel wird die entstandene Infrastruktur zur Routenerzeugung mit seinen Komponenten und den implementierten Algorithmen vorgestellt. Die Modularisierung stellt eine Vergleichbarkeit zwischen den Algorithmen sicher und vereinfacht die einheitliche Erweiterung und Parametrisierung der Algorithmen. Eine einfache Austauschbarkeit bei der Implementierung der Algorithmen wird durch Anwendung des Strategie Entwurfsmuster (siehe [GHJV96], Seite 373) gewährleistet. Zu Vergleichszwecken sind neben den ACO/SP Algorithmen auch Implementierungen des Dijkstra und A* Algorithmus integriert. Der A* Algorithmus wurde dabei aus der Navigationskomponente übernommen. Zunächst wird die Verwaltung der Kanteninformationen und die Implementierung der künstlichen Ameise vorgestellt, anschließend die einzelnen Ameisenalgorithmen mit ihren Gemeinsamkeiten und deren Unterschiede. 4.1 Verwaltung der Kanteninformationen In ACO/SP entstehen zur Laufzeit der Routenerzeugung problemstellungsbezogene dynamische und statische Kanteninformationen. Diese müssen gegebenenfalls in einer Komponente erzeugt und verwaltet werden. Zu den dynamischen Kanteninformationen gehören die Pheromonwerte. 4. Implementierung der ACO Algorithmen 62 Die statischen Kanteninformationen setzen sich aus der lokalen Information, abhängig vom Optimierungsziel, dem Abweichungsfaktor und den Straßengütefaktoren in Betrachtung von der Vorgängerkante zusammen. In der Implementierung der ACO/SP verantwortet die Klasse CTrail die Erzeugung und Verwaltung aller Informationen. Abbildung 4.1 veranschaulicht die wesentlichen Operationen und Elemente in einem Klassendiagramm. Abbildung 4.1: Klasse CTrail Bei der Verwaltung der Kanteninformationen verhält sich die CTrail Instanz gemäß einem virtuellen Proxy (siehe [GHJV96], Seite 256). Es kapselt die Kanteninformationen und erzeugt diese bei erstmaliger Abfrage. Lokale Informationen werden nach der Erzeugung in einer Hashtabelle gespeichert und für wiederholten Zugriff vorgehalten. Die globale Information zu einer Kante wird nach dem erstmaligem Betreten in der Hashtabelle gespeichert, wenn der Pheromonwert vom Initialwert abweicht. Der Initialwert repräsentiert gemäß Abschnitt 3.2.1 den homogenen Pheromonwert auf den Kanten des zum spezifischen Zeitpunkt unerforschten Teilgraphen. Er ist variabel und wird im Verdunstungsprozess aller Kanten durch Dezimierung mit berücksichtigt. Das Speichern der statischen lokalen Informationen verringert die Zeitkomplexität, da der Aufwand zur Erzeugung einmalig ist. Die Speicherung in Hashtabellen optimiert die Zeitkomplexität bei der Suche von Informationen gegenüber der Suche in linearen Listen. Eine veränderte Verkehrssituation kann vom Algorithmus berücksichtigt werden. Hierzu 4. Implementierung der ACO Algorithmen 63 werden die lokalen Informationen zu einer Kante über den Grad der Verkehrsbehinderung verhältnismäßig angepasst. Zum nebenläufigen Einsatz sind die kritischen Abschnitte beim Zugriff auf die Hashtabellen mittels Mutexe geschützt. 4.2 Künstliche Ameise Für alle ACO Algorithmen wird eine einheitliche Ameisenklasse CAnt (siehe Abbildung 4.2) zur Modellierung der künstlichen Ameise verwendet. Ihre Instanzen stellen die einzelnen künstlichen Ameisen im Graphen auf der Suche nach dem Ziel dar. Hierfür hat jede Ameise mittels dem referenzierten Datenbankobjekt mDatabase Kenntnisse über die Eigenschaften des Graphen, der das Straßennetz (siehe Abschnitt 2.3.1.5) modelliert. Die globalen und lokalen Informationen zu einer Kante kann die Ameiseninstanz über das referenzierte Objekt mTrail der Klasse CTrail abrufen (siehe Abschnitt 4.1). Der abgeschrittene Weg der Ameise wird in der Instanz mRoute der Klasse CAntRoute abgelegt. Am Ende des Laufes einer Ameise bildet sie ein Ergebnis, das an den Algorithmus zurückgeliefert wird. Daneben werden in mVisitedNodes von der Klasse CVisitedNodes alle im Ameisenlauf untersuchten Knoten in einer Hashtabelle gespeichert, um einen wiederholten Besuch auszuschließen. Abbildung 4.2: Klasse CAnt 4. Implementierung der ACO Algorithmen 4.2.1 64 Initialisierung Während der Initialisierung (init()) wird der künstlichen Ameise die Start- und Zielknoten, sowie die Startkante mitgeteilt. Für den ACS/SP Algorithmus ist es im Weiteren wichtig, ob es sich um den ersten Lauf der künstlichen Ameise, also die erste Iteration handelt. 4.2.2 Konstruktion der Tour Die Methode run() startet den Konstruktionsvorgang der Ameise. Er endet erst, wenn die Ameise ihren Zielknoten erreicht hat oder über die Methode stop() zum Anhalten aufgefordert wird. Die Stoppaufforderung wird sofort nach Abschluss des laufenden Knotenübergangs befolgt. Im Wesentlichen ist der Konstruktionsvorgang einer Tour in Listing 4.1 dargestellt. Die künstliche Ameise sucht sich ihren Weg durch den Graphen, bis sie den Zielknoten erreicht hat. Die im jeweilen Knotenübergang zu verwendende Kante entscheidet die Methode decideNextEdge(). Sollte keine weiterführende Kante vorhanden sein, bewegt sie sich auf den vorherigen Knoten zurück und trifft eine neue Entscheidung. Im Datencontainer mVisitedNodes werden dabei alle auf der Tour besuchten Knoten gespeichert. Hierdurch wird ein wiederholtes Betreten eines Sackgassenknotens ausgeschlossen. Eine Rückwärtsbewegung schlägt nur dann fehl, wenn sich die Start- und Zielknoten in zwei isolierten Graphen befinden. In diesem Fall kann keine Route konstruiert werden. 1 2 3 4 5 6 7 8 9 10 11 Begin Function run() //Ameise in den Startzustand versetzen Reset() //Von Knoten zu Knoten wandern While currentNode Is Not destinationNode And stop Is Not True If decideNextEdge( nextEdge ) Is True move( nextEdge ) Else //Dead End If moveBack() Is Not True //Keine Route moeglich 4. Implementierung der ACO Algorithmen 12 13 14 15 16 17 18 65 Return False End If End If End While //Route gefunden Return True End Function Listing 4.1: Pseudocode der Tourkonstruktion in CAnt 4.2.2.1 Übergangsentscheidung Die Auswahlentscheidung zum nachfolgenden Knotenübergang wird in der Methode decideNextEdge() durchgeführt. Für die Entscheidung werden alle allgemein gültigen und unter Kapitel 3.3 genannten Kriterien einbezogen. Das Listing 4.2 stellt in Form von Pseudocode die Übergangsentscheidung dar. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Begin Function decideNextEdge( &nextEdge ) //Alle noch moeglichen Kanten bestimmen getCurrentnodeEdges( nextPossibleEdges ) //Vorbedingungen klaeren If Size Of nextPossibleEdges == 0 //Dead End nextEdge = ∅ Return False Else If Size Of nextPossibleEdges == 1 //No Choice nextEdge = nextPossibleEdges[0] Return True End If //Wahrscheinlichkeiten berechnen For Each edge In nextPossibleEdges[] mTrail.getGlobal( edge, τ ) mTrail.getLocal( edge, η, c, d ) probabilities[edge] = τ α · η · c · d End For Each //Entscheidung treffen Random( 0.0 ≤ q ≤ 1.0 ) 4. Implementierung der ACO Algorithmen 22 23 24 25 26 27 28 29 30 66 If q ≤ q0 And Not FirstIteration nextEdge = MaxArg(probabilities) Return True Else Random( 0 ≤ chosenEdge ≤ SumOf(probabilities) ) nextEdge = probabilities[ IndexOf(chosenEdge) ] Return True End If End Function Listing 4.2: Pseudocode der Übergangsentscheidung in CAnt Im ersten Schritt werden alle vom aktuellen Knoten wegführenden Kanten, die zu einem in dieser Tour noch nicht besuchten Knoten führen, ermittelt. Anschließend wird eine Vorbetrachtung der Anzahl an Auswahlmöglichkeiten durchgeführt und entsprechend verfahren. Bei keiner weiterführenden Kante handelt es sich um eine Sackgasse, die Auswahlentscheidung schlägt fehl und die Ameise muss einen Knoten zurück gehen (siehe Abschnitt 3.3.1). Sollte nur eine weiterführende Kante existieren, wird diese direkt genutzt ohne den weiteren Prozess der Übergangsentscheidung zu durchlaufen (siehe Abschnitt 3.3). Anschließend wird für jede Kante ihre Auswahlwahrscheinlichkeit ermittelt. Hierzu greift sie über das referenzierte CTrail Objekt mTrail auf die globale Information τi,j und die gepufferten konstanten Werte der lokalen Information ηi,j , des Abweichungsfaktors c (siehe Abschnitt 3.3.2) und des Straßengütefaktors d (siehe Abschnitt 3.3.3) zu. Die eigentliche Übergangswahrscheinlichkeit ermittelt sich über α (ηi,j wird bereits als Wert der Potenz mit dem Exponent β im Puffer die Potenzierung von τi,j geführt und muss nicht bei jeder Wahrscheinlichkeitsbestimmung neu berechnet werden) und anschließender Multiplikation mit den übrigen genannten Faktoren (siehe Abschnitte 3.3.2 und 3.3.3). Nachdem für jeden Nachfolgeknoten die Übergangswahrscheinlichkeit pi,j bestimmt wurde, wird gemäß q0 die erlernte oder eine gewichtet zufällige Kante ausgewählt. Die Vorauswahl kann für die AS Gruppe durch eine Parametrisierung von q0 < 0.0 ausgenommen werden. Bei der gewichtet zufälligen Auswahl wird eine Zufallszahl [0.0; Σpi,∗ ] erzeugt und auf die Auswahlwahrscheinlichkeiten der Kanten abgebildet. Die zugehörige Kante wird als Kante in den Konstruktionsprozess der künstlichen Ameise zurückgegeben. 4. Implementierung der ACO Algorithmen 4.2.2.2 67 Ergebnis einer Ameisentour Im Anschluss an einen erfolgreichen Ameisenlauf besitzt die künstliche Ameise eine Instanz der Klasse CAntRoute. Diese enthält die Kanten in der Ablaufreihenfolge, die aufsummierte Entfernung und Reisedauer der Route. Die Kanten werden in einem mit direktem Lese- und Änderungszugriff erweiterten Stack der Klasse CRouteEdgeStack gespeichert. 4.3 Algorithmen In den nachfolgenden Abschnitten werden die implementierten ACO/SP Algorithmen vorgestellt. Dazu gehört der AS/SP Algorithmus und eine Variante mit nebenläufiger Tourenkonstruktion, der ACS/SP Algorithmus, sowie die AS Varianten EAS/SP Algorithmus und ASrank /SP Algorithmus. Alle gemeinsam sind von der abstrakten Basisklasse CAlgorithmBase abgeleitet. Sie implementiert die gemeinsamen Grundfunktionen und definiert die Schnittstellen zur Navigationskomponente. Abbildung 4.3 zeigt die Anordnungen der Basisklasse zu den konkreten Algorithmenklassen in einem Klassendiagramm. Abbildung 4.3: Klasse CAlgorithmBase Die Schnittstellen zur Navigation sind die des Konstruktors, die Operation um die Routenerzeugung zu starten, eventuelle Änderungen in der Verkehrssituation zu publizieren und um 4. Implementierung der ACO Algorithmen 68 die optimierte Route an die Navigation zu geben. Im Konstruktor werden die Start- und Zieladressen der Route, sowie die Referenz auf die Datenbankinstanz des Road Map Layers definiert. Eventuell eintretende Änderungen bei der Verkehrssituation auf einzelnen Kanten können von der Navigationskomponente zur Laufzeit dem Algorithmus mitgeteilt werden. Sollte die negativ betroffene Kante auf der optimierten Routenführung liegen, wird die beste Route verworfen und eine neu optimierte Ameisenlösung der Navigationskomponente zum Abruf zur Verfügung gestellt. Die Routenrückgabe liefert die zum gegebenen Zeitpunkt optimierte Lösung. Für Untersuchungszwecke außerhalb der Navigationskomponente ist eine Ausgabe der Pheromonspuren im KML Format (siehe [KML]) vorhanden. Der Algorithmus ist blockierend. Daher ist es sinnvoll den Routenerzeugungsprozess in einem eigenen Prozess oder Thread zu starten. Eine Abbruchbedingung kann unterschiedlich gestaltet sein. Für Versuchszwecke wird der Algorithmus nach einer bestimmten Anzahl an Iterationen oder nach dem Erreichen eines bestimmten Qualitätsniveaus beendet. Im Praxiseinsatz könnte der Algorithmus im Dauerbetrieb laufen und nur durch Änderung der Zieladresse oder dem Beenden der Navigationskomponente gestoppt werden. In diesem Fall kann die Priorität des Routenerzeugungsprozesses nach einem Zeitraum oder Iterationsintervall heruntergesetzt werden, wenn eine Route ausreichend optimiert ist. 4.3.1 Ant System Algorithmus Die Implementierung des AS/SP Algorithmus entspricht der in Abschnitt 2.2.1 vorgestellten Variante mit den in Kapitel 3 vorgestellten ACO/SP Modifikationen. Bei den Modifikationen kommen folgende zum Einsatz: • Initialisierung der Pheromone, Abschnitt 3.2.1 • Heuristischer Lösungswert, Abschnitt 3.2.2 • Vermeidung von Abbrüchen, Abschnitt 3.3.1 • Zielgerichtete Suche, Abschnitt 3.3.2 • (optional) Streben nach höherwertigen Verbindungen, Abschnitt 3.3.3 • Vermeidung von Stagnation, Abschnitt 3.3.4 4. Implementierung der ACO Algorithmen 69 Das Listing 4.3 zeigt die Implementierung mit Hilfe der in den oberen Abschnitten vorgestellten Infrastruktur. Ein Attribut mRun überwacht, ob der Algorithmus eine weitere Iteration durchführen soll (Listing 4.3, Zeile 2) oder das Routenerzeugungsziel erreicht ist und die Methode verlassen wird. Im Falle einer weiteren Iteration erzeugt jede künstliche Ameise eine neue Route (Listing 4.3, Zeile 4), welche im Anschluss auf ihre Qualität überprüft wird (Listing 4.3, Zeile 8). Sollte sich ein neues bestes Optimierungsergebnis ergeben haben, wird dieses Ereignis in dem Flag betterRouteFound gespeichert. Nachdem alle künstlichen Ameisen eine Route erzeugt haben, werden zunächst die Pheromone aktualisiert (Listing 4.3, Zeile 12) und anschließend anhand des genannten Flags gegebenfalls eine Stagnationsbehandlung durchgeführt (Listing 4.3, Zeile 13). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Begin Function start() While mRun Is True For Each Ant In Ants[] If Ant.run() Is Not True Return False End If Ant.getRoute( route ) If analyzeRoute( route ) Is True And betterRouteFound Is False betterRouteFound = True End If End For Each updatePheromone() If betterRouteFound Is True stagnationCounter = 0 Else stagnationCounter++ If stagnationCounter > stagnationBoundary mTrail.resetGlobal() EndIf End If End While Return True End Function Listing 4.3: Pseudocode der Routenerzeugung in AntSystem::CAlgorithm 4. Implementierung der ACO Algorithmen 70 In Listing 4.4 wird die Aktualisierung der Pheromone in AS/SP gezeigt. Bei der Verwitterung der Pheromone werden alle Kanten des Graphen (Listing 4.4, Zeile 2) und bei der Pheromonablage alle Ameisenlösungen der aktuellen Iteration berücksichtigt (Listing 4.4, Zeile 3). 1 2 3 4 5 6 7 8 9 10 Begin Function updatePheromone() mTrail.evaporate( evaporationFactor ) For Each Ant In Ants[] Ant.getRoute( route ) quality = mHeuristicCost / route.getCost() For Each edge In route mTrail.addGlobal( edge, quality ) End For Each End For Each End Function Listing 4.4: Pseudocode der Pheromonaktualisierung in AntSystem::CAlgorithm 4.3.2 Nebenläufiger Ant System Algorithmus Die Gruppe der AS Algorithmen eignet sich prinzipiell zur Nebenläufigkeit [Pyt05]. Die künstlichen Ameisen produzieren hierbei innerhalb einer Iteration parallel ihre Routen. Sobald alle Routenlösungen erfolgreich erarbeitet wurden, werden diese analysiert, die Pheromonspuren aktualisiert und gegebenenfalls eine Stagnationsbehebung durchgeführt. In einem embedded automotiven System ist ein multithreadfähiger Prozessor bzw. eine Multiprozessorumgebung eher unwahrscheinlich, dennoch gibt es einen Aspekt mit potentiellem Vorteil. Ein ACO Algorithmus verlangt, dass eine definierte Anzahl an Ameisenlösungen in jeder Iteration bewertet werden kann (siehe Abschnitt 3.3.1). Im Allgemeinen benötigt jede künstliche Ameise für eine Lösung unterschiedliche Rechenzeiten, abhängig von der Anzahl an Knotenübergängen, die sie hierfür bestimmen muss. Daher könnte man definieren, dass in jeder Iteration immer die Lösungen der ersten mmin künstlichen Ameisen betrachtet werden. Die übrigen nebenläufigen Ameisen werden vom Algorithmus vorzeitig beendet und ihre Teillösungen verworfen. 4. Implementierung der ACO Algorithmen 71 Im sonstigen algorithmischen Ablauf entspricht der Nebenläufige AS/SP Algorithmus dem herkömmlichen AS/SP Algorithmus aus Abschnitt 4.3.1. Hierzu gehören auch die in Abschnitt 4.3.1 aufgeführten ACO/SP Modifikationen. Listing 4.5 zeigt die Routenerzeugung im Nebenläufigen AS/SP Algorithmus. Die Ameisen liegen in einem gemeinsamen Speicherbereich des Algorithmus (Listing 4.5, Zeile 2). Nachdem in einer Iteration alle künstlichen Ameisen in jeweils einem eigenen Thread gestartet wurden (Listing 4.5, Zeile 6), wartet der Algorithmus an einer Semaphore, bis eine Mindestzahl an künstlichen Ameisen eine Lösung fertig gestellt haben (Listing 4.5, Zeile 9). Anschließend überprüft sie jede Ameise auf das Vorhandensein einer Lösung (Listing 4.5, Zeile 11). Ist eine Ameisenlösung vorhanden, wird diese analysiert und gegebenenfalls das Stagnationsflag entschärft (Listing 4.5, Zeile 12). Fehlt die Lösung einer Ameise, so kann davon ausgegangen werden, dass die Ameise noch Berechnungen durchführt. Die betroffene künstliche Ameise wird gestoppt, woraufhin sie nach ihrem aktuell stattfindenden Knotenübergang die Tourkonstruktion aufgibt und den Thread beendet (Listing 4.5, Zeile 16). Der weitere Vorgang der Pheromonaktualisierung (Listing 4.5, Zeile 19) und der Stagnationsprävention (Listing 4.5, Zeile 20) gleicht dem des AS/SP Algorithmus aus Abschnitt 4.3.1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Begin SharedMemory Ants[m] End SharedMemory Begin Function start() While mRun Is True For Each Ant In Ants[] CreateThread( Ant.run() ) End For Each SemaphoreWait(mmin ) For Each Ant In Ants[] If Ant.getRoute( route ) Is True If analyzeRoute( route ) Is True And betterRouteFound Is False betterRouteFound = True End If Else Ant.stop() End If 4. Implementierung der ACO Algorithmen 18 19 20 21 22 23 24 25 26 27 28 29 30 72 End For Each updatePheromone() If betterRouteFound Is True stagnationCounter = 0 Else stagnationCounter++ If stagnationCounter > stagnationBoundary mTrail.resetGlobal() EndIf End If End While Return True End Function Listing 4.5: Pseudocode der Routenerzeugung in AntSystemThread::CAlgorithm Ein Versuch zeigt, dass die Ergebnisgüte des Nebenläufigen AS/SP Algorithmus vergleichbar mit der des AS/SP Algorithmus ist. Der benötigte Rechenaufwand ist jedoch unverhältnismäßig höher (siehe Abbildung 4.4). Der zusätzliche Rechenaufwand stammt hierbei von den zusätzlich erzeugten und verworfenen Teilrouten. Auch die Stabilität in den resultierenden Optimierungsergebnissen und der aufgewendeten Rechenzeit ist beim AS/SP konstanter gegenüber seiner nebenläufigen Variante. Für den Versuch wurden 50 Algorithmenläufe des AS/SP und des Nebenläufigen AS/SP ausgewertet. Jeder Lauf besaß 50 Iterationen mit jeweils 60 künstlichen Ameisen, die eine Lösung erreichen mussten. Der Nebenläufigen AS/SP enthielt sechs zusätzliche künstliche Ameisen als Toleranz deren Teillösungen verworfen wurden. 4.3.3 Ant Colony System Algorithmus Die Implementierung des ACS/SP Algorithmus enthält alle Eigenschaften gemäß Abschnitt 2.2.2 und die folgenden ACO/SP Modifikationen: • Heuristischer Lösungswert, Abschnitt 3.2.2 • Vermeidung von Abbrüchen, Abschnitt 3.3.1 • Zielgerichtete Suche, Abschnitt 3.3.2 • (optional) Streben nach höherwertigen Verbindungen, Abschnitt 3.3.3 4. Implementierung der ACO Algorithmen 73 Abbildung 4.4: Vergleich zwischen Nebenläufiger AS/SP und AS/SP Die modifizierte Pheromoninitialisierung aus Abschnitt 3.2.1 entfällt im ACS/SP, da eine Verwitterung ausschließlich auf abgeschrittenen Kanten stattfindet. Bisher unerforschte Kanten werden mit fortschreitenden Iterationen für einen Übergang immer interessanter. Neben der Verwitterung von genutzten Kanten und Kanten der optimierten Lösung stellt dies ein wesentliches Merkmal zur Stagnationvermeidung dar. Da sich, aufgrund des gerade geschilderten Verhaltens, die Pheromonwerte im Graphen beim Ant Conlony System/SP Algorithmus stets in einem begründeten Niveau halten und keine unverhältnismäßigen Pheromonextremwerte entstehen können, entfällt eine Maßregelung der Pheromonwerte durch die in Abschnitt 3.3.4 beschriebene Stagnationsvermeidung. Die Beschränkung auf die optimierte Route bei der Pheromonaktualisierung konzentriert die Suche auf das Umfeld der optimierten Lösung und verringert die Zeitkomplexität bei der globalen Aktualisierung der Pheromone gegenüber dem AS/SP Algorithmus auf 1 . m Aufgrund der lokalen Aktualisierung der Pheromonpfade entfällt beim ACS/SP Algorithmus die Möglichkeit der Nebenläufigkeit in der Tourkonstruktion, da jede Ameise neue Verhältnisse zwischen den Knotenübergängen vorliegen hat. 4. Implementierung der ACO Algorithmen 74 Das Listing 4.6 zeigt den Ablauf der Tourkonstruktion. Identisch zu AS/SP baut jede künstliche Ameise eine Route und vergleicht diese mit der optimierten Lösung auf ihre Qualität. Anschließend wird, im Unterschied zu den Algorithmen der AS Gruppe, jede Kante in der konstruierten Route verwittert (Listing 4.6, Zeile 9 bzw. Listing 4.7). Streng genommen müsste die Verwitterung bereits unmittelbar beim Kantenübergang stattfinden, jedoch ist die gemeinschaftliche Verwitterung nach einer Tourkonstruktion legitim, da eine Kante pro Route nur einmal betreten werden kann. Eine weitere Auswahl einer bereits besuchten Kante ist für diese künstliche Ameise nicht möglich. Nachdem jede künstliche Ameise eine Tour konstruiert hat, wird die Aktualisierung der Pheromone mit der Verwitterung und Pheromonablage auf den Kanten der optimierten Route durchgeführt (Listing 4.6 , Zeile 11 bzw. Listing 4.8). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Begin Function start() While mRun Is True For Each Ant In Ants[] If Ant.run() Is Not True Return False End If Ant.getRoute( route ) analyzeRoute( route ) updatePheromoneLocal( route ) End For Each updatePheromone() End While Return True End Function Listing 4.6: Pseudocode der Routenerzeugung in AntColonySystem::CAlgorithm Begin Function updatePheromoneLocal( route ) 2 For Each edge In route 3 mTrail.evaporateEdge( edge, evaporationFactor ) 4 End For Each 5 End Function Listing 4.7: Pseudocode der lokalen Pheromonaktualisierung in AntColonySystem::CAlgorithm 1 Begin Function updatePheromone() 2 quality = mHeuristicCost / mBestRoute.getCost() 3 For Each edge In mBestRoute 4 mTrail.evaporateEdge( edge, evaporationFactor ) 5 mTrail.addGlobal( edge, quality ) 6 End For Each 7 End Function Listing 4.8: Pseudocode der globalen Pheromonaktualisierung in AntColonySystem::CAlgorithm 1 4. Implementierung der ACO Algorithmen 4.3.4 75 Elitist Ant System Algorithmus In der Implementierung des EAS/SP Algorithmus sind alle Eigenschaften aus Abschnitt 2.2.3.1 und folgende aus Kapitel 3 enthalten: • Initialisierung der Pheromone, Abschnitt 3.2.1 • Heuristischer Lösungswert, Abschnitt 3.2.2 • Vermeidung von Abbrüchen, Abschnitt 3.3.1 • Zielgerichtete Suche, Abschnitt 3.3.2 • (optional) Streben nach höherwertigen Verbindungen, Abschnitt 3.3.3 • Vermeidung von Stagnation, Abschnitt 3.3.4 Der Ablauf der Tourkonstruktion im EAS/SP Algorithmus ist identisch zu dem im AS/SP Algorithmus. Daher wird an dieser Stelle auf das Listing 4.3 in Abschnitt 4.3.1 verwiesen. Erst im Vorgang der Pheromonaktualisierung unterscheiden sich die Algorithmen. Das Listing 4.9 zeigt die zusätzliche Ablage der Pheromone auf den Kanten der optimierten Route durch die künstlichen Eliteameisen (Listing 4.9, ab Zeile 10). Einer erhofften Verbesserung der Optimierungslösung steht die zusätzliche Komplexität der Pheromonablage entlang der optimierten Zwischenlösungen entgegen. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Begin Function updatePheromone() mTrail.evaporate( evaporationFactor ) For Each Ant In Ants[] Ant.getRoute( route ) quality = mHeuristicCost / route.getCost() For Each edge In route mTrail.addGlobal( edge, quality ) End For Each End For Each quality = mHeuristicCost / mBestRoute.getCost() quality *= PARAM_NROFELITISTANTS For Each edge In mBestRoute mTrail.addGlobal( edge, quality ) End For Each End Function Listing 4.9: Pseudocode der Pheromonaktualisierung in ElitistAntSystem::CAlgorithm 4. Implementierung der ACO Algorithmen 4.3.5 76 Rank-Based Ant System Algorithmus Die Implementierung des ASrank /SP Algorithmus entspricht der des Abschnitts 2.2.3.2 mit den Erweiterungen aus Kapitel 3 zur kürzesten Wegesuche. Zu den Erweiterungen gehören wiederum die nachfolgend aufgeführten: • Initialisierung der Pheromone, Abschnitt 3.2.1 • Heuristischer Lösungswert, Abschnitt 3.2.2 • Vermeidung von Abbrüchen, Abschnitt 3.3.1 • Zielgerichtete Suche, Abschnitt 3.3.2 • (optional) Streben nach höherwertigen Verbindungen, Abschnitt 3.3.3 • Vermeidung von Stagnation, Abschnitt 3.3.4 Da auch der ASrank /SP Algorithmus zu der Gruppe der AS Algorithmen gehört, ist seine Tourkonstruktion zu der des AS/SP identisch. Es wird daher auf Listing 4.3 in Abschnitt 4.3.1 verwiesen. Die Unterscheidung zum AS/SP Algorithmus liegt in der Pheromonaktualisierung (siehe Listing 4.10). Nach der üblichen Verwitterung werden die Ameisen mit den in der Iteration ermittelten Lösungen aufsteigend nach den Kosten ihrer Lösung sortiert (Listing 4.10, Zeile 3). Anschließend werden die w − 1 besten Lösungen ausgewählt und ihre Kanten mit der zu Qualität und Rang entsprechenden Pheromonmenge neu belegt (Listing 4.10, Zeile 4). Die aktuell optimierte Lösung wird im ASrank /SP Algorithmus mit dem höchsten Rang bewertet und ihren Kanten entsprechend hohe Pheromonwerte hinzugefügt (Listing 4.10, Zeile 12). 1 2 3 4 5 6 7 8 9 Begin Function updatePheromone() mTrail.evaporate( evaporationFactor ) OrderByCosts( Ants ) For r=w-1 ; r > 0 ; r-Ants[w-r-1].getRoute( route ) quality = mHeuristicCost / route.getCost() quality *= r For Each edge In route mTrail.addGlobal( edge, quality ) 4. Implementierung der ACO Algorithmen 10 11 12 13 14 15 16 17 77 End For Each End For quality = mHeuristicCost / mBestRoute.getCost() quality *= w For Each edge In mBestRoute mTrail.addGlobal( edge, quality ) End For Each End Function Listing 4.10: Pseudocode der Pheromonaktualisierung in RankedAntSystem::CAlgorithm 4.4 Komplexität Die nachfolgende Betrachtung der Zeitkomplexität beruht auf dem Worst Case. In der Worst Case Betrachtung sind alle Knoten untereinander verbunden, eine Tourkonstruktion führt über alle Knoten im Graphen und alle Kanten des Graphen werden vom ersten Moment an in einem Bucket der Hashtabelle verwaltet. In einem praxisnahen Straßennetzgraphen besteht nur eine lichte Verknüpfung der Knoten, eine Tourkonstruktion betrachtet zielgerichtet nur eine kleine Menge aller Knoten und die Verwaltung der Kanten verteilt sich gleichmäßig über alle Buckets der Hashtabelle. Die Komplexität einer Iteration in einem ACO/SP setzt sich aus drei wesentlichen Teilschritten zusammen: Dem Konstruktionsvorgang einer definierten Anzahl von Ameisen, dem Verwitterungsvorgang ausgelegter Pheromone und der Auslegung neuer Pheromone. Der Konstruktionsvorgang einer Ameise ist in allen ACO/SP Algorithmen identisch. Die Verwitterung und Verlegung neuer Pheromone variiert zwischen den ACO/SP Algorithmen. Im Konstruktionsvorgang einer Ameise bestimmt der Algorithmus eine Route zwischen Startund Zielknoten durch den Graphen. Dazu nutzt er wiederholt eine Übergangsregel zur Auswahl eines Überganges von Knoten i zu Nachfolgeknoten j, bis er den Zielknoten erreicht hat. Im Worst Case wäre die Tour somit ein Spannbaum des Graphen. Die Komplexität der Übergangsregel setzt sich aus der Bestimmung der Übergangswahrscheinlichkeit für jeden legitimen Nachfolgeknoten und der darauf anschließenden Auswahl 4. Implementierung der ACO Algorithmen 78 des Nachfolgeknotens zusammen. Da im Worst Case alle Knoten legitime Nachfolgeknoten sind, ist deren Anzahl gleich der Knoten. Zur Bestimmung der legitimen Nachfolgeknoten führt die Übergangsregel zunächst einen Datenbankzugriff auf den Road Network Layer durch um alle Nachfolgeknoten zu bestimmen (O (1)). Anschließend werden die Nachfolgeknoten mit den Vorgängerknoten in einer Hashtabelle abgeglichen (O (n)). Für die daraus resultierenden legitimen Nachfolgeknoten müssen die Übergangswahrscheinlichkeiten bestimmt werden. Dazu nutzt die Übergangsregel die lokalen und globalen Informationen aus den Hashtabellen der Kantenverwaltungskomponente (O (n)). Abschließend wählt die Übergangsregel aus der Liste legitimer Nachfolgeknoten einen Übergang aus (O (n)). Zusammengefasst ergeben sich die in Tabelle 4.1 dargestellten Komplexitäten für die Übergangsregel. Teilschritt Komplexität Bestimmung legitimer Nachfolgeknoten O (1) Bestimmung der Übergangswahrscheinlichkeiten O (n) Auswahl eines Überganges O (n) Bilanz O (n) Tabelle 4.1: Zeitkomplexität der Übergangsregel Die Übergangsregel wird im Konstruktionvorgang wiederholt aufgerufen. Daher erhöht sich die Komplexität der Konstruktion um einen Faktor gleich der Anzahl von Knoten in der untersuchten Lösungstour gegenüber der Übergangsregel. Im Worst Case, bei der Konstruktion eines Spannbaumes, quadriert sich dadurch die Komplexität. In der durchschnittlichen Tourkonstruktion liegt der Faktor weit unterhalb von n. Die Komplexität eines Konstruktionsvorgangs beträgt somit n · O (n), d.h. O (n2 ). Die Abläufe der Verwitterungsprozesse unterscheiden sich in den ACO/SP Algorithmen. In den Algorithmen der AS/SP Gruppe verwittern nach jeder Iteration alle Kanten im Graphen. Ein solcher Verwitterungsprozess ist zu einer vollständigen Iteration über alle Elemente (Kanten) einer Liste identisch. Im Worst Case enthält die Liste die Kanten eines vollständigen Graphen mit (n − 1)! Elementen (O ((n − 1)!)). Im praxisnahen Fall ist die Anzahl der Kanten im lichten Straßnetzgraphen deutlich kleiner. Der Verwitterungsprozess im ACS/SP Algorithmus teilt 4. Implementierung der ACO Algorithmen 79 sich in die lokale und globale Verwitterung auf. In der lokalen Verwitterung werden alle Kanten berücksichtigt, die in einer Ameisenlösung enthalten sind. Die globale Verwitterung enthält alle Kanten der optimierten Lösung. Im Worst Case gilt somit für die Verwitterung das Gleiche wie für die AS/SP Gruppe (O ((n − 1)!)). In der Praxis liegt die Anzahl der besuchten Kanten im ACS/SP Algorithmus, jedoch unterhalb der Anzahl von Kanten im Graphen. Zusammengefasst gilt für die Komplexität der Verwitterung in allen ACO/SP Algorithmen somit O ((n − 1)!). Der Vorgang zur Ablage neuer Pheromone auf den Kanten des Straßennetzgraphen unterscheidet sich zwischen allen ACO/SP Algorithmen. Gemeinsam ist der Zugriff auf die Verwaltungskomponente. Tabelle 4.2 listet die ACO/SP Algorithmen und ihre zugehörigen Komplexitäten bei der Pheromonablage auf. Die Worst Case Betrachtung der Komplexität geht hierbei wieder von Spannbäumen bei den gefundenen Lösungen und vollständigen Graphen aus. Die praxisnähere Situation mit Teilgraphen als gefundene Lösungen in einem lichten Straßengraphen besitzt eine deutlich geringere Komplexität. Algorithmus Anzahl der Kanten Komplexität AS/SP m·n−1 , d.h. O (n) ACS/SP n−1 , d.h. O (n) EAS (m + 1) · n − 1 , d.h. O (n) ASrank w·n−1 , d.h. O (n) Tabelle 4.2: Zeitkomplexitäten der Pheromonablage der ACO/SP Algorithmen Zusammenfassend ergeben sich für die Teilschritte einer Iteration die in Tabelle 4.3 dargestellten Komplexitäten. Als Bilanz besitzt eine Iteration in einem ACO/SP Algorithmus somit Teilschritt Komplexität Konstruktion O (n2 ) Verwitterung O ((n − 1)!) Pheromonablage O (n) Tabelle 4.3: Zeitkomplexitäten der Pheromonablage der ACO/SP Algorithmen 4. Implementierung der ACO Algorithmen 80 die Komplexität von O ((n − 1)!). Diese Worst Case Betrachtung trifft in der Praxis eines Straßennetzgraphen jedoch in der Regel nicht zu. Der Graph ist deutlich lichter als vollständig verknüpft. Die gefundenen Lösungen stellen keinen Spannbaum dar und damit ist die Anzahl der durchgeführten Knotenübergänge unterhalb der Anzahl von Knoten im Graphen. 4.5 Parametrisierung Die Auswahl und Parametrisierung des verwendeten Algorithmus erfolgt über Präprozessoranweisungen. Neben der Algorithmuswahl und der -spezifischen Parameter kann zwischen den Optimierungszielen kürzeste Wegstrecke und kürzeste Fahrdauer gewählt werden. Des Weiteren kann eine Anzahl absolvierter Iterationen oder eine erreichte Optimierungsqualität als Abbruchbedingung definiert werden. Für jeden Algorithmus stehen folgende Parameter zur Verfügung: • Anzahl der Ameisen in einer Iteration • Anzahl der Iterationen (wenn als Abbruchbedingung definiert) • Schwellwert für Optimierungsqualität (wenn als Abbruchbedingung definiert) • Gewichtung α für globale Information • Gewichtung β für lokale Information • Wert für Pheromoninitialisierung τ0 • Faktor 1.0 − ρ der Verwitterung • Oberer (c+ ) und unterer (c− ) Grenzwert für die zielgerichtete Suche (Abschnitt 3.3.2.2) • Auswahl der Funktion zur Abbildung von cosγ auf Abweichungsfaktor bei zielgerichteter Suche (Abschnitt 3.3.2.2) • Oberer (d+ ) und unterer (d− ) Grenzwert für die hierarchische Einschätzung der Straßenqualität (Abschnitt 3.3.3) • Auswahl der Funktion zur Bestimmung der hierarchischen Straßenqualität (Abschnitt 3.3.3) 4. Implementierung der ACO Algorithmen 81 Außerdem sind für spezifische ACO/SP Algorithmen weitere Parameter vorhanden: • Anzahl von Iterationen ohne Verbesserung bis der Algorithmus als stagniert gilt (AS/SP Gruppe) (Abschnitt 3.3.4) • Wert des Lageparameters τloc zur Normalisierung extremer Pheromonwerte bei Stagnation (Abschnitt 3.3.4) • Anzahl der benötigten Ameisen bis eine Iteration erfolgreich abgeschlossen ist (Nebenläufiger AS/SP) • Wahrscheinlichkeit q0 zur direkten Nutzung von Wissen (ACS/SP, aber auch in der AS/SP Gruppe optional möglich) • Anzahl der elitären Ameisen (EAS/SP) Für Versuche können graphische Kartendaten im Google Maps bzw. Google Earth Dateiformat erzeugt werden. Es können die Pheromonspuren sowie die nach Beendigung eines Optimierungslaufes optimierte Route und ihre zugrundeliegenden Parameter dargestellt werden. 4.6 Integration in die Navigationskomponente Die implementierte Infrastruktur der Routenerzeugung durch Ameisenalgorithmen ist zur Integration in die vorhandene Navigationskomponente, wie sie in [Men07] beschrieben ist, ausgelegt. Die Start- und Zieladresse aus der Navigationskomponente kann dem Ameisenalgorithmus durch Referenzen auf CAddress Objekte mitgeteilt werden. Der Ameisenalgorithmus liefert auf Anfrage eine Instanz der Klasse CRoute, welche an die Navigation weitergereicht werden kann. Der Zugriff auf die Elemente des Road Network Layer zur Routenerzeugung erfolgt über die Datenbankschnittstelle der Navigationskomponente. Die Brücke zwischen Navigationskomponente und Ameisenalgorithmus bildet die Klasse CRouting. Abbildung 4.5 illustriert die wesentlichen Elemente in ihrem Zusammenhang. Die Zugehörigkeit zur Navigationskomponente ist farblich unterteilt: Gelb sind die Elemente der Routenerzeugung, 4. Implementierung der ACO Algorithmen 82 rot die Elemente der Navigationskomponente und orange die Brücke zwischen Navigationskomponente und Routenerzeugung. Abbildung 4.5: Integration der ACO in Navigationskomponente (hier ACS-Algorithmus) Weiterführend kann die Algorithmusinstanz nebenläufig integriert werden. Das instanziierende CRouting Objekt kann auf diese Weise dem Routenerzeugungsalgorithmus eventuell eintretende Änderungen in der Verkehrssituation mitteilen und kurzfristig später neue, optimierte Routenlösungen abrufen, um diese an die Navigationskomponente weiterzugeben. 5. Leistungsfähigkeiten der ACO/SP Algorithmen In diesem Kapitel werden die ACO/SP Algorithmen weiterführend auf ihre Leistungsfähigkeit untersucht. Hierzu gehören das Lernverhalten, Auswirkungen der Parametrisierung auf die resultierende Optimierungsqualität und der notwendige Ressourcenbedarf zur Laufzeit. 5.1 Allgemeines In den nachfolgenden Abschnitten werden Versuche aufgeführt, deren Resultate auf Algorithmen mit stochastischen Zufallskomponenten basieren. Um eine verlässliche Aussage über die Ergebnisse treffen zu können, wurden mit jedem angegebenen Algorithmus 50 identisch parametrisierte Läufe ausgewertet. Die Läufe basieren im Weiteren auf vier unterschiedlichen Start- und Zielkombinationen. Zu Vergleichszwecken herangezogene Optima basieren auf Werten des Dijkstra Algorithmus. Alle nachfolgenden Zeitangaben sind in Millisekunden (msec) umgerechnete CPU Ticks. Da der nebenläufige AS/SP Algorithmus von der Handlungsvorschrift dem AS/SP gleicht, wird in den meisten Versuchen auf eine weitere Betrachtung verzichtet. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 84 Abweichungen werden im Text genannt. Die Parametrisierung der Algorithmen ist dem Anhang zu entnehmen. 5.2 Aufteilung von Ameisenläufen auf Iterationen Bei dieser Untersuchung geht es darum, inwiefern sich das Lernverhalten des Ameisenkollektives, unter Betrachtung einer konstanten Gesamtzahl an Ameisenläufen auf unterschiedlich vielen Iterationen verhält. Daraus kann auch abgeleitet werden, welches Lernverhalten aus einer unterschiedlichen Anzahl künstlicher Ameisen resultiert. Im Versuch wurden hierzu 3000 Ameisenläufe auf 300, 50 bzw. 10 Iterationen (mit 10, 60 bzw. 300 Ameisenläufe pro Iteration) aufgeteilt und durchgeführt. Eingesetzt wurden die Algorithmen AS/SP, ACS/SP, EAS/SP und ASrank /SP. Abbildung 5.1 zeigt die Qualitäten der Optimierungslösungen. Bei den Algorithmen der AS/SP Gruppe ist zu erkennen, dass eine zunehmende Anzahl von Ameisenläufen pro Iteration eine zunehmende Verbesserung der Qualität im Optimierungsergebnis mit sich bringt. Insbesondere bei den spezialisierten AS/SP Algorithmen EAS und ASrank . Hier wirkt sich die Verstärkung der iterativen Optimierungszwischenlösung bzw. die Begrenzung der Pheromonablage auf eine definierte Anzahl bester Iterationslösungen positiv aus. Dies ist darauf zurückzuführen, dass mit der steigenden Anzahl von Ameisenläufen eine größere Chance besteht eine bessere Optimierungszwischenlösung zu finden. Beim EAS/SP wird diese Optimierungszwischenlösung in den Folgeiterationen verstärkt und damit der Forschungsdrang auf deren Umfeld konzentriert. Beim ASrank hingegen erhöht sich die Auswahl an guten Lösungen zur Legitimierung der gewichteten Pheromonablage. Beim ACS/SP hingegen zeigt die Auswertung, dass ein gemäßigtes Verhältnis von Ameisen zur Iterationszahl die stabilsten Ergebnisse hervorbringt. Dies liegt weniger am ausgeglichenen Verhältnis, als vielmehr daran, dass eine große Anzahl von Ameisenläufen durch eine schwerwiegende lokale Verwitterung das Lernverhalten stört. Eine kleine Anzahl an Ameisenläufen kann hingegen eine dominierende Optimierungszwischenlösung im Verlauf der Tourkonstruktion nicht ausreichend verblassen lassen. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 85 Abbildung 5.1: Aufteilung einer konstanten Anzahl von Ameisenläufen (Optimierung) Hinsichtlich dem Zeitaufwand zur Routenkonstruktion zeigt Abbildung 5.2 bei den Algorithmen der AS/SP Gruppe ein differenzierteres Bild. Der Rechenaufwand in ASrank sinkt im Bereich zwischen dem unteren und oberen Quartil mit ansteigender Zahl von Ameisenläufen pro Iteration. Dies hängt damit zusammen, dass mit steigender Anzahl von künstlichen Ameisen, verhältnismäßig deutlich weniger Lösungen bei der Pheromonablage berücksichtigt werden, als bei einer geringen Anzahl von Ameisenläufen mit hoher Anzahl von Iterationen. Bei den Algorithmen AS/SP und EAS/SP verlegen hingegen stehts alle künstlichen Ameisen Pheromone und alle Pheromone verwittern am Ende einer Iteration. Die Verwitterung verursacht hierbei den hohen Aufwand bei großer Iterationszahl und die Verlegung neuer Pheromone bei einer hohen Anzahl künstlicher Ameisen. Der ACS/SP Algorithmus ist im Vergleich zu den Algorithmen der AS/SP Gruppe in jedem untersuchten Fall stabil. Die geringen Abweichungen bei einer hohen Zahl von Iterationen bzw. Ameisenläufen beruht auf der häufigen Verlegung von Pheromonspuren entlang der Optimierungszwischenlösung bzw. der häufigen Wiederholung der lokalen Verwitterung unmittelbar nach jedem Ameisenlauf. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 86 Abbildung 5.2: Aufteilung einer konstanten Anzahl von Ameisenläufen (Aufwand) Als Zwischenfazit kann zusammengefasst werden, dass in den Algorithmen der AS/SP Gruppe mit steigender Anzahl an Ameisenläufen pro Iteration die Qualität der Optimierungslösung stetig steigt. Gleichzeitig relativiert sich der Zeitaufwand zur Bearbeitung einer Iteration im fortschreitenden Verlauf des Algorithmus. Insbesondere beim EAS/SP sinkt der relative Aufwand pro Ameise. Der ACS/SP Algorithmus bestimmt die besten Optimierungslösungen in allen Fällen. Die geringste Abweichung vom Optimum wird durch den ACS/SP Algorithmus mit einer kleinen Anzahl an Ameisenläufen und hoher Anzahl an Iterationen erreicht. Hier liegt die Abweichung vom Optimum bei 8% im arithmetrischen Mittel. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 5.3 87 Gewichtung der globalen zur lokalen Information Die Gewichtungsverhältnisse zwischen τ und η bei der Bestimmung der Übergangswahrscheinlichkeiten sind in den ACO Algorithmen, nach Dorigo & Stützle, eine entscheidende Parametergröße ([DS04], S.71). In diesem Abschnitt soll nun das Verhalten der ACO/SP Algorithmen auf unterschiedliche Gewichtung der lokalen und globalen Information untersucht werden. Zunächst wird die Auswirkung einer höher bewerteten lokalen Information auf die Optimierungsleistung des Algorithmus betrachtet. Bei der ersten Untersuchung wurden hierzu die globalen Informationen unverändert (α = 1.0) und die lokalen Informationen variierend bei β = {1.0, 2.0, 3.0, 4.0, 5.0} betrachtet. In Abbildung 5.3 sind die daraus resultierenden Optimierungsergebnisse der ACO/SP Algorithmen zu entnehmen. Abbildung 5.3: Optimierungsqualität bei konstantem α und variablem β In allen ACO/SP Algorithmen ist das Verhalten identisch. Dies liegt daran, dass die Bestimmung der Übergangswahrscheinlichkeiten im gemeinsamen Ameisenmodell erfolgt. Mit steigender Gewichtung der lokalen Information verschlechtert sich das resultierende Optimie- 5. Leistungsfähigkeiten der ACO/SP Algorithmen 88 rungsergebnis streng monoton. Ein ACO/SP Algorithmus findet somit bessere Ergebnisse, wenn er erlerntes Wissen nicht vernachlässigt. Ein weiterer Versuch untersucht die Optimierungsleistung der ACO/SP Algorithmen bei konstanter Gewichtung der lokalen Gewichtung (β = 1.0) und variierender globaler Gewichtung (α = {1.0, 2.0, 3.0, 4.0, 5.0}). Die Abbildung 5.4 zeigt die aus dem Versuch resultierenden Ergebnisse. Abbildung 5.4: Optimierungsqualität bei variablem α und konstantem β Wie man Abbildung 5.4 entnehmen kann, stellt sich das Optimierungsverhalten zwischen den Algorithmen wiederrum identisch dar. Jedoch ist die Optimierungsleistung bei allen Gewichtungsvarianten nahezu konstant. Dieses Verhalten entspricht dem Parametrisierungsvorschlag von Dorigo & Stützle in jeder Problemstellung eine gleiche Parametrisierung von α = 1.0 zu wählen ([DS04], S. 71). Aus den Untersuchungen können als Zwischenfazit die Werte α = 1.0 und β = 1.0 als Optima geschlossen werden. Dies verbessert im Weiteren die Performance bei der Bestimmung der Übergangswahrscheinlichkeiten, da bei einer solchen Parametrisierung die Gewichtungspotenzen in der Implementierung entfallen können (τ α = τ , bei α = 1.0 und η β = η, bei β = 1.0). 5. Leistungsfähigkeiten der ACO/SP Algorithmen 5.4 89 Lernverhalten im iterativen Verlauf Der Verlauf der Annäherung an das Optimum stellt ein wesentliches Kennzeichen zur Bewertung eines ACO/SP Algorithmus dar. Es repräsentiert das Lernverhalten über die Iterationen. In dieser Untersuchung wird die iterative Annäherung an das Optimum zwischen den ACO/SP Algorithmen dargestellt. Damit wird der Verlauf des Lernverhaltens über die Iterationen in den unterschiedlichen ACO/SP Algorithmen aufgezeigt. In Abbildung 5.5 ist der Verlauf der Annäherung der Optimierungszwischenlösungen an das Optimum über 50 Iterationen bei den ACO/SP Algorithmen dargestellt. Zusätzlich ist die Iteration eingetragen, ab der das Optimum zeitlich gesehen zur Verfügung steht. Das Diagramm zeigt, dass der ACS/SP Algorithmus die besten Lernfähigkeiten besitzt. Aufgrund seines unaufhaltsamen Forschungsdrangs, mit Hilfe der lokalen Verwitterung, tritt auch zur fortgeschrittenen Laufzeit des Algorithmus keine Stagnation ein. Die Algorithmen der AS/SP Gruppe sind dagegen von der Optimierungsleistung des ACS/SP weit abgeschlagen. Der EAS/SP stagniert frühzeitig in einem lokalen Minimum. Eine suboptimierte Zwischenlösung verlegt dominierend Pheromone und verhindert somit den Forschungsdrang der künstlichen Ameisen. Aber auch die AS/SP und ASrank Algorithmen stagnieren unwesentlich später. Das eingezeichnete Optimum in Abbildung 5.5 wurde durch einen Dijkstra Algorithmus erzeugt. Dieser ist aufgrund seiner radialen Ausdehnung bei der Untersuchung des Graphen vom Zeitaufwand gegenüber dem zielgerichteten A* Algorithmus in der Regel unterlegen. Die ACO/SP Algorithmen sind, betrachtet man den Zeitaufwand bis zur endgültigen Optimierung, den konventionellen Algorithmen zur Bestimmung kürzester Wege unterlegen. Jedoch besitzt ein ACO/SP Algorithmus, nach dem Abschluss des ersten Ameisenlaufes, einen ersten Routenvorschlag. In Abbildung 5.6 sind in einem Diagramm die Zeitaufwände der A*, Dijkstra und ACO/SP Algorithmen bis zum Abschluss des ersten Routenvorschlages dargestellt. Da der erste Routenvorschlag in den ACO/SP Algorithmen nach der Lösungsanalyse des ersten Ameisenlaufes erfolgt, ist der Zeitaufwand und die Lösungsqualität in allen ACO/SP Algorithmen identisch. Im Durchschnitt von 1.000 Algorithmenläufen konnte von den ACO/SP Algorithmen eine Lösung mit einer Abweichung von 12% schneller gegenüber dem A* Algorithmus (als Referenzoptimum) erzeugt werden. Der Dijkstra benötigte hingegen 10.557% gegenüber dem 5. Leistungsfähigkeiten der ACO/SP Algorithmen 90 Abbildung 5.5: Lernverhalten über den iterativen Verlauf A* Algorithmus, bis er eine Lösung fertig gestellt hatte. Die Lösungsqualität war bei den A* und Dijkstra Algorithmen identisch optimal. Die Lösungsqualität der ACO/SP Algorithmen hingegen 879,5% schlechter zum Optimum. Als Zwischenfazit kann gesagt werden, dass nur ein forschungsfördernder ACO/SP Algorithmus gute Optimierungsresultate liefert. Die Algorithmen der AS/SP konzentrieren sich zu sehr an gefundenen suboptimalen Zwischenlösungen und stagnieren daher frühzeitig. Die Resultate entsprechen näherungsweise den Beobachtungen von Dorigo & Stützle in [DS04], Seite 92. Die schnellste Erzeugung einer ersten Route im Vergleich zu A* und Dijkstra Algorithmus wird durch einen ACO/SP Algorithmus erreicht. Diese kann zwar nach dem ersten Ameisenlauf kein befriedigendes Ergebnis für die Gesamtroute erreichen, gewährleistet aber eine erste vorläufige Routenführung bis zur zufriedenstellenden Optimierung durch den ACO/SP Algorithmus. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 91 Abbildung 5.6: Qualität und Zeitaufwand der ersten Lösung 5.5 Einfluss der Verwitterung auf die Optimierung Der Verwitterungseinfluss in ACO/SP ist ein wesentlicher Faktor zur Verbesserung der Optimierung. Er wirkt einer Stagnation in einem potenziell lokalen Minimum entgegen, indem er regelmäßig eine relative Verringerung der Pheromonwerte auf den Kanten vornimmt. In diesem Abschnitt soll nun ermittelt werden, welcher Verwitterungsfaktor die besten Optimierungsergebnisse hervorbringt und ob ein Zusammenhang im ACS/SP zwischen der globalen und lokalen Verwitterung besteht. 5.5.1 Verwitterung mit Faktor ρ In den Algorithmen der AS/SP Gruppe werden alle Kanten im Graphen in jeder Iteration einer Verwitterung um einen Faktor ρ unterzogen. Im ACS/SP Algorithmus werden hingegen nur die Pheromonwerte von Kanten der optimierten Zwischenlösung um den Faktor ρ verringert und 5. Leistungsfähigkeiten der ACO/SP Algorithmen 92 die abgegangenen Kanten einer weiteren Verwitterung unterzogen. Diese lokale Verwitterung wird in Abschnitt 5.5.2 untersucht. Abbildung 5.7: Einfluss der Verwitterung auf die Optimierung In einem Versuch wurden die resultierenden Optimierungsqualitäten in den Algorithmen AS/SP, ACS/SP, EAS/SP und ASrank unter verschiedenen Verwitterungseinflüssen untersucht. Dabei zeigte sich (siehe Abbildung 5.7) in der Gruppe der AS/SP Algorithmen eine Verbesserung der Optimierungsqualität bei Abnahme der Verwitterung. Dieses Verhalten zeugt für einen funktionierenden Lernprozess innerhalb des Algorithmus. Im ACS/SP Algorithmus spielt der Verwitterungsvorgang entlang der optimierten Zwischenlösung eine Nebenrolle. Seine Optimierungsergebnisse sind im Durchschnitt gleichbleibend gut bei allen Verwitterungsstufen. Als Zwischenfazit für die Verwitterung in den Algorithmen der AS/SP Gruppe kann gesagt werden, dass eine geringe Vergänglichkeit von angesammelten Wissen innerhalb des Algorithmus die besseren Optimierungsergebnisse liefert. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 5.5.2 93 Verwitterung in ACS/SP Die lokale Verwitterung innerhalb des ACS/SP Algorithmus soll den Forschungsdrang der künstlichen Ameisen entlang der optimierten Zwischenlösung aufrecht erhalten. Die lokale Verwitterung wird über den Faktor ξ definiert. Mit zunehmendem ξ steigt der Wirkungsgrad der lokalen Verwitterung. Jedoch fällt der Pheromonwert einer Kante aufgrund der lokalen Verwitterung nie unter den Initialisierungswert τ0 (siehe Gleichung 2.2.2.2). Abbildung 5.8: Einfluss der lokalen Verwitterung in ACS/SP auf die Optimierung Im Versuch zeigt sich, dass die Wechselbeziehungen zwischen globaler und lokaler Verwitterung nicht ausgeprägt sind. Die geringe Streuung der Ergebnisse in Abbildung 5.8 verdeutlicht die unterschiedliche Rollenverteilung der Verwitterungsvorgänge. Die lokale Verwitterung soll bereits untersuchte Kanten weniger interessant zur Nutzung erscheinen lassen. Die globale Verwitterung verhindert hingegen, dass die optimierte Zwischenlösung zu stark ausgeprägt wird. Gleichzeitig schützt der Algorithmus sich vor einer Unterbewertung von Kanten, indem er neue Pheromone auf Kanten der besten Zwischenlösung und auf vom lokalen Verwitterungsprozess betroffene Kanten verlegt. 5. Leistungsfähigkeiten der ACO/SP Algorithmen 94 Für den ACS/SP Algorithmus ist als Zwischenfazit zu folgern, dass die Parametrisierung der Verwitterung eine Feinabstimmung darstellt, mit einem geringen Optimierungspotenzial. Es ist weniger wichtig, wie stark der Verwitterungsprozess ist, als, dass ein solcher überhaupt durchgeführt wird. 5.6 Verhalten nach Verkehrsstörung In einer dynamischen Umgebung wie dem Straßenverkehr kommt es häufig zu Änderungen der Verkehrssituation entlang der optimierten Route. Ein herkömmliches Bestimmungsverfahren muss in einer solchen Situation in der Regel von Grund auf eine neue Route berechnen. Die Eigenschaften der Wissensrepräsentation im Graph durch die Pheromonwerte auf den Kanten erlauben es dem ACO/SP dagegen sehr schnell eine Alternativroute zu bestimmen. Diese Eigenschaft ist in Abbildung 5.9 dargestellt. Abbildung 5.9: Verhalten nach exemplarischer Verkehrsstörung auf der optimierten Route In der Untersuchung wurde zur Laufzeit des ACS/SP Algorithmus in jeder fünften Iteration eine Verkehrsstörung mit 90 prozentiger Verzögerung auf einer Kante der optimierten Zwischenlösung eingefügt. Die dadurch verworfene Route konnte innerhalb weniger Iterationen weitgehend wieder optimiert werden. Erst im fortgeschrittenen Iterationverlauf (Iteration 17 und 37), mit zunehmender Anzahl von Verkehrsstörungen, entstanden bei der Optimierung im Mittelwert 5. Leistungsfähigkeiten der ACO/SP Algorithmen 95 Negativspitzen. Dies ist auf die Anzahl zunehmender Verkehrsstörungen zurückzuführen, welche die bisherige Umgebung um den Routenverlauf weniger optimal werden lässt. Im Zwischenfazit kann dem ACS/SP Algorithmus ein flexibler Umgang mit Verkehrsstörungen bescheinigt werden. Das vorhandene Wissen im Graphen erlaubt es den Ameisen schnell eine Alternativroute zu entwickeln. 5.7 Ressourcenbedarf zur Laufzeit Abschliessend soll in diesem Abschnitt der Speicherbedarf der implementierten ACO/SP Algorithmen zur Laufzeit untersucht werden. Hierzu wurde exemplarisch von allen Algorithmen eine innerstädtische Route optimiert. Der Verlauf wurde durch das Linux/Unix Programm top aufgezeichnet. In den Diagrammen der Abbildung 5.10 ist der Speicherbedarf über den Optimierungverlauf dargestellt. Die anfängliche Zunahme an Speicher im Datensegment beruht auf dem Aufbau der Kanteninformationsverwaltung. Nachdem alle relevanten Kanten zwischen Start- und Zieladresse in der Verwaltung angelegt sind, stagniert der Speicherzuwachs. Abbildung 5.10: Verlauf des Ressourcenbedarf einer exemplarischen Optimierung mit ACO/SP 5. Leistungsfähigkeiten der ACO/SP Algorithmen 5.8 96 Fazit Die ACO/SP Algorithmen sind gegenüber konventionellen Algorithmen zur Bestimmung kürzester Wege in einem Straßennetzmodell großteils unterlegen. Betrachtet man aber deren Einsatz zur Fahrzeugnavigation in einem mobilen Endgerät, bei dem die kurzfristige Erzeugung einer ersten Routenanweisung im Vordergrund steht, kann ein ACO/SP Algorithmus schneller reagieren, als konventionelle Algorithmen. Die Wissensrepräsentation im Straßennetzmodell ermöglicht auch eine kurzfristige Neuoptimierung einer Route nach Eintritt einer veränderten Verkehrssituation auf oder Abweichung von der optimierten Route. Eine Voraussetzung für eine gute Optimierungsleistung ist die richtige Parametrisierung. Diese ist weitgehend abhängig von der Wahl des konkreten ACO/SP Algorithmus. Die besten Optimierungsleistungen aus allen Blickwinkeln betrachtet, leistet der ACS/SP. Die Algorithmen der AS/SP Gruppe sind mit der Größe der Problemstellung weitgehend überfordert und stagnieren in lokalen Minima. 6. Resümee Die Routenerzeugung ist eine der komplexesten Aufgabenstellungen in der eingebetteten Fahrzeugnavigation. Erstmalig wurde die ACO auf diese Problemstellung, der Bestimmung kürzester Wege, adaptiert. Damit wurde sie auch erstmals auf eine andere Problemdomäne, als die der kombinatorischen Optimierung angewendet. Die daraus resultierenden Algorithmen wurden in einer neuen Gruppe der ACO zusammengefasst und bringen eine Reihe von Erweiterungen mit sich. Hierzu gehört eine modifizierte Initialisierung und ein Konzept zur Vermeidung von Abbrüchen. Weitere Erweiterungen sind gezielt auf Straßennetzmodelle spezialisiert: Die zielgerichtete Suche reduziert den untersuchten Suchraum auf den Bereich zwischen Start- und Zielknoten ohne den restlichen Suchraum auszuschließen. Eine optionale Bevorzugung höherwertiger Straßen kann subjektiv bessere Routen optimieren und ein strategisches Vorgehen hilft den Algorithmen der AS/SP Gruppe aus einer möglichen Stagnation. Einige Konzepte zur Optimierung erweisten sich als untauglich. Hierzu gehört insbesondere die Verbindung der ACO/SP mit einem Verfahren aus der Gruppe der Lokalen Suche. Diese Strategie wird von der ACO Gemeinschaft häufig umgesetzt um eine Verbesserung der vorläufigen Optimierungslösung zu erreichen, ist aber bei der kürzesten Wegeoptimierung in einem Straßennetzmodell ungeeignet. Verbesserungen gegenüber den konventionellen Verfahren stellen die schnelle Bereitstellung einer ersten Routenanweisung und die kurzfristige Reaktionszeit auf eine unvorhergesehene 6. Resümee 98 Routenänderung dar. Somit kann ein Fahrzeugführer schneller eine Routenführung erhalten und in Situationen, wie zum Beispiel dem Verpassen einer Ausfahrt oder eintreffender Meldungen über Verkehrsbehinderungen, weiterhin zielgerichtet geführt werden, ohne dass eine vollständige Neubewertung des Suchraums erfolgen muss. Dies wird durch die Wissensrepräsentation im Graphen des ACO/SP Algorithmus ermöglicht. Die theoretischen Modelle der ACO/SP Algorithmen wurden speziell für den Einsatz in einem exemplarischen embedded Fahrzeugnavigationssystem implementiert. Alle Eigenschaften der ACO/SP Algorithmen wurden anhand von vielseitigen Untersuchungen beleuchtet. Dabei wurden auch Vergleiche mit konventionellen Algorithmen durchgeführt und analysiert. Zusammengefasst ist ein Optimierungsverfahren zur kürzesten Wegebestimmung für ein Straßennetzmodell entstanden, dessen Optimierungsqualitäten gute Ergebnisse für die Fahrzeugnavigation liefert. 7. Ausblick Die Routenoptimierung mit Hilfe von ACO/SP ist grundlegend möglich und bietet einige Vorteile gegenüber herkömmlichen Verfahren. Dennoch erreichen Algorithmen der ACO/SP häufig nicht die gewünschte Optimierungsqualität. Denkbar wäre aber ein kombiniertes Vorgehen, um aus beiden Verfahren die Vorteile zu nutzen. Hierzu könnte der ACO/SP Algorithmus einen ersten Routenvorschlag erzeugen, um dem Benutzer eine erste Routenanweisung geben zu können. Anschließend bestimmt ein konventionelles Verfahren eine optimale Route und übergibt diese dem ACO/SP Algorithmus als beste Route. Der ACO/SP Algorithmus, aus der Gruppe, welche die Kanten entlang der besten Route mit zusätzlichen Pheromonen belegt, nutzt diese beste Route zur Entwicklung einer Wissensrepräsentation im Graphen. Hierdurch kann bei einer unvorhersehbaren Verkehrssituation entlang der besten Route kurzfristig eine Alternativroute bereitgestellt werden. Ein weitere Variante könnte eine konkurrierende Evolutionsstrategie sein. Dabei wird das Optimerungsverfahren teilweise redundant durchgeführt und parallel mehrere Wissensbasen aufgebaut. In regelmäßigen Iterationsintervallen vergleicht der Algorithmus dann die resultierenden Kokurrenzlösungen und verwirft die Wissensbasis des schlechteren Konkurrenten. Auf diese Weise könnte der Gefahr einer Stagnation entgegengewirkt und immer wieder neue Lösungsideen in den Optimierungsprozess eingebracht werden. 7. Ausblick 100 Die Vereinfachung des Straßengraphens durch eine Zusammenfassung von Knoten würde die Anzahl von Sackgassensituationen und Knotenübergängen reduzieren. Das Resultat wäre ein schnellerer und zuverlässigerer Optimierungsprozess durch die Reduktion der Komplexität. Die einfache Möglichkeit zum Umgang mit Änderungen in der Verkehrssituation könnte dazu genutzt werden, zeit- oder situationsbedingte Routenoptimierungen durchzuführen. So könnte zum Beispiel eine Priorisierungen von Straßentypen oder eine geodatenbasierte Meidung eines Ortes durchgeführt werden, um Verkehrsstörungsschwerpunkte zu umfahren. Eine Erweiterung könnte zur Bestimmung der Übergangswahrscheinlichkeit tiefergreifende Informationen nutzen. Diese enthalten nicht die Kanteninformationen zwischen aktuellem Knoten und Nachbarknoten, sondern die bilanzierten Kanteninformationen aller erreichbaren Nachfolgeknoten bis zu einer definierten Tiefe. Insbesondere die Information aus der zielgerichteten Suche mit heuristischer Klassifikation wie sie in Abschnitt 3.3.2.1 vorgestellt wurde, verspricht in diesem Zusammenhang Potenzial zur Verbesserung der Wegeoptimierung. Die Routenerzeugung könnte als Hintergrundprozess der Navigation ständig den Optimierungsprozess durchführen. Nach einem bestimmten Intervall würde die Optimierung in der Priorität herunter gesetzt und bei gegebenem Bedarf, wie zum Beispiel eintreffenden Verkehrsinformationen, wieder erhöht werden. Aber auch das bisherige Optimierungsverfahren könnte durch eine dynamische Parametrisierung zur Laufzeit eventuell optimiert werden. Als Beispiele könnte die Anzahl künstlicher Ameisen im Iterationsverlauf oder die Klassifikationen der zielgerichteten Suche variiert werden. A. Anhang A.1 Parametrisierung Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax AS 1.0 1.0 0.1 10, 60 bzw. 300 – 300, 50 bzw. 10 ACS 1.0 1.0 0.3 (0.1) 10, 60 bzw. 300 0.9 300, 50 bzw. 10 EAS 1.0 1.0 0.1 10, 60 bzw. 300 – 300, 50 bzw. 10 (3, 10 bzw. 50) – 10, 60 bzw. 300 (6) – ASrank 1.0 1.0 0.1 300, 50 bzw. 10 Tabelle A.1: Parametrisierung zu Abschnitt 5.2 Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax AS variabel variabel 0.1 60 – 50 ACS variabel variabel 0.3 (0.1) 60 0.9 50 EAS variabel variabel 0.1 60 (10) – 50 ASrank variabel variabel 0.1 60 (6) – 50 Tabelle A.2: Parametrisierung zu Abschnitt 5.3 A. Anhang 102 Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax AS 1.0 1.0 0.1 60 – 50 ACS 1.0 1.0 0.3 (0.1) 60 0.9 50 EAS 1.0 1.0 0.1 60 (10) – 50 ASrank 1.0 1.0 0.1 60 (6) – 50 Tabelle A.3: Parametrisierung zu Abschnitt 5.4 Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax AS 1.0 1.0 variabel 60 – 50 ACS 1.0 1.0 variabel (0.1) 60 0.9 50 EAS 1.0 1.0 variabel 60 (10) – 50 ASrank 1.0 1.0 variabel 60 (6) – 50 Tabelle A.4: Parametrisierung zu Abschnitt 5.5.1 Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax ACS 1.0 1.0 variabel (variabel) 60 0.9 50 Tabelle A.5: Parametrisierung zu Abschnitt 5.5.2 Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax ACS 1.0 1.0 0.3 (0.1) 60 0.9 50 Tabelle A.6: Parametrisierung zu Abschnitt 5.5.2 Algorithmus α β ρ (ggf. ξ) m (ggf. k Elitist bzw. w ) q0 tmax AS 1.0 1.0 0.1 60 – 50 ACS 1.0 1.0 0.3 (0.1) 60 0.9 50 EAS 1.0 1.0 0.1 60 (10) – 50 ASrank 1.0 1.0 0.1 60 (6) – 50 Tabelle A.7: Parametrisierung zu Abschnitt 5.7 B. Danksagung Das letzte Kapitel möchte ich dem Dank widmen. Dankbar bin ich allen voran den Menschen, die mich in den letzten Jahren bei meinem Studium unterstützten. Allen Voran meinen Eltern, ohne die ich wahrscheinlich kaum den Wiedereinstieg in das Lernen geschafft hätte und von denen ich auch während dem Studium stets Zuspruch und Unterstützung jeder Art erhielt. Ohne die gemeinsamen erholsamen Stunden mit meiner Freundin Miriam wäre das Studium und diese Arbeit sicherlich nicht vergleichbar erfolgreich gewesen. Ich möchte keine Minute mit Dir missen. Danke! An meine Referenten Prof. Dr. Wietzke und Prof. Dr. Kasper geht mein weiterer Dank für die fachlichen Freiheiten und die Unterstützung bei der Arbeit. Einen großen Anteil an der Lesbarkeit und den fachlichen Feinheiten hatten auch bei dieser Arbeit viele Heinzelmännchen. Allen voran Miriam Dobner, Walter Hauth, Michael Krauss, Sarah Dobner, Heinz Dobner, Heidrun Günzel, Daniel Günzel und, last but not least, Sergio Vergata. Vielen Dank für Eure Unterstützung! “Wege entstehen dadurch, dass man sie geht.”, Franz Kafka Literatur [BDT00] Bonabeau, E. ; Dorigo, M. ; Theraulaz, G.: Inspiration for optimization from social insect behaviour. In: Nature (2000), Nr. 406, S. 39–42 [BHS97] Bullnheimer, B. ; Hartl, R. ; Strauss, C.: A new rank-based version of the Ant System: A computational study / University of Viena, Institute of Management Science. 1997. – Forschungsbericht [Bin06] Bingmann, T.: Visualisierung großer Graphen / Institut für Theoretische Informatik Universität Karlsruhe. 2006. – Forschungsbericht [BoyoJ] Boysen, N.: Ameisenalgorithmen / Universität Hamburg. o.J. – Forschungsbericht [CDM91] Colorni, A. ; Dorigo, M. ; Maniezzo, V.: Distributed Optimization by Ant Colonies, 1991 [DG96] Dorigo, M. ; Gambardella, L.M.: Study of some Properties of Ant-Q. In: Parallel Problem Solving from Nature – PPSN IV. Berlin : Springer, 1996, S. 656–665 [DG97] Dorigo, M. ; Gambardella, L.M.: Ant Colony System: A Cooperative Learning Approach to the Traveling Salesman Problem. In: IEEE Transactions on Evolutionary Computation (1997), Nr. 1, S. 53–66 [Dij59] Dijkstra, E.W.: A note on Two Problems in Connexion with Graphs / Mathematisch Centrum Amsterdam. 1959. – Forschungsbericht Literatur 105 [DMC91] Dorigo, M. ; Maniezzo, V. ; Colorni, A.: Positive feedback as a search strategy / Dipartimento di Elettronica, Politecnico di Milano. 1991 ( 91–016). – Forschungsbericht [Dor92] Dorigo, M.: Optimization, Learning and Natural Algorithms, Dipartimento di Elettronica, Politecnico di Milano, Diss., 1992 [DS04] Dorigo, M. ; Stützle, T.: Ant Colony Optimization. First. Cambridge : The MIT Press, 2004 [Fli04] Fliensberg, I.C.M.: Route Planning Algorithms for Car Navigation, Technische Universiteit Eindhoven, Diss., 2004 [GHJV96] Gamma, E. ; Helm, R. ; Johnson, R. ; Vlissides, J.: Entwurfsmuster. Fifth. München : Addison Wesley, 1996 [HNR68] Hart, P.E. ; Nilsson, N.J. ; Raphael, B.: A Formal Basis for the Heuristic Determination of Minimum Cost Paths. In: Systems Science and Cybernetics, IEEE Transactions on (1968), Nr. 10.1109/TSSC.1968.300136, S. 100–107 [HW98] Hölldobler, B. ; Wilson, E.: The Ants. Second. Berlin : Springer, 1998 [ISO04] ISO: ISO 14825:2004. 2004. – Intelligent transport systems – Geographic Data Files (GDF) – Overall data specification [KML] Google KML Documentation. – URL: http://code.google.com/apis/kml/ (Abgerufen am 20. März 2008) [LC04] Lämmel, U. ; Cleve, J.: Künstliche Intelligenz. Second. München : Carl Hanser Verlag, 2004 [Men07] Menne, M.: Development and Integration of a Navigation Component into an Automotive Embedded System, Hochschule Darmstadt, Fachbereich Informatik, Masterthesis, 2007 Literatur [Möh99] 106 Möhring, R.: Verteilte Verbindungssuche im öffentlichen Personenverkehr: Graphentheoretische Modelle und Algorithmen / Technische Universität Berlin. 1999. – Forschungsbericht [MSS+ 05] Möhring, R. ; Schilling, H. ; Schütz, B. ; Wagner, D. ; Willhalm, T.: Partitioning Graphs to Speed Up Dijkstra’s Algorithm / Technische Universität Berlin, Universität Karlsruhe. 2005 ( 011–2005). – Forschungsbericht [Nav06] Navteq: Navteq’s GDF 3.0 Reference Manual v20.0. 2006 [Nie03] Niemann, H.: Klassifikation von Mustern. Second. Berlin : Springer, 2003 [Pyt05] Pytlak, P.: Evaluation of Multiagent Search Performance / University of Alberta. 2005. – Forschungsbericht [Rad04] Radeloff, D.: Ameisenalgorithmen / Universität Frankfurt. 2004. – Forschungsbericht. Proseminar Adaptive Systeme [Ren07] Renfordt, J.: Vorhersage von Reisezeiten in städtischen Ballungsräumen, Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, Diplomarbeit, 2007 [Sch85] Schwenke, W.: Ameisen - Der duftgelenkte Staat. First. Hannover : Landbuch Verlag, 1985 [SH97] Stützle, T. ; Hoos, H.: Improving the Ant-System: A detailed report on the MAX–MIN Ant System / TU Darmstadt, FG Intellektik. 1997 ( 96-12). – Forschungsbericht [SRK08] Seiffert, P. ; Reichert, A. ; Knirsch, A.: Integration of a navigation device into an existing InCar Multimedia Framework. Hochschule Darmstadt, Fachbereich Informatik, 2008 [SS05] Sanders, P. ; Schultes, D.: Genauer Hochleistungs-Routenplaner. In: Heidelberger Innovationsforum, 2005 Literatur [Ste94] 107 Stentz, A.: Optimal and Efficient Path Planning for Partially-Known Environments. In: IEEE International Conference on Robotics and Automation 1994 The Robotics Institute; Carnegie Mellon University; Pittsburgh, PA, 1994 [Wei07] Weicker, K.: Evolutionäre Algorithmen. Second. Wiesbaden : Teubner Verlag, 2007 [WPA] Wikipedia Artikel A*-Algorithmus. – URL: http://de.wikipedia.org/wiki/A*- Algorithmus (Abgerufen am 20. März 2008) [WT05] Wietzke, J. ; Tran, M.T.: Automotive Embedded Systeme. First. Berlin : Springer Verlag, 2005 [WWR01] Wehner, R. ; Wohlgemuth, S. ; Ronacher, B.: Odometry: The ups and downs of ant navigation. In: Nature (2001), Nr. 411, S. 795–798 c c In Abbildungen verwendetes Kartenmaterial 2008 Google – Kartendaten 2008 Tele Atlas