From c5a55a661c8e539d4dfb3887b97846dd2485d75a Mon Sep 17 00:00:00 2001 From: rylon Date: Wed, 21 Aug 2013 16:28:49 +0200 Subject: [PATCH] thesis --- .../thesis_ug/pic/classdiagAlgo.png | Bin 0 -> 8607 bytes .../thesis_ug/pic/classdiagStreet.png | Bin 0 -> 25776 bytes .../thesis_ug/tex/berechnung.tex | 22 +++++++++--------- .../Bachelor Thesis/thesis_ug/tex/modell.tex | 18 ++++++++++---- 4 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 ss2013/Bachelor Thesis/thesis_ug/pic/classdiagAlgo.png create mode 100644 ss2013/Bachelor Thesis/thesis_ug/pic/classdiagStreet.png diff --git a/ss2013/Bachelor Thesis/thesis_ug/pic/classdiagAlgo.png b/ss2013/Bachelor Thesis/thesis_ug/pic/classdiagAlgo.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d638a3e81d863117a44cbbe20c1aab7ad07437 GIT binary patch literal 8607 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 R$`46h_cip?k!nw0{vRe-UpxQ+ literal 0 HcmV?d00001 diff --git a/ss2013/Bachelor Thesis/thesis_ug/pic/classdiagStreet.png b/ss2013/Bachelor Thesis/thesis_ug/pic/classdiagStreet.png new file mode 100644 index 0000000000000000000000000000000000000000..4b590d91d76301eb3078de972fc0084074e57eeb GIT binary patch literal 25776 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 Norden & 0 & 0 & 1\\ \hline \end{tabular} - \caption{Zuordnungstabelle der Richtungen} + \caption{Zuordnungstabelle der sensorspezifischen Richtungsangaben auf Himmelsrichtungen.} \label{tbl:zuordnungstabell} \end{figure} \subsection{L"osungsansatz: Hidden Markow Modell}\label{sec:berechnung:hmm} - Das Hidden Markow Modell(HMM) ist ein Modell zur Beschreibung von Systemen mit versteckten Zust"anden. Es beschreibt eine Kette von zeitdiskreten Zuständen, die jeweils nur von dem vorhergehenden Zustand abhängen. Diese Zustände können jedoch nicht beobachtet werden, sie sind versteckt (hidden). Stattdessen werden sog. Emissionen beobachtet, die je nach betrachtetem Zustand zu einer gewissen Wahrscheinlichkeit auftreten. Das Modell ist nach dem russischen Mathematiker \textit{Andrei Andrejewitsch Markow} benannt. Es schien ein geignetes Modell zu sein, da es vermag sowohl bekannte als auch unbekannte Einheiten zu modellieren, in Verbindung einer "Ubergangswahrscheinlichkeit. Desweiteren wurde es in Form eines gekoppelten HMMs (CHMM) erfolgreich für die Geschwindigkeitsabschätzung von Fahrzeugen in der Arbeit von \cite{paper:kwonmurphy} eingesetzt. Da diese Arbeit ebenfalls Induktionsschleifen als Grundlage verwendet, erschien dieser Ansatz sehr vielversprechend.\\ \\ + Das Hidden Markow Modell(gls:HMM) ist ein Modell zur Beschreibung von Systemen mit versteckten Zust"anden. Es beschreibt eine Kette von zeitdiskreten Zuständen, die jeweils nur von dem vorhergehenden Zustand abhängen. Diese Zustände können jedoch nicht beobachtet werden, sie sind versteckt (hidden). Stattdessen werden sog. Emissionen beobachtet, die je nach betrachtetem Zustand zu einer gewissen Wahrscheinlichkeit auftreten. Das Modell ist nach dem russischen Mathematiker \textit{Andrei Andrejewitsch Markow} benannt. Es schien ein geignetes Modell zu sein, da es vermag sowohl bekannte als auch unbekannte Einheiten zu modellieren, in Verbindung einer "Ubergangswahrscheinlichkeit. Dies schien passend, da sowohl die bekannten Sensoren, als auch die unbekannten \textit{virtuellen Sensoren} zu modellieren sind. Desweiteren wurde es in Form eines gekoppelten HMMs (CHMM) erfolgreich für die Geschwindigkeitsabschätzung von Fahrzeugen in der Arbeit von \cite{paper:kwonmurphy} eingesetzt. Da diese Arbeit ebenfalls Induktionsschleifen als Grundlage verwendet, erschien dieser Ansatz sehr vielversprechend.\\ \\ Im Folgendem werden die Grundlagen des Hidden Marokw Modellen umrissen. \subsubsection{Grundlagen} Ein HMM beschreibt zwei zeitdiskrete Zufallsprozesse $X_t$ und $Y_t$ mit $t€N$. Allerdings sei nur der $Y_t$ Prozess beobachtbar. Er soll Rückschluss auf den $X_t$ Prozess ermöglichen. Dabei darf der Wert des jeweiligen Prozesses nur von dem vorhergehenden Zustand abhängig sein. Es müssen folglich die beiden Bedingungen gelten: @@ -52,8 +52,8 @@ Zun"achst wird das Aufbereiten der Abbiegewahrscheinlichkeiten beschrieben, um d \end{equation} Haben die Prozesse eine endliche Menge an Zuständen, spricht man von einen Markow-Prozess.\\ \\ Ein Hidenn Marow Modell kann dabei mit einem 5-Tupel beschrieben werden $\lambda = (S;V;A;B;\pi)$.\\ - $S = \{s_1; \dotsc; s_n \}$ beschreibt die möglichen Werte der Zustandsvariablen $X_t$, welche nicht beobachtbar ist.\\ - $V = \{v_1; \dotsc; v_m \}$ beschreibt die möglichen Werte der Emissionszustände, welche beobachtbar ist.\\ + $S = \{s_1; \dotsc; s_n \}$ beschreibt die möglichen Werte der Zustandsvariablen $X_t$, welche nicht beobachtbar sind.\\ + $V = \{v_1; \dotsc; v_m \}$ beschreibt die möglichen Werte der Emissionszustände, welche beobachtbar sind.\\ $A \in R^{n \times n}$ ist eine Matrix, welche die Übergangswahrscheinlichkeiten eines Zustands des $X_t$ Prozesses in einen anderen beschreibt.\\ $B \in R^{n \times m}$ beschreibt eine Matrix, welche die Emissionswahrscheinlichkeiten der einzelnen Zustände des $X_t$ Prozesses angibt. Emissionen werden anhand des $Y_T$ Prozesses modelliert. $\pi \in R^n$ gibt die Anfangsverteilung an. @@ -69,14 +69,14 @@ Zun"achst wird das Aufbereiten der Abbiegewahrscheinlichkeiten beschrieben, um d \item{Verkehrswerte werden als versteckte Zustände, Sensorwerte als Emissionen modelliert.} \item{Ampelphasen werden als versteckte Zustände, Sensorwerte als Emissionen modelliert.} \end{enumerate} - Für beide Modellierungen fehlen allerdings die Übergangswahrscheinlichkeiten zwischen den Versteckten Zuständen. Außerdem kann nicht bestimmt werden, mit welcher Wahrscheinlichkeit eine Emission, für welchen Zustand, auftritt und es sind für alle Ausgangssensoren keine Emissionen vorhanden, da der Verkehr dort nicht gemessen wird. Eine Verbindung der Sensorwerte zwischen Kreuzungsausgang und den Sensoren der darauffolgenden Kreuzung kann nicht hergestellt werden (siehe \autoref{sec:modell:limits}).\\ \\ + Für beide Modellierungen fehlen allerdings die Übergangswahrscheinlichkeiten zwischen den Versteckten Zuständen. Außerdem kann nicht bestimmt werden, mit welcher Wahrscheinlichkeit eine Emission, für welchen Zustand, auftritt und es sind für alle Ausgangssensoren keine Emissionen vorhanden, da der Verkehr dort nicht gemessen wird. Eine Verbindung der Sensorwerte zwischen Kreuzungsausgang und den Sensorwerten der darauffolgenden Kreuzung kann nicht hergestellt werden (siehe \autoref{sec:modell:limits}).\\ \\ Aus diesem Grund wurden HMMs als Lösungsansatz verworfen. Die Arbeit \cite{paper:kwonmurphy} kann ein gekoppeltes HMM erfolgreich für die Modellierung von Freeway-Traffic nutzen und die Geschwindigkeit von Fahrzeugen einschätzen. Sie machen sich dabei insbesondere zunutze, dass alle Sensoren auf einer gerade Strecke verbaut sind und aus diesem Grund in direkter Beziehung stehen. Dies ist allerdings für die vorliegenden Daten nicht möglich. Des weiteren besteht in einem Straßennetz einer Stadt ständig die Möglichkeit, dass ein Fahrzeug die Fahrbahn verlässt, um z.B. zu parken. Auf einem Freeway entfallen diese Möglichkeiten allerdings. \subsection{L"osungsansatz: Wegfindungsalgorithmen}\label{sec:berechnung:astar} Um den Weg eines Fahrzeugs oder einer Fahrzeugkolonne zu simulieren, bieten sich Wegfindungsalgorithmen an. Sie finden den k"urzesten Weg zum Ziel und das "ahnelt dem Verhalten der Menschen, einen Ort anzufahren. Die Idee die Anzahl der Autos anhand der Sensorwerte zu bestimmen und diese durch das Stra"sennetz zu ihrem Ziel fahren zu lassen erschien als eine gute L"osung. Bekannte Algorithmen, wie der \textit{A*} k"onnen ein solches Wegfindungsproblem l"osen. Insbesondere die M"oglichkeit einen Graphen direkt zur Berechnung zu verwenden, lie"sen diesen Ansatz erfolgversprechend erscheinen. Die ben"otigte Absch"atzung der Distanz zwischen Start- und Zielknoten w"are dabei die Luftlinie zwischen den beiden Punkten. Da keine Werte "uber einzelne Autos, sondern nur Messwerte "uber eine Minute zur Verf"ugung standen, musste nicht nur ein einzelnes Auto, sondern eine Autokolonne simuliert werden.\\ \\ Es sind keinerlei Daten "uber das Ziel der Autofahrer in der Stadt Darmstadt bekannt oder gemessen worden, die für diese Arbeit verwendet werden konnten. Eine Erhebung war ebenfalls nicht m"oglich, da eine Vielzahl von Ausg"angen aus der 'Ministadt' untersucht werden m"ussten. Da kein Wegfindungsalgorithmus ohne Ziel funktionieren kann, wurden Wegfindungsalgorithmen als L"osungsansatz verworfen. \subsection{L"osungsansatz: Lineares Gleichungssystem}\label{sec:berechnung:lgs} - Das in Kapitel \autoref{sec:modell} beschriebene Modell erlaubt es mit Hilfe von linearen Gleichungssystemen einen Wert f"ur jeden Kreuzungsein- und Ausgang zu berechnen. Voraussetzung daf"ur ist, dass alle Kreuzungseing"ange auf jeder Spur mit Sensoren best"uckt sind, sowie, dass alle Verkehrsteilnehmer sich an die Stra"senverkehrsordnung halten. Insbesodere das Einhalten der Spurrichtung ist Voraussetzung f"ur eine korrekte Berechnung. In Kapitel \autoref{sec:modell} werden die Einschr"ankungen des Modells n"aher erl"autert.\\ \\ + Das in Kapitel \ref{sec:modell} beschriebene Modell erlaubt es mit Hilfe von linearen Gleichungssystemen einen Wert f"ur jeden Kreuzungsein- und Ausgang zu berechnen. Voraussetzung daf"ur ist, dass alle Kreuzungseing"ange auf jeder Spur mit Sensoren best"uckt sind, sowie, dass alle Verkehrsteilnehmer sich an die Stra"senverkehrsordnung halten. Insbesodere das Einhalten der Spurrichtung ist Voraussetzung f"ur eine korrekte Berechnung. In Kapitel \autoref{sec:modell} werden die Einschr"ankungen des Modells n"aher erl"autert.\\ \\ Durch Addition derjenigen Sensorwerte, die auf den jeweiligen Ausgang zeigen, kann ein Wert f"ur diesen ausgerechnet werden. F"ur Mischspursensoren werden daf"ur Abbiegewahrscheinlichkeiten ben"otigt, um den Sensorwert entsprechend dem Abbiegeverhalten der Verkehrsteilnehmer auf die Ausg"ange zu verteilen. Die Abbiegewahrscheinlichkeit gibt dabei an, wieviel Prozent des Verkehrs, welcher "uber den Sensor flie"st, dem jeweiligen Ausgangsknoten zugeordnet werden kann. Der Sensorwert wird entsprechend mit der jeweiligen Abbiegewahrscheinlichkeit multipliziert und auf den Ausgang addiert. Einspursensoren k"onnen dagegen direkt auf den Ausgang addiert werden auf den sie zeigen, ohne dass Abbiegewahrscheinlichkeiten von N"oten sind. Um das Berechnungsmodell einheitlich zu halten wurde bei der Matrizenrechnung eine Abbiegewahrscheinlichkeit von 1.0 f"ur Einspursensoren angegeben, da 100\% des Verkehrs, welcher "uber den Einspursensor flie"st, an dem entsprechenden Ausgang ankommen muss.\\ \\ Im Folgendem werden die Grundlagen von linearen Gleichungssystemen umrissen, woraufhin die entwickelte Berechnungsmethodik f"ur Kreuzungen und zwischen Kreuzungen genauer untersucht wird. \subsubsection{Grundlagen}\label{sec:berechnung:lgs:grund} @@ -89,7 +89,7 @@ Zun"achst wird das Aufbereiten der Abbiegewahrscheinlichkeiten beschrieben, um d a_{m1} x_1 + a_{m2} x_2 \, + & \cdots & +\, a_{mn} x_n & = & b_m\\ \end{matrix} \end{equation} - Ein lineares Gleichungssystem ist l"osbar, wenn alle Gleichungen erf"ullbar sind. Ist dies nicht der Fall spricht man von einem unl"osbaren Gleichungssystem. L"osbare Systeme lassen sich nochmals in die 'eindeutig L"osbaren' und 'nicht eindeutig L"osbaren' unterteilen. F"ur ein eindeutig l"osbares Gleichungssystem kann eine nummerische L"osung f"ur $x_1$ bis $x_n$ gefunden werden, im Gegensatz zu nicht eindeutig l"osbaren Systemen, f"ur welche eine L"osung nur in Abh"angigkeit von einem oder mehreren Parametern angeben werden kann.\\ \\ + Ein lineares Gleichungssystem ist l"osbar, wenn alle Gleichungen erf"ullbar sind. Ist dies nicht der Fall spricht man von einem unl"osbaren Gleichungssystem. L"osbare Systeme lassen sich nochmals in die 'eindeutig L"osbaren' und 'nicht eindeutig L"osbaren' unterteilen. F"ur ein eindeutig l"osbares Gleichungssystem kann eine nummerische L"osung f"ur $x_1$ bis $x_n$ gefunden werden, im Gegensatz zu nicht eindeutig l"osbaren Systemen, f"ur welche eine L"osung nur in Abh"angigkeit von einem oder mehreren Parametern angeben werden kann.\\ \\ Eine g"angige Art der Darstellung von linearen Gleichungssystemen ist die Matrixdarstellung. Das System zerf"allt dabei in drei Teile. Die Koeffizientenmatrix enth"alt die Werte $a_{11}$ bis $a_{nm}$ und wird mit $A$ bezeichnet. Die Unbekannten $x_1$ bis $x_n$ werden in einer einspaltigen Matrize zusammengefasst, ebenso wie die Ergebniswerte $b_1$ bis $b_m$. Die beiden Matrizen werden entsprechend mit $x$ und $b$ bezeichnet. Eine Allgemeine Darstellung eines LGS in Matrixform ist in Abbildung \ref{lgs:matrix} dargestellt. \begin{equation}\label{lgs:matrix} \begin{pmatrix} diff --git a/ss2013/Bachelor Thesis/thesis_ug/tex/modell.tex b/ss2013/Bachelor Thesis/thesis_ug/tex/modell.tex index 80128c33..12836e63 100644 --- a/ss2013/Bachelor Thesis/thesis_ug/tex/modell.tex +++ b/ss2013/Bachelor Thesis/thesis_ug/tex/modell.tex @@ -195,13 +195,18 @@ Um ein Verkehrsmodell zu entwickeln muss zuerst festgelegt werden, welche Art de Die Tabelle \textit{bt\_FlowStatistics} enth"alt Abbiegewahrscheinlichkeiten f"ur Sensoren. Da diese Werte der Abbiegewahrscheinlichkeitstabelle der Stadt Darmstadt entnommen wurden, werden Sensoren "uber Kreuzungs- und Sensorname identifiziert und nicht "uber eine eindeutige Sensor ID. Dies ist m"oglich, obwohl Sensornamen nicht eindeutig sind, da innerhalb einer Kreuzung eine eindeutige Identifikation "uber den Namen des Sensors m"oglich ist. Eine Kombination aus dem eindeutigen Kreuzungsnamen und des, innerhalb der Kreuzung, eindeutigen Sensornamens, kann ein Sensor eindeutig identifizieren. F"ur die Abbiegewahrscheinlichkeitstabelle werden, neben dem Kreuzungs- und Sensornamen, bis zu drei verschiedene Abbiegewahrscheinlichkeiten angegeben. N"amlich die Wahrscheinlichkeit, dass ein Verkehrsteilnehmer, der "uber den Sensor f"ahrt, die Kreuzung rechts, links oder geradeaus verl"asst. Zus"atzlich wird der n"achste Sensorknoten, diesmal identifiziert "uber die \textit{SensorID}, f"ur jede Richtung mit angegeben. Wie die Zuordnung der Abbiegewahrscheinlichkeiten f"ur Links, Rechts und Geradeaus zu einem Knoten erfolgt, wird im Kapitel \autoref{sec:berechnung} beschrieben.\\ Neben den Abbiegewahrscheinlichkeiten kann in der Abbiegewahrscheinlichkeitstabelle ebenfalls ein Zeitstempel und eine Intervalll"ange zu jedem Datensatz gespeichert werden. Dies erlaubt es, genauere, zeitspezifische Abbiegewahrscheinlichkeiten abzuspeichern. F"ur diese Arbeit lagen allerdings ausschlie"slich die Werte der Stadt Darmstadt vor, welche "uber alle Messungen gemittelt sind. \subsection{Implementierung} - Zur Modellierung am Computer wird auf die Java Bibliothek \textit{JGraphT} zur"uckgegriffen. Sie erlaubt es, dank Javas moderner generischer Typen\footnote{siehe \url{http://docs.oracle.com/javase/tutorial/java/generics/types.html}}, Graphen mit beliebigen Klassen als Knoten aufzubauen. Das Selbe gilt f"ur Kanten mit wenigen Einschr"ankungen. Desweiteren erlaubt \textit{JGraphT} eine Konvertierung zu der weit verbreiteten Bibliothek \textit{JGraph}, die eine Visualisierungschnittstelle f"ur Graphen mitbringt. Der Kreuzungs"ubersichtsgraph soll die Graphen der einzelnen Kreuzungen als Knoten enthalten, um den Zusammenhalt des Modells zu gew"ahrleisten.\\ \\ + Zur Modellierung am Computer wird auf die Java Bibliothek \textit{JGraphT} zur"uckgegriffen. Sie erlaubt es, dank Javas moderner generischer Typen\footnote{siehe \url{http://docs.oracle.com/javase/tutorial/java/generics/types.html}}, Graphen mit beliebigen Klassen als Knoten aufzubauen. Das Selbe gilt f"ur Kanten mit wenigen Einschr"ankungen. Desweiteren erlaubt \textit{JGraphT} eine Konvertierung zu der weit verbreiteten Bibliothek \textit{JGraph}, die eine Visualisierungschnittstelle f"ur Graphen mitbringt. Der Kreuzungs"ubersichtsgraph soll die Graphen der einzelnen Kreuzungen als Knoten enthalten, um den Zusammenhalt des Modells zu gew"ahrleisten. Eine Übersicht über die Klassen und deren Zusammenhang untereinander ist in Form eines Klassendiagramms in \autoref{abb:classdiagstreet} dargestellt.\\ \\ + \begin{figure} + \centering + \includegraphics[width=0.95\textwidth]{pic/classdiagStreet} + \caption{Klassendiagramm der JGraphT Implementierung des Straßenmodells.} + \label{abb:classdiagstreet} + \end{figure} Um eine Kreuzung mit \textit{JGraphT} zu modellieren wurden folgende zwei Klassen definiert: \begin{itemize} \item{\textit{SE}: Sensoren, virtuelle und reale.} \item{\textit{ST}: Stra"se} \end{itemize} - [Klassendiagramm todo] Die Klasse \textit{SE} kann dabei Sensorname, Position in Latitude und Longitude, sowie die Kreuzung, welche den Sensor beinhaltet, speichern. Das Feld \textit{sensorType} erlaubt zus"atzlich die Unterscheidung von verschiedenen Sensortypen. Des weiteren stehen drei Felder zur Verkn"upfung mit anderen Sensoren zur Verf"ugung. Das Feld \textit{multipleOutputDirections} erlaubt es zu bestimmen, ob es sich um einen Mehr- oder Einspursensor handelt. Sollte es sich um einen virtuellen Ein- oder Ausgang einer Kreuzung handeln, so werden in den Feldern \textit{outXR} und \textit{inXR} die Namen der benachbarten Kreuzungen gespeichert. Dies entspricht den Felder der in \autoref{sec:modell} beschriebenen Datenbankstruktur. Zus"atzlich zu den Verkn"upfungs- und Typinformationen k"onnen noch ein Sensorwert und ein Testwert gespeichert werden. Der Wert, falls gesetzt, wird dabei zur Berechnung eingesetzt, w"ahrend der Testwert zur "Uberpr"ufung eines berechneten Ergebnisses dient. Wert und Testwert sind dabei von der Klasse \textit{VL}.\\ \\ Die Klasse \textit{VL} kann die beiden Werte der Induktionsschleifen \textit{load} und \textit{count} halten, sowie eine Sensor ID, die eine eindeutige Zuordnung der Werte zu einem Sensor erm"oglicht. Ein Zeitstempel bestimmt dabei den Zeitpunkt der Messung. Auch diese Struktur entspricht der des Datenbankmodells. Zur "Uberpr"ufung eines Wertes mit einem Testwert kann ein gemessener Wert als Testwert in der Klasse abgespeichert werden. Eine Berechnung soll nun einen Wert berechnen, der durch Vergleich mit dem gemessenem Testwert Aufschluss "uber die Genauigkeit der Berechnung gibt. Näheres ist im Kapite \ref{sec:validierung} zu finden.\\ \\ @@ -222,8 +227,13 @@ Um ein Verkehrsmodell zu entwickeln muss zuerst festgelegt werden, welche Art de Die Klasse \textit{TrafficGraph} ist die Hauptklasse der JGraphT Modellierung. Sie enthält den Kreuzungsübersichtsgraphen (siehe \autoref{lst:streetgraph}) und über das Feld \textit{data\_timestamp} kann definiert werden welcher Datensatz aus der Datenbank selektiert wird. Die Funktion \textit{createGraph} der Klasse erzeugt den Kreuzungsübersichtsgraphen. Dafür werden zuerst alle Kreuzungsknoten aus der Datenbank selektiert und für jeden ein neues \textit{XR}-Objekt angelegt und mit den Werten der Datenbank befüllt. Dieses wird daraufhin dem \textit{streeGraph} hinzugefügt. In einem zweiten Schritt werden alle Verbindungen der Knoten untersucht. Wird der angegebene Zielknoten gefunden, wird eine Kante zwischen den beiden Kreuzungen dem \textit{streeGraph}-Objekt hinzugefügt. Während des Anlegens des \textit{XR}-Objekt werden die Kreuzungsdaten in dieses nachgeladen. Hierfür werden alle Sensoren, welche zu der entsprechenden Kreuzung gehören aus der Datenbank geholt, diese dem \textit{sensorGraph} hinzugefügt, sowie Verbindungen zwischen den Sensoren annotiert.\\ \\ Die Funktion \textit{loadData} der \textit{TrafficGraph}-Klasse erlaubt das Laden der Daten für den spezifizierten Zeitpunkt. Diese läd sowohl die Sensorwerte und schreibt diese in die einzelnen Sensorknoten des \textit{sensorGraph}, als auch die Abbiegewahrscheinlichkeiten, welche den dazugehörigen Kanten übergeben wird. Daraufhin sind alle Daten geladen und der Graph ist komplett aufgebaut. \\ \\ - Die Klasse \textit{TrafficGraph} bietet allerdings noch eine weitere Funktion \textit{calculate}, die das Aufrufen von verschiedenen Algorithmen erlaubt. Hierfür wurde die Klasse \textit{Algo} definiert, der im Konstruktor der Kreuzungsübersichtsgraph übergeben wird. Die abstrakte Funktion \textit{calculcate} dieser Klasse erlaubt es beliebige Algorithmen zu schreiben, welche auf den Graphen zurückgreifen können.\\ \\ - (todo klassdiag) + Die Klasse \textit{TrafficGraph} bietet allerdings noch eine weitere Funktion \textit{calculate}, die das Aufrufen von verschiedenen Algorithmen erlaubt. Hierfür wurde die Klasse \textit{Algo} definiert, der im Konstruktor der Kreuzungsübersichtsgraph übergeben wird. Die abstrakte Funktion \textit{calculcate} dieser Klasse erlaubt es beliebige Algorithmen zu schreiben, welche auf den Graphen zurückgreifen können. In \autoref{abb:classdiagalgo} ist die Struktur der Klassen in einem Klassendiagramm aufgezeigt.\\ \\ + \begin{figure} + \centering + \includegraphics[width=0.95\textwidth]{pic/classdiagAlgo} + \caption{Klassendiagramm der Algorithmenstruktur.} + \label{abb:classdiagalgo} + \end{figure} Im Rahmen dieser Arbeit wurden vier Algorithmen entwickelt. \begin{enumerate} \item{\textit{AlgoGraphPropagation}: Mithilfe dieses Algorithmus werden die Ausgangsverkehrswerte einer Kreuzung berechnet. Eine genaue Beschreibung des Verfahrens ist in \autoref{sec:berechnung} zu finden.}