h_da Fachbereich Informatik

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