Hochschule Darmstadt

Größe: px
Ab Seite anzeigen:

Download "Hochschule Darmstadt"

Transkript

1 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 : Korreferent : Prof. Dr. J. Wietzke Prof. Dr. K. Kasper Ausgabedatum : Abgabedatum :

2 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

3 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.

4 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.

5 Symbolverzeichnis ACO ACO/SP AS AS/SP ACS ACS/SP EAS EAS/SP AS rank AS rank /SP MMAS n e i j (i, j) W eight i,j H H current H next Q t Ant Colony Optimization Ant Colony Optimization zur Bestimmung kürzester Wege Ant System Ant System zur Bestimmung kürzester Wege Ant Colony System Ant Colony System zur Bestimmung kürzester Wege Elitist Ant System Elitist Ant System zur Bestimmung kürzester Wege Rank-Based Ant System Rank-Based Ant System zur Bestimmung kürzester Wege MAX MIN Ant System Anzahl an Knoten im Graphen Anzahl an Kanten im Graphen Ein Knoten Nachbarknoten zu i Kante zwischen Knoten i und j Kantengewichtung Heuristisch bestimmte Entfernung zwischen Startknoten und Zielknoten Heuristisch bestimmte Entfernung zwischen aktuellem Knoten und Zielknoten Heuristisch bestimmte Entfernung zwischen Nachbarknoten und Zielknoten Ergebniswert einer qualitativ optimalen Lösung (i.d.r. heuristisch bestimmt) Aktuelle Iteration

6 v t max t nobest m m min k k Elitist τ τ i,j τ 0 τ η η i,j α β τ + τ k p i,j ρ ξ T T + T k T + t L L + L + t w r q 0 Maximale Anzahl an Iterationen im Algorithmus Anzahl an Iterationen ohne Verbesserung bis eine Stagnation erkannt wird Anzahl an künstlichen Ameisen Mindestanzahl an künstlichen Ameisen die für eine Iteration benötigt werden Eine künstliche Ameise Anzahl elitärer Ameisen Globale Information, Pheromon Abgelegte Pheromonmenge auf Kante zwischen Knoten i und j Initiale Pheromonmenge arithmetrisches Mittel aller Pheromonwerte Lokale Information, anwendungsspezifische Gewichtsgröße 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 Pheromonmege die aus der gefundenen Ameisenlösung resultiert Übergangswahrscheinlichkeit für Kante i, j Verwitterungsfaktor lokaler Verwitterungsfaktor Liste mit Kanten einer Tour Liste der Kanten der optimierten Tour Liste der Kanten der Lösung einer Ameise k Liste der Kanten der besten Tour in Iteration t Länge einer Tour Länge der optimierten Tour Länge der besten Tour in Iteration t Anzahl an berücksichtigten Ränge in AS rank Rang nach Lösungsqualität einer Ameisenlösung in AS rank Wahrscheinlichkeit zum direkten Nutzen vorhandenen Wissens q Zufallswert zum Bestimmen der konkreten Anwendung von q 0

7 vi J k i c c c + d d d + Q open Q closed n start n dest n prev Ausschlussliste besuchter Knoten der Ameise k in der Iteration i Qualitätsfaktor für zielgerichtete Suche Untere Qualitätsfaktorschranke für zielgerichtete Suche Obere Qualitätsfaktorschranke für zielgerichtete Suche Wertigkeitsfaktor für Straße Untere Wertigkeitsfaktorschranke für Straße Obere Wertigkeitsfaktorschranke für Straße Warteschlange für zu untersuchende Knoten Warteschlange für fertig untersuchte Knoten Startknoten Zielknoten Vorgängerknoten W eight i,nstart Entfernung zwischen Startknoten und aktuellem Knoten i

8 Inhaltsverzeichnis 1 Einleitung Motivation und Kontext Problemstellung und Zielsetzung Erzielte Ergebnisse Vorgehensweise Grundlagen Ameisen als natürliches Vorbild Kommunikation Orientierung Ablauf bei der Futtersuche Ameisenalgorithmen Ant System Algorithmus Ant Colony System Algorithmus Weitere ACO Algorithmen Gegenüberstellung Routingverfahren

9 Inhaltsverzeichnis viii Kartendaten im GDF Format Konventionelle Algorithmen Automotive Embedded Systeme Framework Navigationskomponente Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen Situation und ihre Anforderungen Initialisierung Pheromone Heuristischer Lösungswert Konstruktion der Touren Vermeidung von Abbrüchen Zielgerichtetes Suchen Streben nach höherwertigen Verbindungen Vermeidung von Stagnation Fehleinschätzungen Verhältnismäßige Initialisierung der Pheromone ACO plus Lokale Suche Optimierung im Umfeld der besten Lösung Kanten- statt Knotentabuisierung Zwischenfazit

10 Inhaltsverzeichnis ix 4 Implementierung der ACO Algorithmen Verwaltung der Kanteninformationen Künstliche Ameise Initialisierung Konstruktion der Tour Algorithmen Ant System Algorithmus Nebenläufiger Ant System Algorithmus Ant Colony System Algorithmus Elitist Ant System Algorithmus Rank-Based Ant System Algorithmus Komplexität Parametrisierung Integration in die Navigationskomponente Leistungsfähigkeiten der ACO/SP Algorithmen Allgemeines Aufteilung von Ameisenläufen auf Iterationen Gewichtung der globalen zur lokalen Information Lernverhalten im iterativen Verlauf Einfluss der Verwitterung auf die Optimierung Verwitterung mit Faktor ρ Verwitterung in ACS/SP

11 Inhaltsverzeichnis x 5.6 Verhalten nach Verkehrsstörung Ressourcenbedarf zur Laufzeit Fazit Resümee 97 7 Ausblick 99 A Anhang 101 A.1 Parametrisierung B Danksagung 103 Literatur 104

12 Abbildungsverzeichnis 2.1 Ablauf der Futtersuche bei Ameisen GDF Informationen aus Level 0 und Darmstadt aufgeteilt und organisiert in einem Quadtree ([Men07], Seite 39) API für Zugriff auf Straßennetzinformationen Radiale Ausdehnung des Dijkstra Algorithmus (Schema) Zielgerichtete Ausdehnung des A* Algorithmus (Schema) Vergleich zweier Graphen untersucht mit A* Algorithmus Kommerzieller Ansatz der Routenerzeugung (Schema) Aufbau Embedded Automotive System Komponenten des Framework in der Headunit Typische Struktur in einem Graphen eines Straßenmodells Falscheinschätzung der lokalen Information Fälle von vereinfachten Knotenübergängen Anzahl an Abbrüchen bei der Wegesuche in AS Vergleich von Abbruchhäufigkeiten mit und ohne Abbruchprävention Klassifizierung nach heuristischer Veränderung bei Standortwechsel

13 Abbildungsverzeichnis xii 3.7 Klassifizierung nach trigonometrischer Abweichung von Ideallinie bei Standortwechsel Funktionen zur Abbildung der Kursabweichung auf Übergangsqualität Effektivität von Funktionen im Vergleich (Versuch 1) Effektivität von Funktionen im Vergleich (Versuch 2) Abweichungen vom kürzesten Weg durch Bevorzugung höherwertiger Straßen Auswirkung des Lageparameters τ loc auf die Optimierungsqualität Auswirkung der Stagnationserkennung auf die Optimierungsqualität (Auszug) Auswirkung des Überprüfungsverfahrens auf die Optimierungsqualität Schleifenbildung bei Kanten- statt Knotentabuisierung Klasse CTrail Klasse CAnt Klasse CAlgorithmBase Vergleich zwischen Nebenläufiger AS/SP und AS/SP Integration der ACO in Navigationskomponente (hier ACS-Algorithmus) Aufteilung einer konstanten Anzahl von Ameisenläufen (Optimierung) Aufteilung einer konstanten Anzahl von Ameisenläufen (Aufwand) Optimierungsqualität bei konstantem α und variablem β Optimierungsqualität bei variablem α und konstantem β Lernverhalten über den iterativen Verlauf Qualität und Zeitaufwand der ersten Lösung Einfluss der Verwitterung auf die Optimierung

14 Abbildungsverzeichnis xiii 5.8 Einfluss der lokalen Verwitterung in ACS/SP auf die Optimierung Verhalten nach exemplarischer Verkehrsstörung auf der optimierten Route Verlauf des Ressourcenbedarf einer exemplarischen Optimierung mit ACO/SP. 95

15 Listings 2.1 Pseudocode des AS Algorithmus Pseudocode des ACS Algorithmus Pseudocode des Dijkstra Algorithmus Pseudocode der Tourkonstruktion in CAnt Pseudocode der Übergangsentscheidung in CAnt Pseudocode der Routenerzeugung in AntSystem::CAlgorithm Pseudocode der Pheromonaktualisierung in AntSystem::CAlgorithm Pseudocode der Routenerzeugung in AntSystemThread::CAlgorithm Pseudocode der Routenerzeugung in AntColonySystem::CAlgorithm Pseudocode der lokalen Pheromonaktualisierung in AntColonySystem::CAlgorithm Pseudocode der globalen Pheromonaktualisierung in AntColonySystem::CAlgorithm Pseudocode der Pheromonaktualisierung in ElitistAntSystem::CAlgorithm Pseudocode der Pheromonaktualisierung in RankedAntSystem::CAlgorithm 76

16 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

17 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.

18 1. Einleitung 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.

19 1. Einleitung 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.

20 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].

21 2. Grundlagen 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 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

22 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] 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

23 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

24 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

25 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 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

26 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 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 J k i 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 J k i 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 eight i,j 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. dar. 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: Die Wahrscheinlichkeit p k i,j p k i,j = l / T k i [τ i,j (t)] α [η i,j (t)] β (2.1) ([τ i,j (t)] α [η i,j (t)] β) 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

27 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 p k i,j bestimmt. Hierdurch wird die Suche auf den wahrscheinlichsten Weg konzentriert, ohne dass abseits gelegene Pfade benachteiligt werden Aktualisierung der Pheromonpfade Nachdem alle Ameisen eine Iteration abgeschlossen haben, also für jede Ameise k ein Lösung L k (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) Anschließend werden die neu zu verlegende Pheromonmengen τ k i,j(t) bestimmt (siehe Gleichung 2.3). Hierzu wird jede Ameisenlösung der aktuellen Iteration L k (t) bewertet, indem sie

28 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 L k (t) (2.3) 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). m τ i,j = τ i,j + τi,j(t) k (2.4) Kanten, die in keiner Lösung der aktuellen Iteration betreten wurden, bleiben von der Neubelegung unberührt ( τ i,j (t) = 0). k= 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 ([DS04], S. 70). Im nächsten Schritt Q 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 eight i,j der genutzten Kante auf das Gesamtgewicht der Tour L k t addiert. Wenn die Länge einer abgeschlossenen Tour einer Ameise L k 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 statt (Listing 2.1, Zeile 25ff). Danach beginnt eine neue Iteration mit t = t + 1 bis t = t max.

29 2. Grundlagen 15 1 //Initialisierung 2 Foreach Kante 3 τ i,j = τ 0 4 End Foreach 5 T + = 6 L + = 7 //Iterationsschleife 8 For t = 1 To t max 9 //Ameisenschleife 10 For k = 1 To m 11 T k = 12 L k = 0 13 //Tourkonstruktionsschleife 14 While i Not Destination 15 Wähle nächsten Knoten j gemäß Abschnitt T k j 17 L k = L k + W eight i,j 18 i = j 19 End While 20 If L + > L k 21 L + = L k 22 T + = T k 23 End If 24 End For 25 //Pheromonaktualisierung 26 For k = 1 to m 27 Aktualisiere Pheromone τ für Tour T k gemäß Abschnitt End For 29 End For Listing 2.1: Pseudocode des AS Algorithmus 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

30 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 Konstruktion der Touren Im ACS besteht bei jeder Übergangsentscheidung eine parametrisierte Wahrscheinlichkeit q 0 (0.0 q 0 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). argmax l / T k j = i {[τ i,l ] α [η i,l ] β}, q q 0 ; (2.5) J, ansonsten

31 2. Grundlagen 17 Der Zufallswert q (0.0 q 1.0 ) entscheidet hierbei, welche Art von Übergang durchgeführt wird. Über den Parameter q 0 kann nun gesteuert werden, ob die Ameisen sich im Gebiet der erlernten Route orientieren (großes q 0 ) oder nach neuen Wegen suchen (kleines q 0 ) sollen. Dorigo empfiehlt für q 0 = 0.9, das heißt statistisch wird zu 90% der höchst bewertete Knotenübergang direkt gewählt 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 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 beschrieben 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).

32 2. Grundlagen 18 Bei jedem Knotenübergang entscheidet die künstliche Ameise zufällig von neuem, ob sie erlerntes Wissen nutzt (q q 0 ) oder auch neue Wege in Betracht zieht (q > q 0 ). 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 //Initialisierung 2 Foreach Kante 3 τ i,j = τ 0 4 End Foreach 5 T + = 6 L + = 7 //Iterationsschleife 8 For t = 1 To t max 9 //Ameisenschleife 10 For k = 1 To m 11 T = 12 L = 0 13 //Tourkonstruktionsschleife 14 While i Not Destination 15 If( q q 0 ) 16 Wähle nächsten Knoten j mit höchster Wahrscheinlichkeit gemäß Abschnitt Else 18 Wähle nächsten Knoten j mit gewichtetem Zufall gemäß Abschnitt End If 20 Aktualisiere Pheromon τ i,j auf genutzter Kante gemäß Abschnitt T j 22 L = L + W eight i,j 23 i = j 24 End While 25 If L + > L 26 L + = L 27 T + = T 28 End If 29 End For 30 //Pheromonaktualisierung 31 Aktualisiere Pheromone τ für T + gemäß Abschnitt End For Listing 2.2: Pseudocode des ACS Algorithmus

33 2. Grundlagen 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 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 ( τ 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).

34 2. Grundlagen Rank-Based Ant System Algorithmus Eine zusätzliche Erweiterung von AS stellen Bullnheimer et al. als Rank-Based Ant System (AS rank ) 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). w 1 τ i,j = τ i,j + (w r) τi,j r + w τ + i,j (2.8) r=1 Bullnheimer et al. fanden mit AS rank 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 AS rank 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 Anzahl der pheromonablegenden Ameisen w liegt konstant bei sechs. 0.5 r (r 1). Die empfohlene ρ Q 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 ρ = Für die Initialisierung τ 0 bzw. Obergrenze τ max

35 2. Grundlagen 21 einen Wert von 1 bzw. 1 und als Untergrenze τ ρ Q ρ L + min = τ max (1 n 0.05), wobei avg die avg 1 durchschnittliche Anzahl an wegführenden Kanten von einem Knoten sind. Das heißt τ min geht bei zunehmender Zahl von Knoten und Komplexität gegen 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 AS rank 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

36 2. Grundlagen 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 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.

37 2. Grundlagen 23 Abbildung 2.2: GDF Informationen aus Level 0 und 1 Strategien hierzu werden in Abschnitt und das vorliegende binäre Kartenformat in Abschnitt 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 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.

38 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 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

39 2. Grundlagen 25 ein Point Feature mit dem Feature Code 4120 eine Kreuzung. Feature Codes von 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)

40 2. Grundlagen 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 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 (= 2 16 )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.

41 2. Grundlagen 27 Abbildung 2.3: Darmstadt aufgeteilt und organisiert in einem Quadtree ([Men07], Seite 39) Kartendaten in der Navigationskomponente Die in dieser Arbeit verwendete Navigationskomponente besitzt bereits ein aus GDF Daten erzeugtes binäres Kartenformat gemäß Abschnitt 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.

42 2. Grundlagen 28 Abbildung 2.4: API für Zugriff auf Straßennetzinformationen 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 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 Q open, in der alle Knoten n des Graphen G aufsteigend nach ihrer Entfernung vom Startknoten n start liegen und eine Liste Q closed für bewertete Knoten. Unbewertete Knoten haben eine Entfernung von. Jeder Knoten speichert im Weiteren seinen Vorgängerknoten n prev. Zum Start des Algorith-

43 2. Grundlagen 29 mus befindet sich n start mit einer Entfernung von 0 am Anfang von Q open. n start wird aus Q open 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 eight i,nstart mit dem Kantengewicht W eight i,j addiert wird. Sollte die bisher gefundene Entfernung für W eight j,nstart größer sein als W eight i,nstart + W eight i,j, so wird diese als neue Entfernung angenommen, i als Vorgängerknoten j prev für j gesetzt und der Knoten j in Q open wieder eingegliedert. Abschließend wird i in Q closed gelegt. Das Verfahren wird mit dem nächsten Knoten aus Q open wiederholt. Sobald der Zielknoten aus Q open entnommen wurde und in Q closed abgelegt, wurde ist der Algorithmus beendet. Zuletzt kann anhand der Knoten in Q closed vom Zielknoten n dest aus der Weg über die Vorgängerknoten zu n start rücktraversiert werden. Nachfolgend wird in Listing 2.3 der Algorithmus in Pseudocode dargestellt. 1 //Initialisierung 2 Q open G 3 Q closed = 4 //Bewertung 5 While n dest Not In Q closed 6 i = Pop( Q open ) 7 Foreach j In i 8 If W eight j,nstart > W eight i,nstart + W eight i,j 9 W eight j,nstart = W eight i,nstart + W eight i,j 10 j prev = i 11 Q open j 12 End If 13 End Foreach 14 End While 15 //Ruecktraversierung 16 T n dest 17 While T first Not n start 18 T first n 19 Shift n prev In T 20 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

44 2. Grundlagen 30 entscheidend von zwei Faktoren ab. Zum Einen wie viele Schleifeniterationen notwendig sind bis der Zielknoten aus Q open in Q closed ü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 n d aus Q open 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 n d in Q open untersucht, was einer linearen Suche entspricht, wobei Q open sich stets verkleinert und somit eine maximale Komplexität von O( n ) mit sich bringt. Das einsortierte Speichern 2 des Knoten in Q open erfordert ebenfalls eine maximale Komplexität gleich der derzeit in Q open befindlichen Knoten, also im Mittel O( n ). Da in jeder Iteration ein Knoten n bis zur 2 Entnahme des Zielknotens aus Q open 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 + n 2, d.h.o ( n 2) (2.9) 2 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]).

45 2. Grundlagen 31 Abbildung 2.5: Radiale Ausdehnung des Dijkstra Algorithmus (Schema) 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 Q open zum Speichern noch zu untersuchender Knoten und eine Liste Q closed zum Speichern der abgeschlossen untersuchten Knoten. Jeder Knoten speichert zusätzlich zur bisher zurückgelegten Entfernung W eight i,nstart eine heuristische Annahme zur verbleibenden Entfernung bis zum Zielknoten W eight heuristic n,n dest. 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. Q open 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 Q open befinden, bewertet. Sollte das derzeitige D j größer sein als das neue über i erreichbare, wird der Knoten aktualisiert und wieder in Q open hinzugefügt. Abschließend wird i

46 2. Grundlagen 32 in Q closed hinzugefügt. Auch im A* Algorithmus endet der Algorithmus, sobald n dest zu Q closed verschoben wurde. Die eigentliche Route kann über die gespeicherten Vorgängerknoten n prev vom Zielknoten rücktraversiert werden. D = W eight heuristic n,n dest + W eight i,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]).

47 2. Grundlagen 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)

48 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

49 2. Grundlagen 35 In den nachfolgenden Abschnitten sollen die Bestandteile des exemplarisch verwendeten Infotainmentsystems einführend beschrieben werden. Zunächst geht der Abschnitt auf die Softwarearchitektur des Frameworks ein, welches auf dem Infotainmentsystem zum Einsatz kommt. Anschließend wird in Abschnitt die Navigationskomponente, für welche die Routenerzeugung entwickelt wird, eingeführt 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.

50 2. Grundlagen 36 Abbildung 2.10: Komponenten des Framework in der Headunit 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 ) 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

51 2. Grundlagen 37 In der Routenerzeugung wird die Database und das Routing als Schnittstellen verwendet. Die Database Schnittstelle wurde in Abschnitt 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]).

52 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

53 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

54 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.

55 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 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 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.

56 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 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 behandelt. Abbildung 3.3: Fälle von vereinfachten Knotenübergängen 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

57 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 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

58 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 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-

59 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 p k i,j aus globalen und lokalen Informationen multipliziert (siehe Gleichung 3.1). Als Bewertungsfunktionen können unterschiedlich rechenintensive Verfahren mit verschiedenen Ergebnisgüten genutzt werden. p k i,j = p k i,j c (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 (H next ) von der geschätzten aktuellen Entfernung zum Zielknoten (H current ) 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.

60 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 +, H current H next 0; c = 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 (H current H next 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.

61 3. Kürzeste Wegesuche in einem Straßennetz mit Ameisenalgorithmen 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. ( ) AZ 2 + AN 2 NZ 2 cosγ = (3.3) 2 AZ AN 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.

62 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 2 y, 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

63 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 cos 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 cos 5 γ + 0.2, [0; 1]f(cosγ) = 0.8 cos 5 γ 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 2 y bei y = 4 erzielt werden. Ungeeignet sind die Potenzfunktionen mit ungeraden Exponenten, die natürlich logarithmische Funktion und

64 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

65 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 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.

66 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 p k i,j mit einfließt (siehe Gleichung 3.4). Die Parameter für den Wertebereich von d liegen bei d d d +. p k i,j = p k i,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

67 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

68 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 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

69 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).

70 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)

71 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 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

72 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 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 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

73 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 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

74 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.

75 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.

76 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 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

77 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 ) 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

78 4. Implementierung der ACO Algorithmen 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 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 Begin Function run() 2 //Ameise in den Startzustand versetzen 3 Reset() 4 //Von Knoten zu Knoten wandern 5 While currentnode Is Not destinationnode And stop Is Not True 6 If decidenextedge( nextedge ) Is True 7 move( nextedge ) 8 Else 9 //Dead End 10 If moveback() Is Not True 11 //Keine Route moeglich

79 4. Implementierung der ACO Algorithmen Return False 13 End If 14 End If 15 End While 16 //Route gefunden 17 Return True 18 End Function Listing 4.1: Pseudocode der Tourkonstruktion in CAnt Ü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 Begin Function decidenextedge( &nextedge ) 2 //Alle noch moeglichen Kanten bestimmen 3 getcurrentnodeedges( nextpossibleedges ) 4 //Vorbedingungen klaeren 5 If Size Of nextpossibleedges == 0 6 //Dead End 7 nextedge = 8 Return False 9 Else If Size Of nextpossibleedges == 1 10 //No Choice 11 nextedge = nextpossibleedges[0] 12 Return True 13 End If 14 //Wahrscheinlichkeiten berechnen 15 For Each edge In nextpossibleedges[] 16 mtrail.getglobal( edge, τ ) 17 mtrail.getlocal( edge, η, c, d ) 18 probabilities[edge] = τ α η c d 19 End For Each 20 //Entscheidung treffen 21 Random( 0.0 q 1.0 )

80 4. Implementierung der ACO Algorithmen If q q 0 And Not FirstIteration 23 nextedge = MaxArg(probabilities) 24 Return True 25 Else 26 Random( 0 chosenedge SumOf(probabilities) ) 27 nextedge = probabilities[ IndexOf(chosenEdge) ] 28 Return True 29 End If 30 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 die Potenzierung von τi,j α (η i,j wird bereits als Wert der Potenz mit dem Exponent β im Puffer geführt und muss nicht bei jeder Wahrscheinlichkeitsbestimmung neu berechnet werden) und anschließender Multiplikation mit den übrigen genannten Faktoren (siehe Abschnitte und 3.3.3). Nachdem für jeden Nachfolgeknoten die Übergangswahrscheinlichkeit p i,j bestimmt wurde, wird gemäß q 0 die erlernte oder eine gewichtet zufällige Kante ausgewählt. Die Vorauswahl kann für die AS Gruppe durch eine Parametrisierung von q 0 < 0.0 ausgenommen werden. Bei der gewichtet zufälligen Auswahl wird eine Zufallszahl [0.0; Σp i, ] erzeugt und auf die Auswahlwahrscheinlichkeiten der Kanten abgebildet. Die zugehörige Kante wird als Kante in den Konstruktionsprozess der künstlichen Ameise zurückgegeben.

81 4. Implementierung der ACO Algorithmen 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 AS rank /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

82 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 Ant System Algorithmus Die Implementierung des AS/SP Algorithmus entspricht der in Abschnitt vorgestellten Variante mit den in Kapitel 3 vorgestellten ACO/SP Modifikationen. Bei den Modifikationen kommen folgende zum Einsatz: Initialisierung der Pheromone, Abschnitt Heuristischer Lösungswert, Abschnitt Vermeidung von Abbrüchen, Abschnitt Zielgerichtete Suche, Abschnitt (optional) Streben nach höherwertigen Verbindungen, Abschnitt Vermeidung von Stagnation, Abschnitt 3.3.4

83 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 Begin Function start() 2 While mrun Is True 3 For Each Ant In Ants[] 4 If Ant.run() Is Not True 5 Return False 6 End If 7 Ant.getRoute( route ) 8 If analyzeroute( route ) Is True And betterroutefound Is False 9 betterroutefound = True 10 End If 11 End For Each 12 updatepheromone() 13 If betterroutefound Is True 14 stagnationcounter = 0 15 Else 16 stagnationcounter++ 17 If stagnationcounter > stagnationboundary 18 mtrail.resetglobal() 19 EndIf 20 End If 21 End While 22 Return True 23 End Function Listing 4.3: Pseudocode der Routenerzeugung in AntSystem::CAlgorithm

84 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 Begin Function updatepheromone() 2 mtrail.evaporate( evaporationfactor ) 3 For Each Ant In Ants[] 4 Ant.getRoute( route ) 5 quality = mheuristiccost / route.getcost() 6 For Each edge In route 7 mtrail.addglobal( edge, quality ) 8 End For Each 9 End For Each 10 End Function Listing 4.4: Pseudocode der Pheromonaktualisierung in AntSystem::CAlgorithm 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 m min künstlichen Ameisen betrachtet werden. Die übrigen nebenläufigen Ameisen werden vom Algorithmus vorzeitig beendet und ihre Teillösungen verworfen.

85 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 Hierzu gehören auch die in Abschnitt 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 Begin SharedMemory 2 Ants[m] 3 End SharedMemory 4 Begin Function start() 5 While mrun Is True 6 For Each Ant In Ants[] 7 CreateThread( Ant.run() ) 8 End For Each 9 SemaphoreWait(m min ) 10 For Each Ant In Ants[] 11 If Ant.getRoute( route ) Is True 12 If analyzeroute( route ) Is True And betterroutefound Is False 13 betterroutefound = True 14 End If 15 Else 16 Ant.stop() 17 End If

86 4. Implementierung der ACO Algorithmen End For Each 19 updatepheromone() 20 If betterroutefound Is True 21 stagnationcounter = 0 22 Else 23 stagnationcounter++ 24 If stagnationcounter > stagnationboundary 25 mtrail.resetglobal() 26 EndIf 27 End If 28 End While 29 Return True 30 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 Ant Colony System Algorithmus Die Implementierung des ACS/SP Algorithmus enthält alle Eigenschaften gemäß Abschnitt und die folgenden ACO/SP Modifikationen: Heuristischer Lösungswert, Abschnitt Vermeidung von Abbrüchen, Abschnitt Zielgerichtete Suche, Abschnitt (optional) Streben nach höherwertigen Verbindungen, Abschnitt 3.3.3

87 4. Implementierung der ACO Algorithmen 73 Abbildung 4.4: Vergleich zwischen Nebenläufiger AS/SP und AS/SP Die modifizierte Pheromoninitialisierung aus Abschnitt 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 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.

88 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 Begin Function start() 2 While mrun Is True 3 For Each Ant In Ants[] 4 If Ant.run() Is Not True 5 Return False 6 End If 7 Ant.getRoute( route ) 8 analyzeroute( route ) 9 updatepheromonelocal( route ) 10 End For Each 11 updatepheromone() 12 End While 13 Return True 14 End Function Listing 4.6: Pseudocode der Routenerzeugung in AntColonySystem::CAlgorithm 1 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

89 4. Implementierung der ACO Algorithmen Elitist Ant System Algorithmus In der Implementierung des EAS/SP Algorithmus sind alle Eigenschaften aus Abschnitt und folgende aus Kapitel 3 enthalten: Initialisierung der Pheromone, Abschnitt Heuristischer Lösungswert, Abschnitt Vermeidung von Abbrüchen, Abschnitt Zielgerichtete Suche, Abschnitt (optional) Streben nach höherwertigen Verbindungen, Abschnitt Vermeidung von Stagnation, Abschnitt 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 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 Begin Function updatepheromone() 2 mtrail.evaporate( evaporationfactor ) 3 For Each Ant In Ants[] 4 Ant.getRoute( route ) 5 quality = mheuristiccost / route.getcost() 6 For Each edge In route 7 mtrail.addglobal( edge, quality ) 8 End For Each 9 End For Each 10 quality = mheuristiccost / mbestroute.getcost() 11 quality *= PARAM_NROFELITISTANTS 12 For Each edge In mbestroute 13 mtrail.addglobal( edge, quality ) 14 End For Each 15 End Function Listing 4.9: Pseudocode der Pheromonaktualisierung in ElitistAntSystem::CAlgorithm

90 4. Implementierung der ACO Algorithmen Rank-Based Ant System Algorithmus Die Implementierung des AS rank /SP Algorithmus entspricht der des Abschnitts mit den Erweiterungen aus Kapitel 3 zur kürzesten Wegesuche. Zu den Erweiterungen gehören wiederum die nachfolgend aufgeführten: Initialisierung der Pheromone, Abschnitt Heuristischer Lösungswert, Abschnitt Vermeidung von Abbrüchen, Abschnitt Zielgerichtete Suche, Abschnitt (optional) Streben nach höherwertigen Verbindungen, Abschnitt Vermeidung von Stagnation, Abschnitt Da auch der AS rank /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 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 AS rank /SP Algorithmus mit dem höchsten Rang bewertet und ihren Kanten entsprechend hohe Pheromonwerte hinzugefügt (Listing 4.10, Zeile 12). 1 Begin Function updatepheromone() 2 mtrail.evaporate( evaporationfactor ) 3 OrderByCosts( Ants ) 4 For r=w-1 ; r > 0 ; r-- 5 Ants[w-r-1].getRoute( route ) 6 quality = mheuristiccost / route.getcost() 7 quality *= r 8 For Each edge In route 9 mtrail.addglobal( edge, quality )

91 4. Implementierung der ACO Algorithmen End For Each 11 End For 12 quality = mheuristiccost / mbestroute.getcost() 13 quality *= w 14 For Each edge In mbestroute 15 mtrail.addglobal( edge, quality ) 16 End For Each 17 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

92 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 (n 2 ). 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

93 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) AS rank 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 (n 2 ) Verwitterung O ((n 1)!) Pheromonablage O (n) Tabelle 4.3: Zeitkomplexitäten der Pheromonablage der ACO/SP Algorithmen

94 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 ) Auswahl der Funktion zur Abbildung von cosγ auf Abweichungsfaktor bei zielgerichteter Suche (Abschnitt ) 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)

95 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 q 0 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,

96 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.

97 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.

98 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 AS rank /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 AS rank. 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 AS rank 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.

99 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 AS rank 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.

100 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.

101 5. Leistungsfähigkeiten der ACO/SP Algorithmen 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-

102 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).

103 5. Leistungsfähigkeiten der ACO/SP Algorithmen 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 AS rank 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 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 % gegenüber dem

104 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.

105 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 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

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik Abitur 8 II. Insektenpopulation LA/AG In den Tropen legen die Weibchen einer in Deutschland unbekannten Insektenpopulation jedes Jahr kurz vor Beginn der Regenzeit jeweils 9 Eier und sterben bald darauf.

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Die reellen Lösungen der kubischen Gleichung

Die reellen Lösungen der kubischen Gleichung Die reellen Lösungen der kubischen Gleichung Klaus-R. Löffler Inhaltsverzeichnis 1 Einfach zu behandelnde Sonderfälle 1 2 Die ganzrationale Funktion dritten Grades 2 2.1 Reduktion...........................................

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Hinweise zur Anfertigung der Masterarbeit im Studiengang Physische Geographie der Goethe-Universität Frankfurt am Main

Hinweise zur Anfertigung der Masterarbeit im Studiengang Physische Geographie der Goethe-Universität Frankfurt am Main Prüfungsausschuss des Master-Studiengangs Physische Geographie Hinweise zur Anfertigung der Masterarbeit im Studiengang Physische Geographie der Goethe-Universität Frankfurt am Main Die Masterarbeit wird

Mehr

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege Lange Nacht der Wissenschaft Ein Klassiker Die Mathematik der Kürzesten Wege 09.06.2007 schlechte@zib.de Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) http://www.zib.de/schlechte 2 Überblick

Mehr

Insiderwissen 2013. Hintergrund

Insiderwissen 2013. Hintergrund Insiderwissen 213 XING EVENTS mit der Eventmanagement-Software für Online Eventregistrierung &Ticketing amiando, hat es sich erneut zur Aufgabe gemacht zu analysieren, wie Eventveranstalter ihre Veranstaltungen

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

WinVetpro im Betriebsmodus Laptop

WinVetpro im Betriebsmodus Laptop WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online

Mehr

Mean Time Between Failures (MTBF)

Mean Time Between Failures (MTBF) Mean Time Between Failures (MTBF) Hintergrundinformation zur MTBF Was steht hier? Die Mean Time Between Failure (MTBF) ist ein statistischer Mittelwert für den störungsfreien Betrieb eines elektronischen

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

Umgang mit Schaubildern am Beispiel Deutschland surft

Umgang mit Schaubildern am Beispiel Deutschland surft -1- Umgang mit Schaubildern am Beispiel Deutschland surft Im Folgenden wird am Beispiel des Schaubildes Deutschland surft eine Lesestrategie vorgestellt. Die Checkliste zur Vorgehensweise kann im Unterricht

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Plotten von Linien ( nach Jack Bresenham, 1962 )

Plotten von Linien ( nach Jack Bresenham, 1962 ) Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels

Mehr

Optimierung und Fertigung eines Bogenmittelteils aus einer Magnesiumlegierung

Optimierung und Fertigung eines Bogenmittelteils aus einer Magnesiumlegierung 363 Optimierung und Fertigung eines Bogenmittelteils aus einer Magnesiumlegierung Jürgen Edelmann-Nusser 1 (Projektleiter), Sándor Vajna 2 & Konstantin Kittel 2 1 Universität Magdeburg, Institut für Sportwissenschaft

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6 Inhalt 1. Einführung 2 2. Erstellung einer Teillieferung 2 3. Erstellung einer Teilrechnung 6 4. Erstellung einer Sammellieferung/ Mehrere Aufträge zu einem Lieferschein zusammenfassen 11 5. Besonderheiten

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Es kann maximal ein Prozess die Umladestelle benutzen.

Es kann maximal ein Prozess die Umladestelle benutzen. SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Dokumentation zur Versendung der Statistik Daten

Dokumentation zur Versendung der Statistik Daten Dokumentation zur Versendung der Statistik Daten Achtung: gem. 57a KFG 1967 (i.d.f. der 28. Novelle) ist es seit dem 01. August 2007 verpflichtend, die Statistikdaten zur statistischen Auswertung Quartalsmäßig

Mehr

Chemie Zusammenfassung KA 2

Chemie Zusammenfassung KA 2 Chemie Zusammenfassung KA 2 Wärmemenge Q bei einer Reaktion Chemische Reaktionen haben eine Gemeinsamkeit: Bei der Reaktion wird entweder Energie/Wärme frei (exotherm). Oder es wird Wärme/Energie aufgenommen

Mehr

Künstliche Intelligenz Maschinelles Lernen

Künstliche Intelligenz Maschinelles Lernen Künstliche Intelligenz Maschinelles Lernen Stephan Schwiebert Sommersemester 2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Maschinelles Lernen Überwachtes Lernen

Mehr

2 Aufbau der Arbeit und wissenschaftliche Problemstellung

2 Aufbau der Arbeit und wissenschaftliche Problemstellung 2 Aufbau der Arbeit und wissenschaftliche Problemstellung Nach der Definition der grundlegenden Begriffe, die in dieser Arbeit verwendet werden, soll die Ausbildung, wie sie von der Verfasserin für Schüler

Mehr

Umsatz-Kosten-Treiber-Matrix. 2015 Woodmark Consulting AG

Umsatz-Kosten-Treiber-Matrix. 2015 Woodmark Consulting AG Umsatz-Kosten-Treiber-Matrix Die Alpha GmbH ist ein Beratungsunternehmen mit 43 Mitarbeitern. Der Umsatz wird zu 75% aus IT-Beratung bei Kunden vor Ort und vom Betrieb von IT-Applikationen erwirtschaftet.

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

Quadratische Gleichungen

Quadratische Gleichungen Quadratische Gleichungen Aufgabe: Versuche eine Lösung zu den folgenden Zahlenrätseln zu finden:.) Verdoppelt man das Quadrat einer Zahl und addiert, so erhält man 00..) Addiert man zum Quadrat einer Zahl

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor!

Mehr Geld verdienen! Lesen Sie... Peter von Karst. Ihre Leseprobe. der schlüssel zum leben. So gehen Sie konkret vor! Peter von Karst Mehr Geld verdienen! So gehen Sie konkret vor! Ihre Leseprobe Lesen Sie...... wie Sie mit wenigen, aber effektiven Schritten Ihre gesteckten Ziele erreichen.... wie Sie die richtigen Entscheidungen

Mehr

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen. 13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen. Sie heißt linear, wenn sie die Form y (n) + a n 1 y (n 1)

Mehr

Reizdarmsyndrom lindern

Reizdarmsyndrom lindern MARIA HOLL Reizdarmsyndrom lindern Mit der Maria-Holl-Methode (MHM) Der ganzheitliche Ansatz 18 Wie Sie mit diesem Buch Ihr Ziel erreichen Schritt 1: Formulieren Sie Ihr Ziel Als Erstes notieren Sie Ihr

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Teambildung. 1 Einleitung. 2 Messen der Produktivität

Teambildung. 1 Einleitung. 2 Messen der Produktivität 1 Einleitung Teambildung In der Entwicklung, speziell bei hohem Softwareanteil, stellen Personalkosten den primären Kostenanteil dar. Daher ist es wichtig, den Personalbedarf optimal zu bestimmen. You

Mehr

Das Mathematik-Abitur im Saarland

Das Mathematik-Abitur im Saarland Informationen zum Abitur Das Mathematik-Abitur im Saarland Sie können Mathematik im Abitur entweder als grundlegenden Kurs (G-Kurs) oder als erhöhten Kurs (E-Kurs) wählen. Die Bearbeitungszeit für die

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

AUTOMATISIERTE HANDELSSYSTEME

AUTOMATISIERTE HANDELSSYSTEME UweGresser Stefan Listing AUTOMATISIERTE HANDELSSYSTEME Erfolgreich investieren mit Gresser K9 FinanzBuch Verlag 1 Einsatz des automatisierten Handelssystems Gresser K9 im Portfoliomanagement Portfoliotheorie

Mehr

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R L Ö S U N G E N Seite 7 n Wenn vier Menschen auf einem Quadratmeter stehen, dann hat jeder eine Fläche von 50 mal 50 Zentimeter

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Benutzerhandbuch - Elterliche Kontrolle

Benutzerhandbuch - Elterliche Kontrolle Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

FAQ 04/2015. Auswirkung der ISO 14119 auf 3SE53/3SF13 Positionsschalter. https://support.industry.siemens.com/cs/ww/de/view/109475921

FAQ 04/2015. Auswirkung der ISO 14119 auf 3SE53/3SF13 Positionsschalter. https://support.industry.siemens.com/cs/ww/de/view/109475921 FAQ 04/2015 Auswirkung der ISO 14119 auf 3SE53/3SF13 Positionsschalter mit https://support.industry.siemens.com/cs/ww/de/view/109475921 Dieser Beitrag stammt aus dem Siemens Industry Online Support. Es

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten bedingten Wahrscheinlichkeit. Mathematik- Unterrichts- Einheiten- Datei e. V. Klasse 9 12 04/2015 Diabetes-Test Infos: www.mued.de Blutspenden werden auf Diabetes untersucht, das mit 8 % in der Bevölkerung verbreitet ist. Dabei werden

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Ihr Weg in die Suchmaschinen

Ihr Weg in die Suchmaschinen Ihr Weg in die Suchmaschinen Suchmaschinenoptimierung Durch Suchmaschinenoptimierung kann man eine höhere Platzierung von Homepages in den Ergebnislisten von Suchmaschinen erreichen und somit mehr Besucher

Mehr

Dokumentation. estat Version 2.0

Dokumentation. estat Version 2.0 Dokumentation estat Version 2.0 Installation Die Datei estat.xla in beliebiges Verzeichnis speichern. Im Menü Extras AddIns... Durchsuchen die Datei estat.xla auswählen. Danach das Auswahlhäkchen beim

Mehr

DUALIS Web-Client Kurzanleitung für Studierende

DUALIS Web-Client Kurzanleitung für Studierende DUALIS Web-Client Kurzanleitung für Studierende Das neue Verwaltungsinformationssystem DUALIS der DHBW bietet eine Web-Schnittstelle an, die es Ihnen als Studierenden der DHBW ermöglicht, jederzeit Einsicht

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme Eines der am häufigsten auftretenden Standardprobleme der angewandten Mathematik ist das Lösen linearer Gleichungssysteme, etwa zur Netzwerkberechnung in der Elektrotechnik oder

Mehr

Jederzeit Ordnung halten

Jederzeit Ordnung halten Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das

Mehr

Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen!

Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen! Stefan Böttner (SB4) März 2013 Universal Gleismauer Set von SB4 mit Tauschtextur u. integrierten Gleismauerabschlüssen! Verwendbar ab EEP7.5(mitPlugin5) + EEP8 + EEP9 Abmessung: (B 12m x H 12m) Die Einsatzhöhe

Mehr

Kulturelle Evolution 12

Kulturelle Evolution 12 3.3 Kulturelle Evolution Kulturelle Evolution Kulturelle Evolution 12 Seit die Menschen Erfindungen machen wie z.b. das Rad oder den Pflug, haben sie sich im Körperbau kaum mehr verändert. Dafür war einfach

Mehr

A Lösungen zu Einführungsaufgaben zu QueueTraffic

A Lösungen zu Einführungsaufgaben zu QueueTraffic A Lösungen zu Einführungsaufgaben zu QueueTraffic 1. Selber Phasen einstellen a) Wo im Alltag: Baustelle, vor einem Zebrastreifen, Unfall... 2. Ankunftsrate und Verteilungen a) poissonverteilt: b) konstant:

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

1. EINLEITUNG 2. GLOBALE GRUPPEN. 2.1. Globale Gruppen anlegen

1. EINLEITUNG 2. GLOBALE GRUPPEN. 2.1. Globale Gruppen anlegen GLOBALE GRUPPEN 1. EINLEITUNG Globale Gruppen sind system- oder kategorieweite Gruppen von Nutzern in einem Moodlesystem. Wenn jede Klasse einer Schule in eine globale Gruppe aufgenommen wird, dann kann

Mehr

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

Mehr

Durch diese Anleitung soll eine einheitliche Vorgehensweise bei der Vermessung und Bewertung von Golfplätzen sichergestellt werden.

Durch diese Anleitung soll eine einheitliche Vorgehensweise bei der Vermessung und Bewertung von Golfplätzen sichergestellt werden. Da die Länge der Spielbahnen auch unter dem Course-Rating-System (CRS) das wichtigste Bewertungskriterium für einen Golfplatz darstellt, ist die korrekte Vermessung der Spielbahnen eine unverzichtbar notwendige

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

BaseCamp OS X, Zümo 590 und die unterschiedliche Punkte in einer Route:

BaseCamp OS X, Zümo 590 und die unterschiedliche Punkte in einer Route: BaseCamp OS X, Zümo 590 und die unterschiedliche Punkte in einer Route: Es gibt 2 verschieden Punkte die zur Routenerstellung in BaseCamp OS X, Zümo 590 zur Verwendung kommen: Wegpunkte/Zwischenziele mit

Mehr

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Südbaden-Cup. Ausstieg Champions

Südbaden-Cup. Ausstieg Champions Südbaden-Cup Ausstieg Champions Beschreibung Der Ausstieg aus dem Turnier dient Spielern die eine weite Anreise haben sich aus dem Turnier zu verabschieden um noch am gleichen Tag heimzureisen und einen

Mehr

Bewertung des Blattes

Bewertung des Blattes Bewertung des Blattes Es besteht immer die Schwierigkeit, sein Blatt richtig einzuschätzen. Im folgenden werden einige Anhaltspunkte gegeben. Man unterscheidet: Figurenpunkte Verteilungspunkte Längenpunkte

Mehr

QM: Prüfen -1- KN16.08.2010

QM: Prüfen -1- KN16.08.2010 QM: Prüfen -1- KN16.08.2010 2.4 Prüfen 2.4.1 Begriffe, Definitionen Ein wesentlicher Bestandteil der Qualitätssicherung ist das Prüfen. Sie wird aber nicht wie früher nach der Fertigung durch einen Prüfer,

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Lineare Differentialgleichungen erster Ordnung erkennen

Lineare Differentialgleichungen erster Ordnung erkennen Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Mobile Intranet in Unternehmen

Mobile Intranet in Unternehmen Mobile Intranet in Unternehmen Ergebnisse einer Umfrage unter Intranet Verantwortlichen aexea GmbH - communication. content. consulting Augustenstraße 15 70178 Stuttgart Tel: 0711 87035490 Mobile Intranet

Mehr

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Steinerbäume

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Steinerbäume Paper Computer Science Experiment Great Principles of Computing Computation (NP-Vollständigkeit) Thema Steinerbäume Unterrichtsform Entdeckendes Lernen, Einzelarbeit, Lernen am Modell Voraussetzung Bäume

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien Sie haben von der VR DISKONTBANK GmbH ein signiertes PDF-Dokument (i.d.r. eine Zentralregulierungsliste mit dem Status einer offiziellen Rechnung) erhalten und möchten nun die Signatur verifizieren, um

Mehr