Globaler Optimierungsalgorithmus für überlagerungsfreie Darstellung von Objekten in der neuen Elektronischen Unfallsteckkarte des Kuratorium für Verkehrssicherheit Dieter SÜSS und Klaus MACHATA Zusammenfassung In der Elektronischen Unfallsteckkarte des Kuratorium für Verkehrssicherheit werden Verkehrsunfälle mittels einer GIS-Anwendung grafisch visualisiert. Ein Algorithmus wird vorgestellt, der Unfallcluster bezüglich ihrer Darstellung optimiert. Überlappungen werden vermieden, indem abstoßende Kräfte zwischen den Unfallclustern eingeführt werden. Für die Lösung dieses Optimierungsproblems erweist sich die Methode des Simulated Annealing als äußerst erfolgreich. 1 Einleitung Um Unfalldaten in geeigneter Form zu visualisieren, wurde vom Kuratorium für Verkehrssicherheit (KfV) Mitte der 90er-Jahre die Elektronische Unfallsteckkarte entwickelt. Damit können die in Unfalldatenbanken abgelegten Verkehrsunfalldaten grafisch visualisiert werden, um rasch einen Überblick über das Unfallgeschehen zu geben. Abb. 1: Bei der herkömmlichen Darstellungsart werden die Unfälle senkrecht zur Straßenachse aufgefädelt. Mögliche Überschneidungen führen zu unübersichtlichen Darstellungen (links). Der entwickelte Algorithmus findet auch bei sehr großen Unfallzahlen eine überlappungsfreie Anordnung der Unfallcluster. Somit können Beschriftungen neben den Unfallsymbolen problemlos angebracht werden (rechts). In der bisherigen Lösung (ArcView 3.2) wurden Unfallcluster auf Bänder im Winkel von 90 von der Straßenachse aufgefädelt, was speziell auf Kreuzungen oder kurvenreichen Straßenstücken zu Überdeckungen und erheblichem Nachbearbeitungsaufwand führte (Ab-
Globaler Optimierungsalgorithmus für überlagerungsfreie Darstellung von Objekten 669 bildung 1 links). Darüber hinaus zeigt das System bei der gleichzeitigen Bearbeitung großer Datensätze Geschwindigkeitsprobleme, die in der beschränkten Leistungsfähigkeit von ArcView/Avenue begründet sind. Dies gab den Anstoß, das System in Hinblick auf Benutzerfreundlichkeit und Performance völlig neu zu gestalten. Das vorliegende Softwarepaket wurde als MS SQL-Serverlösung unter Visual Basic 6.0 und MapObjects 2.1 entwickelt, wobei zeitkritische Routinen unter C++ realisiert wurden. Das System ist so gestaltet, dass vom Benutzer keinerlei GIS-Vorwissen vorausgesetzt wird. Die verwendeten Symboliken und Labels können nun sehr flexibel gewählt und kombiniert sowie Detailabfragen direkt aus der grafischen Oberfläche gestartet werden. Um eventuelle Überlappungen der Unfallcluster zu vermeiden, wurde ein Optimierungsalgorithmus entwickelt, der zu übersichtlichen Darstellungen führt und somit jede Nachbearbeitung überflüssig macht (Abbildung 1 rechts). Das folgende Kapitel beschreibt die Grundidee des Algorithmus sowie Details für dessen Implementierung. Im letzten Kapitel wird ein Anwendungsbeispiel präsentiert und die Performance des Algorithmus getestet. 2 Prinzip des Optimierungsalgorithmus Ausgehend von der räumlichen Verteilung von Unfallpunkten, die mittels kartesischer Koordinaten verortet werden, wird in einem ersten Schritt eine Klasseneinteilung der Unfallpunkte vorgenommen. Unfälle, deren gegenseitiger Abstand kleiner als r crit ist, werden zu einem Unfallcluster zusammengefasst und auf Bänder aufgefädelt. Um den Rechenaufwand der für die Clusterbildung notwendigen Nachbarschaftssuche zu minimieren, wird das Grundgebiet in einen Raster mit Maschenweite r crit zerlegt. Sollen nun alle Punkte aufgelistet werden, die von einem gegebenen Unfallpunkt A (es sei angenommen, A befinde sich in Zelle C 1 ) einen Abstand kleiner als r crit haben, muss nun nicht der Abstand zu allen Unfallpunkten berechnet werden. Lediglich die Punkte in der Zelle C 1 und die Punkte in den acht Nachbarzellen von C 1 müssen in Betracht gezogen werden. Der Suchaufwand wird somit von der Ordnung (N²), die die direkte Suchmethode ohne Zellenaufteilung benötigt, auf die Ordnung (N) reduziert, wobei N die Anzahl der Unfallpunkte ist. Details für die Nachbarschaftssuche mit der Liked-Cell Methode ist in GRIEBEL, KNAPEK, ZUMBUSCH & CAGLAR (2003) zu finden. Die Unfallpunkte jedes Unfallclusters werden auf Bänder aufgefädelt. Der Ursprung eines Bandes ergibt sich aus dem arithmetischen Mittelwert der Koordinaten der Unfallpunkte. Ein Nächster-Nachbar-Suchalgorithmus, der auf einem kd-suchbaum beruht (BENTLEY 1975), wird angewandt, um den nächstgelegenen Straßenpunkt zu dem Ursprung eines Unfallbandes zu finden. Um Überschneidungen der Unfallbänder zu vermeiden, muss ein Optimierungsproblem gelöst werden. 2.1 Zielfunktion Für das gegebene Optimierungsproblem ist es zweckmäßig, eine Zielfunktion einzuführen, die das subjektive Empfinden der Qualität der Darstellung in eine Zahl Z umwandelt. Im
670 D. Süss und K. Machata vorgestellten Algorithmus wird die Zielfunktion Z als Summe von zwei Funktion Z 1 und Z 2 zusammengesetzt, Z = Z 1 + Z 2 Z 1 ist indirekt proportional zum durchschnittlichen Abstand der Unfallcluster. Dadurch werden nicht nur Überschneidungen vermieden, sondern auch große Abstände zwischen den Unfallclustern gewährleistet. Dadurch können Beschriftungen problemlos neben den Unfallsymbolen angebracht werden. Für die mathematische Berechnung der Zielfunktion Z 1 wird jedem Verkehrsunfall eine effektive Ladung zugeschrieben. Die Ladungen stoßen einander ab, wodurch Überschneidungen vermieden werden. Die Funktion Z 1 entspricht der Energie des Systems. Die Energie zwischen Unfallcluster i und Unfallcluster j ist gegeben durch, wobei k E ij x v ( = N i N j k= 1 l= 1 xk 1 v v, y 4 l y v l ) die kartesischen Koordinaten der Unfälle und N i (Nj ) die Zahl der Unfälle auf Unfallcluster i (Unfallcluster j) beschreibt. Die gesamte Energie des Systems und somit Z 1 ergibt sich aus der Summe über alle Unfallcluster 1 Z C C 1 = E km, k= 1 m= 1 m k wobei C die Gesamtzahl der Unfallcluster bezeichnet. Um die Unfallcluster bevorzugt rechtwinkelig zur Straße anzuordnen, wird der zusätzliche Energieterm Z 2 eingeführt. Z 2 ist eine Funktion des Winkels w i, der zwischen dem Unfallband i und der Straßenachse gemessen wird. Der minimale Wert entspricht einer rechtwinkeligen Anordnung. Mit steigender Abweichung von 90 steigt der Wert der Zielfunktion Z 2. Z C 1 2 2 = sin ( w 4 i ) i= 1 a. Mit dem Parameter a kann Z 2 relativ zu Z 1 gewichtet werden. Eine gute Wahl für a ist ein Wert in der Größenordnung des Abstands zwischen benachbarten Unfallbändern. 2.2 Suche des globalen Minimums Simulated Annealing Das Problem wurde somit auf die Suche nach dem globalen Minimum der Zielfunktion Z fokussiert. Eine Methode für das Auffinden globaler Extremwerte, die erfolgreich in diversen Optimierungsproblemen angewendet (KIRKPATRICK 1983) wird, ist Simulated Anne- 1 Um die Rechenzeit zu verkürzen, wurde im implementierten Algorithmus nicht die Wechselwirkung zwischen allen Unfallclustern berechnet. Zwei Unfallcluster, deren Abstand groß genug ist, um mögliche Überschneidungen prinzipiell ausschließen zu können, wurden bei der Berechnung der Zielfunktion nicht berücksichtigt.
Globaler Optimierungsalgorithmus für überlagerungsfreie Darstellung von Objekten 671 aling. Bei einer Optimierung mittels Simulated Annealing werden folgende Schritte durchgeführt: 1. Initialisiere die Unfallcluster rechtwinkelig zur Straßenachse. 2. Setze die Temperatur T auf einen anfänglich hohen Wert. 3. Wiederhole die folgenden Schritte, bis die Temperatur T auf 0 gesunken ist. Erniedrige die Temperatur T gemäß der gewählten Abkühlrate. Wähle zufällig einen Unfallcluster aus und setze ihn in eine neue Richtung (Versuchsschritt). Berechne die Änderung der Energie E verursacht durch den Versuchsschritt Ist die Energie gesunken, akzeptiere den Versuchsschritt. Ist die Energie gestiegen, verwerfe, mit der Wahrscheinlichkeit P = 1 exp( E / T ), den Versuchsschritt und stelle die ursprüngliche Konfiguration her. Die Anzahl der Wiederholungen der Schritte, die im obigen Schema unter Punkt 3 aufgelistet wurden, werden als Monte-Carlo-Schritte (MCS) bezeichnet. Bei einem Monte- Carlo- Schritt wird für jeden Unfallcluster ein Versuchschritt durchgeführt. Die Methode des Simulated Annealing ist eine heuristische Methode und es kann keine optimale Wahl für die Anfangstemperatur und die Abkühlrate angegeben werden. Untersuchungen zeigen, dass gute Lösungen bei einer Anfangstemperatur erzielt werden, die zu P = 0.25 führt. Das heißt, Versuchsschritte die zu einer Erhöhung der Energie führen, werden zu 75 % akzeptiert. In den durchgeführten Simulationen wurde eine lineare Abkühlrate als Funktion der Zeit angenommen. Die Performance der Methode hängt signifikant von der Art der Versuchsschritte ab. HINZKE et al (HINZKE & NOWAK 1998) schlagen für die Simulation von Magnetsystemen drei Versuchsschritte vor, die wie folgt für das gegebene Problem formuliert werden können: 1. Wähle die Richtung des Unfallclusters zufällig 2. Drehe den Unfallcluster um 180 3. Drehe den Unfallcluster um 1 (zufällig mit oder gegen den Uhrzeigersinn) 3 Anwendung und Test der Performance Um den entwickelten Optimierungsalgorithmus bezüglich seiner Performance zu testen, wurden Verkehrsunfälle aus einem Zeitraum von zehn Jahren in der Umgebung von Wien verortet und grafisch dargestellt. Es handelt sich dabei um 4.849 Unfälle, die in 2.347 Unfallcluster eingeteilt wurden. Ein Detailausschnitt des betrachteten Gebietes ist in den Karten von Abbildung 2 zu sehen. Bei der herkömmlichen Darstellung werden die Unfallcluster senkrecht zur Straßenachse aufgefädelt. Diese Darstellung ist äußerst unübersichtlich (Abbildung 2 links oben) und führt im gesamten Gebiet zu 38 Überschneidungen der Unfallcluster. Nach nur einem MCS sinkt die Anzahl der Überschneidungen auf zwei (rechts oben). Ab drei MCS treten im gesamten Gebiet keine Überlappungen auf. Die Darstellung ist jedoch noch unbefriedigend, wie in Abbildung 2 links unten zu sehen ist. Eine optisch ansprechende Lösung wird bereits nach 20 MCS-Schritten erhalten (rechts unten). Da der Abstand zwischen den Unfallbändern maximiert wurde, können problemlos Beschriftungen neben den Unfallsymbolen angebracht werden.
672 D. Süss und K. Machata 0 MCS: 38 Überlappungen; E = 8.32 x 10 3 1 MCS: 2 Überlappungen; E = -1.29 x 10-2 5 MCS: 0 Überlappungen; E = -1.39 x 10-2 20 MCS: 0 Überlappungen; E = -1.41 x 10-2 Abb. 2: Links oben: Bei der herkömmlichen Darstellungsart werden die Unfälle senkrecht zur Straßenachse aufgefädelt. Mögliche Überschneidungen führen zu unübersichtlichen Grafiken. Die Karten (rechts oben) und (links unten) repräsentieren die berechneten Lösungen nach einem beziehungsweise fünf Optimierungsschritten. Nach 20 MCS wird eine ansprechende Lösung gefunden, bei der der Abstand zwischen den Unfallclustern maximal ist (rechts unten). Somit können Beschriftungen neben den Unfallsymbolen problemlos angebracht werden. Die Qualität der Darstellung kann durch den Wert der Energie (Zielfunktion) beschrieben werden, die einer Darstellung zugeschrieben werden kann. In Abbildung 3 kann gezeigt werden, dass die Energie exponentiell mit der Anzahl der MCS abnimmt. Für das betrachtete System wird nach zehn MCS ein Zustand erreicht, der nahe dem globalen Minimum ist. Weitere MCS führen nur noch zu einer geringen Verbesserung der Darstellung. Die Rechenzeit hängt linear sowohl mit der Anzahl der Monte-Carlo-Schritte als auch mit der Anzahl der Unfallcluster zusammen. Für die Optimierung der Darstellung von 4.849 Unfällen mit 20 MCS beträgt die Rechenzeit (Intel Pentium 4 mit 2.8 GHZ) 3.2 Sekunden.
Globaler Optimierungsalgorithmus für überlagerungsfreie Darstellung von Objekten 673 Abb. 3: Die einer Darstellung zugeschriebene Energie sinkt exponentiell mit der Anzahl der Monte-Carlo-Schritte. Die Qualität der Darstellung ist indirekt proportional zur Energie. Zusammenfassend kann gesagt werden, dass durch Verwendung des vorgestellten Algorithmus die Automatisierung der grafischen Unfallverortung in der elektronischen Unfallsteckkarte wesentlich vorangetrieben werden konnte. Innerhalb kürzester Zeit werden die Unfälle übersichtlich dargestellt und händische Nachbearbeitung faktisch überflüssig gemacht. Literatur BENTLEY, J. L. (1975): Multidimensional binary search trees used for associative searching. In: Communications of the ACM, 509 GRIEBEL, M., KNAPEK, S., ZUMBUSCH, G. & A. CAGLAR (2003): Numerische Simulation in der Moleküldynamik. Numerik, Algorithmen, Parallelisierung, Anwendungen. Springer Verlag, Berlin/Heidelberg HINZKE, D. & U. NOWAK (1998): Magnetisation switching in a Heisenberg model for small ferromagnetic particles. In: Phys. Rev. B 58, 265 KIRKPATRICK, S., GELATT JR., C. D. & M. P. VECCHI (1983): Optimization by Simulated Annealing, In: Sience, 4598