Programmierpraktikum Verkehrssimulation Einführung in die Thematik Michael Moltenbrey, Dirk Pflüger 24. April 2006 1
Gliederung Motivation Ablauf des Praktikums Aufgabenstellungen Scheinkriterien Gruppeneinteilung Zeitplan Einführung in die Thematik 2
Motivation Verkehr von immer größerer Bedeutung im täglichen Leben Simulation als geeignetes Planungsmittel und zur Erlangung eines tieferen Systemverständnisses Ziele des Praktikums sind u.a.: Verstehen der zugrundeliegenden Modelle Erstellung einer größeren Software Spezifizieren, Entwerfen, Implementieren Teamarbeitstechniken 3
Aufgabenstellung Entwicklung eines mikroskopischen Verkehrssimulators Simulation realistischer Szenarien Erkennen und Lösen von Effizienzproblemen Objekt orientierter Ansatz Einsatz verschiedener Technologien Java XML... 4
Scheinkriterien Teilnahme an allen Terminen und Bearbeitung aller Blätter Präsentation der Teilergebnisse Jedes Blatt unterteilt in Pflichtaufgaben: müssen vollständig bearbeitet werden Zusatzaufgaben: freie Auswahl bei Bearbeitung mindestens die Hälfte aller Zusatzaufgaben muss erfolgreich bearbeitet werden 5
Gruppeneinteilung Bearbeitung der Aufgaben erfolgt in Teams Zwei Personen pro Team Teams bleiben während des gesamten Praktikums bestehen Abgaben erfolgen stets gruppenweise über Webformular Einzelabgaben u. verspätete Abgaben werden nicht angenommen und dementsprechend nicht gewertet Ziele: Erlernen einfacher Teamarbeitstechniken Größeres Projekt in kürzerer Zeit 6
Gruppeneinteilung (2) Einteilung erfolgt jetzt! 7
Zeitplan Aufgabenblätter im 14 Tage Rhythmus Zwei Wochen für Bearbeitung In darauffolgender Woche Präsentation der Lösungen 8
Die Aufgaben Blatt 1 Conways Game of Life Erste Bestandteile der Visualization Engine Visualisierungstechniken in Java Einführung in Parsen von XML mit Java Blatt 2 Aufbau eines XML Parsers für Netzdateien Basisfunktionalität der Simulatorlogik Ringstraße mit einspurigem Verkehr 9
Die Aufgaben (2) Blatt 3 Erweiterung der Simulationslogik Mehrspuriger Verkehr und Überholvorgänge Blatt 4 Modellierung und Implementierung von Kreuzungen mit und ohne Ampeln Kreisverkehre Fertigstellen der Visualization Engine 10
Die Aufgaben (3) Blatt 5 Nachfragedaten aus XML Datei einlesen und Fahrzeuge generieren und positionieren Activity Manager entwerfen und implementieren Ausführung einer größeren Simulation Blatt 6 Simulation eines gesamten Stadtnetzes! Messungen in Netzen verschiedener Größe 11
Einführung in zelluläre Automaten am Beispiel des Game of Life 12
Gliederung Zelluläre Automaten Conway's Game of Life Regeln Ausprägungen Implementierungs und Entwurfhinweise XML und Java Architektur des Simulators Die Visualization Engine 13
Zelluläre Automaten Modellierung räumlich diskreter dynamischer Systeme Ein zellulärer Automat ist definiert durch Zellraum R Endliche Nachbarschaft N Zustandsmenge Q lokale Übergangsfunktion :Q N Q Zellraum i.d.r. 1 dimensional oder 2 dimensional 14
Zelluläre Automaten (2) Jeder Zelle des Automaten wird Zustand der gegebenen Zustandsmenge Q zugeordnet Zustandsübergang einer Zelle wird über lokale Zustandsübergangsfunktion definiert Einfaches, aber mächtiges Konzept um komplexe Vorgänge zu modellieren Anwendung bspw. in der Verkehrssimulation vgl. Nagel Schreckenberg Modell 15
Conway's Game of Life Beliebtes Einstiegsbeispiel für zelluläre Automaten 1970 von John Conway entwickelt (biolog. Zellwachstum) 2D zellulärer Automat Einfacher Aufbau, sowie einfache Regeln Rechteckiges Spielfeld C: n x m Matrix Jede Zelle kann einen von zwei Zuständen q i annehmen tot lebendig 16
Conway's Game of Life (2) Jede Zelle hat acht Nachbarn Ablauf nach einfachen Regeln Folgegeneration g t+1 wird aus aktueller Generation g t berechnet: g t+1 = f(g t ), paralleles Update aller Zellen Zustand einer Zelle C i,j zum Zeitpunkt t+1 hängt von dem Zustand der Zelle und der direkten Zellnachbarn zum Zeitpunkt t ab 17
Conway's Game of Life (3) Zelle mit genau drei lebenden Nachbarn wird neu geboren Lebende Zellen mit mehr als drei lebenden Nachbarn sterben an Unterernährung 18
Conway's Game of Life (4) Eine lebende Zellen stirbt in der Folgegeneration an Einsamkeit, wenn sie lediglich weniger als zwei lebende Nachbarn hat Diese Regeln sind ausreichend für vielfältige Gestaltsausprägungen im Laufe der Simulation 19
Ausprägungen Einige Strukturen, die im Game of Life entstehen können Gleiter Blinker Segler 20
Implementierungshinweise Naive Methode nicht unbedingt die beste Effizienz und Speicherbedarf sollte im Auge behalten werden Welche Komponenten sind wirklich notwendig? Läßt sich der Zugriff auf die Zellen optimieren? Gibt es noch andere Möglichkeiten die Simulation zu beschleunigen? Visualisierung kann bei ungeschickter Implementierung extrem teuer werden!! 21
Java und XML Die Szenarien, Aktivitäten und Netze unseres Simulators werden mit Hilfe von XML definiert Wichtig ist daher die Erstellung eines geeigneten Parsers Für Java existieren zahlreiche generische XML Parser, die verhältnismäßig leicht angepasst werden können Zwei verschiedene Typen: Simple API for XML (SAX) Document Object Model (DOM) Beide Bestandteil von Sun's Java 2 Plattform (ab JDK 1.4) 22
Simple API for XML Basiert auf einem Ereignismodell Sequentielles Einlesen der XML Datei Ggf. Auslösen eines passenden Events Kein wahlfreier Zugriff möglich Höherer Programmieraufwand im Vergleich zu DOM 23
Document Object Model Objekt orientierte Darstellung einer XML Datei DOM bietet eine API, um den Inhalt einer Datei zu verändern, darauf zuzugreifen,... Das XML Dokument wird in der Form eines Baumes im Speicher gehalten Vereinfachter Zugriff auf Elemente im Vergleich zu SAX Höherer Speicherbedarf 24
Architektur des Simulators 25
Visualization Engine Darstellung des Simulationsablaufs Modularer Aufbau: Unterstützung verschiedener Ausgabemodi soll möglich sein Trace Files On the Fly Visualisierung in GUI... 26
Visualization Engine (2) Visualisierung kann bei großen Netzen die Leistungsfähigkeit des Simulators stark beeinflussen Besondere Aufmerksamkeit muss auf dem Entwurf ressourcenschonender Verfahren liegen Effiziente Implementierungen sind notwendig Datenstrukturen effizient gewählt? Welche Gebiete müssen genau visualisiert werden? Was bei ausschnittsweiser Betrachtung? 27
Visualization Engine (3) Hinweis: Bei durchdachtem Entwurf der Visualisierung des Game of Life Wiederverwendbarkeit vieler Komponenten möglich Erfahrungswerte können eingebracht werden => Deutliche Arbeitsersparnis bei den folgenden Aufgabenblättern 28
Noch Fragen?? 29