This commit is contained in:
Ulf Gebhardt 2013-08-16 17:41:22 +02:00
parent e829cc807e
commit 45ae231f13
8 changed files with 284 additions and 412 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -3,7 +3,7 @@
\centering
\fbox{\includegraphics[width=0.55\textwidth-2\fboxsep-2\fboxrule]{ext/overviewmap}}
\caption{CAD Bild der Stadt Darmstadt, mit eingezeichneten Kreuzungen}
\label{abb:4}
\label{abb:caddarmstadt}
\end{figure}
\subsection*{Abbiegewahrscheinlichkeiten von der Stadt Darmstadt erhoben}

View File

@ -7,14 +7,13 @@ Es galt folgende Herausforderung zu l"osen:
\item{Wie viele Autos kommen auf die Kreuzung aus Richtung Norden/S"uden/Westen/Osten}\label{problem:4}
\item{Validierung von Sensorwerten, mithilfe von Validierungssensoren}\label{problem:2}
\item{Verkehrswerte f"ur Seitenstraßen ohne Sensoren}\label{problem:5}
\item{Fl"ussen zwischen den Kreuzungen}
\item{Werte f"ur Kreuzungen ohne Sensoren}
\item{Blick in die Zukunft}
\item{Fl"ussen zwischen den Kreuzungen}\label{problem:6}
\item{Verkehrswerte für einen Zeitpunkt in der Zuknunft berechnen,}\label{problem:6}
\end{enumerate}
Es wurden im Rahmen dieser Arbeit mehrere Berechnungsans"atze daraufhin "uberpr"uft, ob sie eines der gegebenen Problem l"osen kann. Die beschriebenen Ans"atze sind 'Hidden Markow Modell', 'Wegfindungsalorithmen' wie A* und 'lineares Gleichungssystem'. \\ \\
Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erste Ziel, welche zu erreichen galt. Da virtuelle Sensoren in dem entwickelten Verkehrsmodell ausschließlich Aus- und Eing"ange modellieren w"urden damit ebenfalls die Herausforderung einen Verkehrswert f"ur die jeweiligen Kreuzungsein- und -ausg"ange zu berechnen gel"ost werden.
Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erste Ziel, welche zu erreichen galt. Da virtuelle Sensoren in dem entwickelten Verkehrsmodell ausschließlich Aus- und Eing"ange modellieren, w"urden damit ebenfalls die Herausforderung einen Verkehrswert f"ur die jeweiligen Kreuzungsein- und -ausg"ange zu berechnen gel"ost werden.
\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 ist nach dem russischen Mathematiker Andrei Andrejewitsch Markow benannt. Im Folgendem werden die Grundlagen von Hidden Marokw Modellen umrissen.
Das Hidden Markow Modell(HMM) ist ein Modell zur Beschreibung von Systemen mit versteckten Zust"anden. Es ist nach dem russischen Mathematiker 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 Übergangswahrscheinlichkeit. [ref] Im Folgendem werden die Grundlagen von Hidden Marokw Modellen umrissen.
\subsubsection{Grundlagen}
\subsubsection{HMM f"ur eine Kreuzung}
@ -26,14 +25,13 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
au"serdem entspricht das Verfahren durch den "zufall" eher besserem Raten.
\subsection{L"osungsansatz: Wegfindungsalgorithmen}\label{sec:berechnung:astar}
Um den Weg eines Autos zu simulieren bieten sich Wegfindungsalgorithmen an, da sie den k"urzesten Weg zum Ziel finden und das dem Verhalten des Menschen "ahnelt. Die Idee die Anzahl der Autos anhand der Sensorwerte zu bestimmen und diese durch das Straßennetz zu ihrem Ziel fahren zu lassen erschien als eine gute L"osung. Aus dem Studium bekannte Algorithmen wie der A* k"onnen ein solches Wegfindungsproblem l"osen. Die Absch"atzung f"ur die Distanz zweier Knoten w"are dabei die Luftlinie. 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.\\ \\
Allerdings stellte sich heraus das keinerlei Daten "uber das Ziel der Autofahrer in der Stadt Darmstadt bekannt oder gemessen wurden. 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.
Um den Weg eines Autos zu simulieren bieten sich Wegfindungsalgorithmen an, da sie den k"urzesten Weg zum Ziel finden und das dem Verhalten des Menschen "ahnelt. Die Idee die Anzahl der Autos anhand der Sensorwerte zu bestimmen und diese durch das Straßennetz zu ihrem Ziel fahren zu lassen erschien als eine gute L"osung. Aus dem Studium bekannte Algorithmen wie der A* k"onnen ein solches Wegfindungsproblem l"osen. Insbesondere die Möglichkeit einen Graphen direkt zur Berechnung zu verwenden, ließen diesen Ansatz erfolgsversprechend aussehen. Die Absch"atzung f"ur die Distanz zweier Knoten w"are dabei die Luftlinie zwischen ihnen. 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.\\ \\
Allerdings stellte sich heraus das keinerlei Daten "uber das Ziel der Autofahrer in der Stadt Darmstadt bekannt oder gemessen wurden. 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 mithilfe von linearen Gleichungssystemen einen Wert f"ur jeden Kreuzungsein- und Ausgang zu berechnen. Vorraussetzung daf"ur ist, dass alle Kreuzungseing"ange auf jeder Spur mit Sensoren best"uckt sind, sowie dass alle Verkehrsteilnehmer sich an die Straßenverkehrsordnung halten. Insbesodere das Einhalten der Spurrichtung ist Vorraussetzung f"ur eine korrekte Berechnung.\\ \\
Durch Addition derjenigen Sensorwerte, welche 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ßt 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 ohne das Abbiegewahrscheinlichkeiten von N"oten sind.\\ \\
Im Folgendem werden die grundlagen von linearen Gleichungssystemen umrissen, woraufhin die entwickelte Berechnungsmethodik f"ur Kreuzungen und zwischen Kreuzungen genauer untersucht wird.
Das in Kapitel \autoref{sec:modell} beschriebene Modell erlaubt es mithilfe von linearen Gleichungssystemen einen Wert f"ur jeden Kreuzungsein- und Ausgang zu berechnen. Vorraussetzung daf"ur ist, dass alle Kreuzungseing"ange auf jeder Spur mit Sensoren best"uckt sind, sowie dass alle Verkehrsteilnehmer sich an die Straßenverkehrsordnung halten. Insbesodere das Einhalten der Spurrichtung ist Vorraussetzung f"ur eine korrekte Berechnung. In Kapitel \autoref{sec:modell} werden die Einschränkungen des Modells näher erläutert.\\ \\
Durch Addition derjenigen Sensorwerte, welche 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ßt 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 ohne das Abbiegewahrscheinlichkeiten von N"oten sind. Um das Berechnungsmodell einheitlich zu halten wurde bei der Matrizenrechnung eine Abbiegewahrscheinlichkeit von 1.0 für Einspursensoren angegeben.\\ \\
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}
Ein lineares Gleichungssystem ist ein System linearer Gleichungen. Ein solches System hat n Unbekannte und m Gleichungen. Eine allgemeine Darstellungsform ist die folgende:\\
\begin{equation}
@ -44,9 +42,8 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
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 numerische L"osung f"ur $x_1$ bis $x_n$ gefunden werden, im Gegensatz zu nicht eindeutig L"osbaren System, 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 dabei die Werte $a_{11}$ bis $a_{nm}$. Die Unbekannten $x_1$ bis $x_n$ werden in einer einspaltigen Matrize zusammengefasst, ebenso wie die Ergebniswerte $b_1$ bis $b_m$.
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 numerische L"osung f"ur $x_1$ bis $x_n$ gefunden werden, im Gegensatz zu nicht eindeutig L"osbaren System, f"ur welche eine L"osung nur in Abh"angigkeit von einem oder mehreren Parametern angeben werden kann. Ein lineares Gleichungssystem ist genau dann eindeutig lösbar wenn R(rang)...[]\\ \\
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}$. Die Unbekannten $x_1$ bis $x_n$ werden in einer einspaltigen Matrize zusammengefasst, ebenso wie die Ergebniswerte $b_1$ bis $b_m$.
\begin{equation}
\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
@ -68,11 +65,12 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
\vdots \\
b_n \\
\end{pmatrix}
\end{equation}
Eine solche Gleichung kann mit einem beliebigem L"osungsverfahren wie z.b. dem Gaus-Algorithmus gel"ost werden. Die Genauigkeit der L"osung h"angt dabei von dem gew"ahlten Verfahren ab.
\end{equation}
Für ein solches Gleichungssystem existieren verschiedene Lösungsverfahren. Ein Beispiel ist der Gaus-Algorithmus.
[gaus]
Neben dem Gaus-Algorithmus existieren viele weitere Lösungsalgorithmen, einschließlich numerische Verfahren. Die Qualität der Lösung hängt dabei von dem gewählten Lösungsverfahren und dem vorliegenden Gleichungssystem ab.
\subsubsection{Lineares Gleichungssystem einer Kreuzung}\label{sec:berechnung:lgs:xr}
Die Beziehungen zwischen Induktionsschleifensensoren und Kreuzungsein- und Ausg"angen kann durch eine lineares Gleichungssystem ausgedr"uckt werden. Der Wert f"ur den Ausgang errechnet sich aus der Summe aller, diesem Kreuzungseingang zugeordneten, Sensoren. Ein Kreuzungsausgang errechnet sich aus den Werten derjenigen Sensoren, wessen Spur dem Verkehr erlauben diesen Kreuzungsausgang zu bedienen. Dabei muss zwischen Einspursensoren und Mischspursensoren unterschieden werden. Einspursensoren k"onnen direkt auf den Ausgang addiert werden, w"ahrend f"ur Mischspursensoren eine Abbiegewahrscheinlichkeit ben"otigt wird, die angibt, wie viel Verkehr in die entsprechende Richtung fließt. Durch Multiplikation des Sensorwertes mit der Abbiegewahrscheinlichkeit erh"alt man den gesuchten Teil des Verkehrs und kann diesen auf den Ausgang addieren.\\
Die Beziehungen zwischen Induktionsschleifensensoren und Kreuzungsein- und Ausg"angen kann durch eine lineares Gleichungssystem ausgedr"uckt werden. Der Wert f"ur den Ausgang errechnet sich aus der Summe aller, diesem Kreuzungseingang zugeordneten, Sensoren. Ein Kreuzungsausgang errechnet sich aus den Werten derjenigen Sensoren, wessen Spur dem Verkehr erlauben diesen Kreuzungsausgang zu bedienen. Dabei muss zwischen Einspursensoren und Mischspursensoren unterschieden werden. Einspursensoren k"onnen direkt auf den Ausgang addiert werden, w"ahrend f"ur Mischspursensoren eine Abbiegewahrscheinlichkeit ben"otigt wird, die angibt, wie viel Verkehr in die entsprechende Richtung fließt. Durch Multiplikation des Sensorwertes mit der Abbiegewahrscheinlichkeit erh"alt man den gesuchten Teil des Verkehrs und kann diesen auf den Ausgang addieren. Für den Kreuzungseingang werden keine Abbiegewahrscheinlichkeiten benötigt und können direkt, unerheblich ob nun Misch- oder Einzelspursensor, auf den Eingang addiert werden.\\ \\
Allgemein kann der Wert des Kreuzungsein- und Ausgang durch folgende Gleichung ausgedr"uckt werden:
\begin{equation}
Kreuzungausgang_x = \sum ES_{xi} + \sum MS_{xj}*ABW_{xj}
@ -80,27 +78,69 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
\begin{equation}
Kreuzungseingang_x = \sum S_{xi}
\end{equation}
$Kreuzungseingang_x$ bezeichnet denjenigen Kreuzungseingang der betrachten Kreuzung, welcher zur benachbarten kreuzung x direkt verbunden ist.\\
$Kreuzungausgang_x$ bezeichnet denjenigen Kreuzungsausgang der betrachteten Kreuzung, welche vor der benachbarten kreuzung x liegt.
$ES_x$ bezeichnet alle Einspursensoren welche auf den Kreuzungsausgang x zeigen.\\
$MS_x$ bezeichnet alle Mehrspursensoren welche auf den Kreuzungsausgang x zeigen.\\
$ABW_xi$ bezeichnet die Abbiegewahrscheinlichkeit des Mehrspursensors $MS_{xi}$ in Richtung Kreuzung x.\\
$S_x$ bezeichnet alle Sensoren welche direkt nach einem Kreuzungseingang in der Straße verbaut sind und entsprechend eine Verbindung, gegen die Fließrichtung, zu dem Kreuzungseingang x hat.\\
Die Berechnung erfolgt dabei f"ur alle Aus- bzw. Eing"ange mithilfe eines linearen Gleichungssystems, um unbekannte Werte mithilfe der Abh"angigkeiten der Gleichungen untereinander zu l"osen.\\
Eine allgemeine Form ist die folgende:
[todo]
\begin{equation}
Kreuzungausgang_x = \sum ES_{xi} + \sum MS_{xj}*ABW_{xj}
Die Berechnung erfolgt dabei f"ur alle Aus- bzw. Eing"ange mithilfe eines linearen Gleichungssystems, um unbekannte Werte, mithilfe der Abh"angigkeiten der Gleichungen untereinander, zu ermitteln.\\
Eine allgemeine Form des Gleichungssystem für Ein- bzw. Ausgänge ist in [] beschrieben.
\begin{equation}
$\begin{Bmatrix}
& S_1 & S_2 & S_3 & \dots & S_n\\
In_1 & 0/1 & 0/1 & \dots & 0/1\\
In_2 & 0/1 & 0/1 & \dots & 0/1\\
In_m & 0/1 & 0/1 & \dots & 0/1\\
\end{Bmatrix}$
*
\begin{Bmatrix}
S_1\\
S_2\\
S_3\\
\dots\\
S_n\\
\end{Bmatrix}
=
\begin{Bmatrix}
In_1\\
In_2\\
\dots\\
In_m\\
\end{Bmatrix}
\end{equation}
\begin{equation}
Kreuzungseingang_x = \sum S_{xi}
\end{equation}
Hierf"ur wird nochmals die A23\ref{abb:a23} betrachtet. Die in Kapitel \autoref{sec:modell} entwickelte Matrixdarstellung erweist sich als hilfreich und kann durch dekorieren mit Abbiegewahrscheinlichkeiten zur Berechnung einer L"osung benutzt werden. Hierf"ur werden Verbindungen zwischen Einspursensoren und dem Aus- bzw. Eingang nach wie vor mit einer '1' markiert, da alle verkehr der "uber diesen Sensor fließt gnau einem Ausgang zugeordnet werden kann. F"ur Mischspursensoren dagegen werden die Verbindungen durch eine Fließkommazahl ersetzt, welche die jeweilige Abbiegewahrscheinlichkeit repr"asentiert. Durch Multiplikation der Matrix mit den Sensorwerten, kann ein Ergebnis f"ur die Ein- und Ausg"ange berechnet werden, sofern aller, in die Kreuzung einstr"omender, Verkehr von Sensoren erfasst wird.
\begin{equation}
$\begin{Bmatrix}
& S_1 & S_2 & S_3 & \dots & S_n\\
Out_1 & 0/1 & 0/1 & \dots & 0/1\\
Out_2 & 0/1 & 0/1 & \dots & 0/1\\
Out_m & 0/1 & 0/1 & \dots & 0/1\\
\end{Bmatrix}$
*
\begin{Bmatrix}
S_1\\
S_2\\
S_3\\
\dots\\
S_n\\
\end{Bmatrix}
=
\begin{Bmatrix}
Out_1\\
Out_2\\
\dots\\
Out_m\\
\end{Bmatrix}
\end{equation}
Zur Erläuterung wird nochmals die A23\ref{abb:a23} betrachtet. Die in Kapitel \autoref{sec:modell} entwickelte Matrixdarstellung erweist sich als hilfreich und kann durch dekorieren mit Abbiegewahrscheinlichkeiten zur Berechnung einer L"osung benutzt werden. Hierf"ur werden Verbindungen zwischen Einspursensoren und dem Aus- bzw. Eingang nach wie vor mit einer '1' markiert, da alle verkehr der "uber diesen Sensor fließt genau einem Ausgang zugeordnet werden kann, kann 100\% des Wertes auf den entsprechenden Ausgang übertragen werden. F"ur Mischspursensoren dagegen werden die Verbindungen durch eine Fließkommazahl ersetzt, welche die jeweilige Abbiegewahrscheinlichkeit repr"asentiert. Durch Multiplikation der Matrix mit den Sensorwerten, kann ein Ergebnis f"ur die Ein- und Ausg"ange berechnet werden, sofern aller, in die Kreuzung einstr"omender, Verkehr von Sensoren erfasst wird.
\begin{equation}
\begin{Bmatrix}
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10 & D13 & D14\\
A12 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
A28 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0\\
A4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0\\
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10\\
A12 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
A28 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0\\
A4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1\\
\end{Bmatrix}
*
\begin{Bmatrix}
@ -115,8 +155,6 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
D8 & 8\\
D9 & 9\\
D10 & 0\\
D13 & 0\\
D14 & 0\\
\end{Bmatrix}
=
\begin{Bmatrix}
@ -129,10 +167,10 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
\begin{equation}
\begin{Bmatrix}
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10 & D13 & D14\\
A12 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0\\
A4 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0\\
A104 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10\\
A12 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0\\
A4 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0\\
A104 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1\\
\end{Bmatrix}
*
\begin{Bmatrix}
@ -147,8 +185,6 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
D8 & 8\\
D9 & 9\\
D10 & 0\\
D13 & 0\\
D14 & 0\\
\end{Bmatrix}
=
\begin{Bmatrix}
@ -158,13 +194,47 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
A104 & 3\\
\end{Bmatrix}
\end{equation}
F"ur die Kreuzung A23 ist es nicht n"otig ein Gleichungssystem zu l"osen, da alle ben"otigten Werte bekannt sind. Dies ist auf darauf zur"uckzuf"uhren, dass alle Sensorwerte f"ur diese Kreuzung bekannt sind und alle eingehenden Spuren mit Sensoren best"uckt sind. Desweiteren stehen f"ur alle Mischspursensoren Abbiegewahrscheinlichkeiten der Stadt Darmstadt zur Verf"ugung.\\ \\
Im folgenden wird diskutiert in wiefern das Gleichungssystem mit unbekannten Eingangsspuren bzw. unbekannten Abbiegewahrscheinlichkeiten gel"ost werden kann.
F"ur die Kreuzung A23 ist es nicht n"otig ein Gleichungssystem zu l"osen, da alle ben"otigten Werte bekannt sind. Dies ist darauf zur"uckzuf"uhren, dass alle Sensorwerte f"ur diese Kreuzung bekannt sind und alle eingehenden Spuren mit Sensoren best"uckt sind. Desweiteren stehen f"ur alle Mischspursensoren Abbiegewahrscheinlichkeiten der Stadt Darmstadt zur Verf"ugung.\\
Im folgenden wird diskutiert in wiefern das Gleichungssystem mit unbekannten Eingangsspuren bzw. unbekannten Abbiegewahrscheinlichkeiten gel"ost werden kann.\\ \\
Durch hinzufügen es virtuellen Sensors für einen weiteren Kreuzungseingang wird das Gleichungssystem zu einem eben solchen, da nun unbekannte in der Gleichung auftauchen. Dies führt unmittelbar zur Unlösbarkeit des Systems, da Rang[]. Am Beispiel der A23 sei das demonstriert. Hierfür wird der Sensor D10 zu einer virtuellen Sensor, welcher keine Werte liefert.
\begin{equation}
\begin{Bmatrix}
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & V10 &\\
A12 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0\\
A4 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0\\
A104 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1\\
\end{Bmatrix}
*
\begin{Bmatrix}
& count\\
D1 & 1\\
D2 & 2\\
D3 & 3\\
D4 & 4\\
D5 & 5\\
D6 & 6\\
D7 & 7\\
D8 & 8\\
D9 & 9\\
V10 & V10\\
\end{Bmatrix}
=
\begin{Bmatrix}
& count\\
A12 & A12\\
AA & A4\\
A104 & A104\\
\end{Bmatrix}
\end{equation}
Dieses System ist nicht lösbar, da zu viele Unbekannte in der Gleichung auftauchen. Dies liegt insbesondere an fehlenden Ausgangswerten. Diese können allerdings nicht bestimmt werden.[zeitproblem]
[virtuelle spursensoren]
[l"osbarkeit]
[zus"atzlich gleichungen]
[L"osbarkeit ohne Abbiegewahrscheinlichkeiten]
Durch Zusätzliche Gleichungen können die Werte weiter eingeschränkt werden. Dies führt allerdings nicht zur Lösbarkeit des Systems.
\begin{enumerate}
\item{Abbw addiert = 1}
\item{Vallidierungssensoren}
\end{enumerate}
Eine weitere Anwendung ist die Berechnung der Abbiegewahrscheinlichkeiten. Unter der Annahme, dass alle Werte der Sensoren bekannt sind, allerdings für einen Mischspursensor die Abbiegewahrscheinlichkeiten nicht bekannt sind. Allerdings ist auch dieses System nicht lösbar, da Ausgangswerte fehlen.
\subsection{Kreuzungsberechnung am Graphen}\label{sec:berechnung:graph}
Da alle modellierten Kreuzungen der 'Ministadt' alle eingehenden Spuren mit Sensoren versehen haben, k"onnen die Gleichungen f"ur die jeweiligen Ausg"ange unabh"angig voneinander gel"ost werden. Dies erlaubt es die Ausg"ange bzw. Eing"ange mithilfe des Graphen zu berechnen.Das entwickelte Verfahren amcht sich zunutze, dass alle Eing"ange mit den Ausg"angen einer Kreuzung "uber genau einen bekannten Sensor miteinander verbunden sind.\\ \\
@ -180,4 +250,13 @@ Das Ziel f"ur \ref{problem:1} virtuelle Sensoren Werte zu berechnen war das erst
Zwischen Kreuzungen ist das entwickelte Modell ungenau, da Seitenstraßen und Kreuzunge nicht modelliert sind. Es kann allerdings aufgrund der Berechnungen aus \autoref{sec:berechnung:lgs:xr} ein Wert f"ur den verkehr bestimmt werden, welche von einer Kreuzung ausgehend in eine bestimmte Richtung fließt.
Dieser Wert entspricht dem f"ur den Ausgang der Kreuzung berechneten Wert, da dieser Wert aussagt wie viele Autos die kreuzung in diese Richtung verlassen haben.\\ \\
Dadurch dass die vorliegenden Sensordaten f"ur eine Minute gemessen wurden, kann leider nicht berechnet werden wieviel des verkehrs welcher eine kreuzung verl"asst an einer anderen wieder einfließt und welcher Teil in Seitenstraßen abgeflossen ist.
\newpage
\newpage
\subsubsection{Sonderfall: Vallidierungssensor}\label{sec:modell:matrix:vallidate}
Mit beiden Matrizen wird eine Kreuzung ohne Validierungssensoren vollst"andig beschrieben. Sind dagegen valliderungssensoren Vorhanden, so beschriebt die Matrix nicht mehr den kompletten Graphen wie das beispiel der [] zeigt:
[Eingansmatrix]
[Ausgangsmatrix]
Die Verbindung von Sensor [] nach Sensor [] wird hier nicht modelliert.
F"ur die Berechnung wird sich zeigen, dass das unerheblich ist, sofern man
Sensor[] in der Ausgangsmatrix f"ur die Zeile [][] eintr"agt. Die Berechnung der Geradeausspur ist dann wie folgend: [] - [] = A.

View File

@ -91,21 +91,25 @@ In diesem Kapitel werden die Grundlagen der Verkehrstechnik und -Modellierung be
\end{figure}
Sensorspalten, welche auf Z enden, bezeichnen den 'count'-Wert des jeweiligen Sensors, solche die auf B enden den 'load'-Wert. Jede Zeile in der CSV-Datei repr"asentiert dabei eine Kreuzung zu dem gegebenen Zeitpunkt. F"ur eine Kreuzung k"onnen dabei bis zu 64 Sensoren in der CSV bereitgestellt werden.
Um die Zuordnung von CSV-Spalte zu dem ta"achlichen Sensornamen der CAD-Zeichnungen\gls{gls:cad} herzustellen, werden sog. "Ubersetzungstabellen ben"otigt. Diese ordnen einer CSV-Sensorspalte (1-64) einen kreuzungsspezifischen Sensornamen zu. In der Praxis wird eine solche "Ubersetzungstabelle durch einen Offset auf der CSV-Datei im Computer nachgebildet. Für die in diese Arbeit modellierten Kreuzungen sind Übersetzungstabellen sowie die CAD-Zeichnung im Anhang zu finden\autoref{abb}.
\subsubsection{MYSQL-Daten des Projektes Verkehrsvisualisierung}\label{sec:datengrund:inductvalues:mysql}
Im Rahmen der Arbeit von \cite{thesis:mueller}, welche die Sensorwerte auf eine Karte projeziert, wurden die CSV-Dateien bereits in eine MYSQL-Datenbank "uberf"uhrt.
Die Sensordaten sind dort bereits mit Geoinformationen des OpenStreetMap Projektes verkn"upft und geben Auskunft "uber Kreuzung- und Sensorpositionen.\\ \\
Die Daten verwendeten Daten befinden sich dort in drei Tabelle:
\subsubsection{MYSQL-Daten der JEE6 Anwendung zur Bereitstellung von Verkehrsdaten}\label{sec:datengrund:inductvalues:mysql}
Im Rahmen der Arbeit von \cite{thesis:mueller}, wurde eine JEE6\footnote{todo} Anwendung entwickelt, welche die aufbereiteten Verkehrsdaten der Stadt Darmstadt bereit stellt. Hierfür wurden die CSV-Dateien geparsed und in eine MYSQL-Datenbank überführt. Die dort gesammelten Sensordaten wurden bereits mit Geoinformation des OpenStreetMap Projektes verknüpft und erlauben eine Positionierung von Kreuzungs- und Sensorknoten mithilfe der bereitgestellten Latidue und Longitude Werte.
[ER Diagramm]
Aus dieser Datenbank wurden alle Sensorwerte und Positionsangaben, welche im Rahmen dieser Arbeit benötigten wurden, entnommen. Die gesuchten Daten sind dabei auf drei Tabellen verteilt:
\begin{enumerate}
\item{jee\_crmodel\_CrossroadDim: In dieser Tabelle werden Kreuzungsname und -Position abgespeichert.}
\item{jee\_crmodel\_SensorDim: In dieser Tabelle werden Sensorname und -Position, sowie die Kreuzung auf der der Sensor verbaut ist, gespeichert. Ein CSV-Offset identifiziert den Sensor bez"uglich seiner Position in der CSV-Datei.}
\item{jee\_trafficlight\_rawevents: In dieser Tabelle werden die eingelesenen CSV-Dateien der Stadt gespeichert. Dies umfasst neben den Werten 'load' und 'count' und Messdatum, die zugeh"orige Kreuzung. Ein Sensor kann anhand des gespeicherten CSV-Offsets mit jee\_crmodel\_SensorDim identifiziert und lokalisiert werden.}
\end{enumerate}
Um die gespeicherte Sensorposition zu ermitteln wurde eine SQL-Abfrage\ref{lst:sql_sensorquery} entwickelt, welche Kreuzungs- und Sensornamen, sowie dessen jeweiligen Latitude und Longitude zur"uckgibt. Die Auswahl ist dabei auf die zehn untersuchten Kreuzungen beschr"ankt. Mehr Informationen zu dem gew"ahlten Ausschnitt sind [] zu finden.
\end{enumerate}
Um die Daten für eigene Zwecke verwenden zu können, wurden die benötigten Teile extrahiert und in einem eigenen Datenbankschema abgespeichert. Mehr Informationen zu dem entwickelten Datenbankmodell sind im Kapitel \autoref{sec:berechnung} zu finden. Desweiteren wurden verschiedene SQL-Abfragen entwickelt, um die benötigten Informationen zu extrahieren. \\ \\
Um die gespeicherte Sensorposition zu ermitteln wurde eine SQL-Abfrage\ref{lst:sql_sensorquery} entwickelt, welche Kreuzungs- und Sensornamen, sowie dessen jeweiligen Latitude und Longitude zur"uckgibt. Die Auswahl ist dabei auf die zehn untersuchten Kreuzungen beschr"ankt. Das Feld 'VALIDTO' in der Kreuzungstabelle bestimmt dabei, ob die Kreuzung noch in Betrieb/gültig ist. Sensornamen werden ebenfalls gefiltert, da ausschließlich Werte für Sensoren mit einem führenden 'D' vorliegen.
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Stra"senklasse ST}, label={lst:sql_sensorquery}, captionpos=bsec]
SELECT CD.REALNAME AS CR_NAME,
SD.LAT as Sensor_LAT,
SD.LON AS Sensor_Long, SD.REALNAME
SD.LON AS Sensor_Long,
SD.REALNAME
FROM `jee_crmodel_CrossroadDim` AS CD,
`jee_crmodel_SensorDim` as SD
WHERE CD.VALIDTO is null
@ -115,51 +119,51 @@ In diesem Kapitel werden die Grundlagen der Verkehrstechnik und -Modellierung be
AS sensors
\end{lstlisting}
\end{minipage}
Eine weitere Abfrage dient dem Ermitteln der Sensorwerte "uber einen bestimmten Zeitraum. Zu Identifizierung des Sensors wird der CSV-Offset benutzt.
Eine weitere Abfrage dient dem Ermitteln der Sensorwerte "uber einen bestimmten Zeitraum. Zu Identifizierung des Sensors wird der CSV-Offset benutzt. Die extrahierten Daten entsprechen dem Inhalt einer CSV-Datei der Stadt Darmstadt. Die Abfrage aus \autoref{lst:sql_sensorquery} wird dabei mit einer Abfrage auf der Tabelle 'jee\_trafficlight\_rawevents kombiniert. Auf diese Weise erhält man Sowohl die Sensor und Kreuzungsinformationen, als auch die Zählwerte der Induktionsschleifen. Ein Filter auf der Spalte DATETIME der Ampelrohevents erlaubt eine Auswahl des Zeitpunktes. Dabei ist zu beachten, dass die Zeitangaben in UTC-Zeitformat angegeben werden müssen.
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Stra"senklasse ST}, label={listing1}, captionpos=bsec]
SELECT * FROM ( SELECT CD.REALNAME AS CR_NAME,
SD.REALNAME, SD.CSVOFFSET,
SELECT * FROM (SELECT CD.REALNAME AS CR_NAME,
SD.REALNAME,
SD.CSVOFFSET,
CD.VALIDFROM
FROM `jee_crmodel_CrossroadDim` AS CD,
jee_crmodel_SensorDim` as SD
`jee_crmodel_SensorDim` as SD
WHERE CD.VALIDTO is null
AND CD.REALNAME IN('A 3','A 4','A 5',...,'A 59','A104')
AND CD.REALNAME IN('A 3','A 4',...,'A104')
AND SD.REALNAME LIKE 'D%'
AND SD.CROSSROAD_ID = CD.ID) AS sensors,
`jee_trafficlight_rawevents` AS raw
WHERE sensors.CR_NAME=raw.CROSSROAD
AND raw.DATETIME IN ('2013-05-20 15:01:00','2013-05-20 15:02:00','2013-05-20 15:03:00')
AND raw.DATETIME IN ('2013-05-20 15:01:00','2013-05-20 15:02:00')
AND sensors.CSVOFFSET=raw.CSVOFFSET
\end{lstlisting}
\end{minipage}
Zu beachten ist, dass die Zeitabfrage nach UTC-Zeit durchgef"uhrt werden muss.
Mithilfe dieser Abfragen konnten alle ben"otigten Informationen aus der Datenbank extrahiert werden. Wie diese abgespeichert wurde wird im Kapitel \autoref{sec:modell} n"aher behandelt.
\subsection{Geographischer Ausschnitt der Daten}\label{sec:datengrund:geo}
Um die Komplexit"at, Modellierungsaufwand und den Aufwand der Berechnungen zu reduzieren, wurde das untersuchte Gebiet auf einen kleinen Ausschnitt der Stadt (im folgenden Ministadt genannt) beschr"ankt. Dieser Ausschnitt erstreckt sich "uber zehn Kreuzungen, der A3, A4, A5, A12, A23, A28, A29, A46, A59 und A104.
Um die Komplexit"at, Modellierungsaufwand und den Aufwand der Berechnungen zu reduzieren, wurde das untersuchte Gebiet auf einen kleinen Ausschnitt der Stadt (im folgenden Ministadt genannt) beschr"ankt. Dieser Ausschnitt erstreckt sich "uber zehn Kreuzungen, der A3, A4, A5, A12, A23, A28, A29, A46, A59 und der A104.
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{pic/overview_ministadt}
\caption{Ministadt, Ausschnitt von Darmstadt der innerhalb dieser Arbeit betrachtet wird.}
\end{figure}
Die Wahl des Ausschnitts richtete sich insbesondere nach der Anzahl der verbauten Sensorik. So finden sich auf allen zehn Kreuzungen 89 Sensoren, f"ur welche Sensorwerte zur Verf"ugung stehen. Neben der Anzahl der Sensoren wurde auch darauf geachtet, dass die untersuchten Kreuzungen sog. Sonderf"allen aufweisen. Diese Sonderf"alle sind im folgenden beschrieben:
\end{figure}
Die Wahl des Ausschnitts richtete sich insbesondere nach der Anzahl der verbauten Sensorik. So finden sich auf allen zehn Kreuzungen 89 Sensoren, f"ur welche Sensorwerte zur Verf"ugung stehen. Neben der Anzahl der Sensoren wurde auch darauf geachtet, dass die untersuchten Kreuzungen sog. Sonderf"allen aufweisen. Diese Sonderf"alle sind Verkehrsvorgaben oder spezielle Sensoren und sind im folgenden beschrieben:
\begin{enumerate}
\item{Einbahnstra"sen: Eine Stra"se, welche nur in eine Richtung befahren werden darf.}
\item{Mischspuren: Kreuzungseingangsfahrspuren, welche dem Verkehrsteilnehmer, welcher daruf steht, erlauben die Kreuzung in mehr als eine Richtung zu verlassen.}
\item{Mischspuren: Kreuzungseingangsfahrspuren, welche dem Verkehrsteilnehmer, erlauben die Kreuzung in mehr als eine Richtung zu verlassen.}
\item{Seitenstra"sen: Seitenstra"sen ohne Sensorik.}
\item{Validierungssensoren: Sensoren, welche die Sensorwerte anderer Sensoren (teilweise) best"atigen.}
\end{enumerate}
\end{enumerate}
Die Einbahnstraße verläuft dabei von Kreuzung A29 nach A104. Sie verspricht eine einfachere Berechnung von Verkehrswerten, da eine Kreuzung mit einer Einbahnstraße nur drei Kreuzungsein- und -Ausgänge hat, im Gegensatz zu einer 'normalen' Kreuzung mit jeweils vier Ein- und Ausgängen. Mischspuren sind dagegen hinderlich für die Berechnung, da ihr gemessener Wert, im Gegensatz zu Einspursensoren, nicht direkt einem Ausgang zugeordnet werden kann.
\subsection{CAD-Zeichnungen der Kreuzungen}\label{sec:datengrund:cad}
Es stehen au"serdem die CAD-Zeichnungen der Kreuzungen von der Stadt Darmstadt zur Verf"ugung. Diese CADs wurden im Rahmen der Kooperation des Projekts \cite{thesis:mueller} und der Stadt Darmstadt der TU-Darmstadt zur Verf"ugung gestellt\footnote{Die CAD-Bilder sind unter \url{http://www.da-sense.de/trafficdata/information.php} zu erhalten}.
Sie geben Aufschluss, an welcher Stelle ein Sensor in der Stra"sendecke verbaut ist und weist dessen kreuzungsinternen Namen aus, welcher zu Identifizierung des Sensors ben"otigt wird.
Die CAD-Zeichnungen dienen der manuellen Modellierung des Stra"senmodells, sowie der Identifizierung der Sensoren sowie der Zuordnung ihrer Sensor-Klasse und -Type. So sind in den CAD-Zeichnungen die Fahrspuren und deren erlaubte Flie"srichtung markiert. Aufgrund dessen konnte eine Zuordnung von Sensoren nach ihrer Klasse, Einspur-Sensor oder Mischspur-Sensor vorgenommen werden.
Desweiteren wurden mithilfe der CAD-Zeichnungen die Verbindungen von Sensor zu virtuellem Kreuzungsausgangsknoten manuell in der Datenbank vermerkt, um den Graphen aufzuspannen. Eine ausf"uhrliche Beschreibung findet sich im Kapitel \autoref{sec:modell}.
Die CAD-Zeichnungen der Kreuzungen der 'Ministadt' sind im Anhang beigef"ugt.[]
Es stehen au"serdem die CAD-Zeichnungen\gls{cad} der Kreuzungen von der Stadt Darmstadt zur Verf"ugung. Diese CADs wurden im Rahmen der Kooperation des Projekts \cite{thesis:mueller} und der Stadt Darmstadt der TU-Darmstadt zur Verf"ugung gestellt\footnote{Die CAD-Bilder sind unter \url{http://www.da-sense.de/trafficdata/information.php} zu erhalten}.
Sie geben Aufschluss, an welcher Stelle ein Sensor in der Stra"sendecke verbaut ist und weist dessen kreuzungsinternen Namen aus, welcher zu Identifizierung des Sensors ben"otigt wird. Die CAD-Zeichnungen dienen der manuellen Modellierung des Stra"senmodells, sowie der Identifizierung der Sensoren sowie der Zuordnung ihrer Sensor-Klasse und -Typs. So sind in den CAD-Zeichnungen die Fahrspuren und deren erlaubte Flie"srichtung markiert. Aufgrund dessen konnte eine Zuordnung von Sensoren nach ihrer Klasse, Einspursensor oder Mischspursensor vorgenommen werden.
Desweiteren wurden mithilfe der CAD-Zeichnungen die Verbindungen von Sensor zu virtuellem Kreuzungsausgangsknoten manuell in der Datenbank vermerkt, um den, im Kapitel\autoref{sec:modell} entwickelten, Graphen aufzuspannen. Die CAD-Zeichnungen der Kreuzungen der 'Ministadt' sind im Anhang beigef"ugt.[]
\subsection{Abbiegewahrscheinlichkeiten}\label{sec:datengrund:abbw}
Von der Stadt Darmstadt wurden neben den Sensorwerten, gemittelte Abbiegewahrscheinlichkeiten f"ur einige der Induktionsschleifen zur Verf"ugung gestellt, welche f"ur die Berechnung von Verkehrsfl"ussen bei Mischspursensoren ben"otigt. Die Abbiegewahrscheinlichkeiten eines Sensors beschreiben dabei wie viel Prozent des Verkehrs, welcher "uber den Sensor flie"st, zu den jeweiligen Ausgang der Kreuzung flie"st. N"aheres ist im Kapitel \autoref{sec:berechnung} zu finden. Diese Daten wurden mithilfe von Video"uberwachung der zu untersuchenden Kreuzungen, f"ur die Planungsabteilung des Verkehrsamtes der Stadt ermittelt. Alle Werte sind dabei "uber alle Messungen eines Tages gemittelt und liegen in PDF-Format vor \ref{abb:5}\ref{abb:6}.\\ \\
\cite{thesis:michael} hat im Rahmen seiner Bachelorarbeit diese Daten in eine MYSQL-Datenbank "ubertragen. Desweiteren berechnet er genauere Abbiegewahrscheinlichkeiten f"ur die einzelnen Knoten, indem mithilfe einer Mittelung die Ausgangswerte einer Kreuzung in Beziehung zu einem Wert am benachbarten Kreuzungseingang gesetzt werden. Diese Daten lagen allerdings noch nicht vor und konnten aus diesem Grund im Rahmen dieser Arbeit nicht untersucht werden.\\ \\
Die Abbiegewahrscheinlichkeiten der Stadt liegen in der Form [in verkehrsrichtung] vor. Um sie sinnvoll zu verwenden m"ussen die Abbiegewahrscheinlichkeit manuell auf einen Prozentwert f"ur jede Richtung reduziert werden. Hierf"ur werden wiederum die CAD-Zeichnungen der Kreuzungen ben"otigt, da die Angaben sehr kreuzungsspezifisch sind.\\ \\
Von der Stadt Darmstadt wurden neben den Sensorwerten, gemittelte Abbiegewahrscheinlichkeiten f"ur einige der Induktionsschleifen zur Verf"ugung gestellt, welche f"ur die Berechnung von Verkehrsfl"ussen bei Mischspursensoren ben"otigt werden. Die Abbiegewahrscheinlichkeiten eines Sensors beschreiben dabei wie viel Prozent des Verkehrs, welcher "uber den Sensor flie"st, zu den jeweiligen Ausgang der Kreuzung flie"sen darf. N"aheres ist im Kapitel \autoref{sec:berechnung} zu finden. Diese Daten wurden mithilfe von Video"uberwachung der zu untersuchenden Kreuzungen, f"ur die Planungsabteilung des Verkehrsamtes der Stadt ermittelt. Alle Werte sind dabei "uber alle Messungen eines Tages gemittelt und liegen in PDF-Format vor \ref{abb:5}\ref{abb:6}.\\ \\
\cite{thesis:michael} hat im Rahmen seiner Bachelorarbeit diese Daten in eine MYSQL-Datenbank "ubertragen. Desweiteren berechnet er genauere Abbiegewahrscheinlichkeiten f"ur die einzelnen Knoten, indem mithilfe einer Mittelung die Ausgangswerte einer Kreuzung in Beziehung zu einem Wert am benachbarten Kreuzungseingang gesetzt werden. Diese Daten lagen allerdings noch nicht vor und konnten aus diesem Grund im Rahmen dieser Arbeit nicht untersucht werden.\\ \\
Die Abbiegewahrscheinlichkeiten der Stadt liegen in der Form (Kreuzung, Sensor, Links, Rechts, Geradeaus) vor. Die Werte für Links, Rechts und Geradeaus sind dabei in einer komplexen Form angegeben und müssen zur Verwendung auf eine Gleitkommazahl reduziert werden. Desweiteren gilt es die Richtung vom Sensor unabhängig zu machen, da die Angaben Links, Rechts und Geradeaus sich auf die Fahrtrichtung des Verkehrs über den Sensor beziehen.\\ \\
Zu Reduzierung der Werte auf Gleitkommazahlen wurden die Daten manuell bearbeitet. Die CAD-Zeichnungen dienen dabei als Hilfe, um die kreuzungsspezifischen Angaben interpretieren zu können.
[BSP]
-- berechnung?
Neben der Reduktion auf Prozentwerte, m"ussen die Richtungsangaben 'Straight', 'Left und 'Right' auf globale Werte umgerechnet werden, da diese Richtungsangaben von der Position des Sensors abh"angt. Hierf"ur m"ussen die drei Richtungsangaben auf Kreuzungsnamen umgerechnet werden, welche auf den Ausgang der betrachteten Kreuzung folgen.
Ermittelt man die Kreuzung, von welcher der Verkehrsteilnehmer, welche den Sensor passiert hat, so kann mithilfe der Positionen aller drei Kreuzungen bestimmt werden, in welche Richtung der Verkehr flie"st.\\ \\
Hierf"ur werden die Positionen, angegeben in Latitude und Longitude, der jeweils zweier Kreuzungen voneinander abgezogen.
@ -192,24 +196,26 @@ In diesem Kapitel werden die Grundlagen der Verkehrstechnik und -Modellierung be
\end{enumerate}
}
\end{enumerate}
\subsection{Das Zeitproblem}\label{sec:datengrund:probtime}
Die Daten der Induktionsschleifen sind die Werte der Sensoren "uber die letzte Minute. Sie zeigen eine Art summierte Momentaufnahme des Verkehrs an den Messpunkten. Das macht es allerdings schwer zwei Messungen in eine Beziehung zu stellen. Bildlich gesprochen kann man nicht trivial bestimmen, wie lange ein Auto von der einen zur anderen Kreuzung ben"otigt. Da die Daten nur f"ur bestimmte Zeitpunkte zur Verf"ugung stehen, kann nicht mehr festgetsllt werden wann ein Auto, welches an Kreuzung A "uber den Sensor gefahren ist, an Kreuzung B ankommt und dort "uber den Sensor f"ahrt.
Eine 'Verfolgung' eines Autos ist somit nicht m"oglich, da nicht festgestellt werden kann, wie weit es bis zur n"achsten Momentaufnahme gekommen ist.
\subsection{Herausforderungen}
Während der Datenanalyse und Aufbereitung wurden einige Herausforderungen erkannt, die es zu lösen gilt, da sie andernfalls die Lösungsmöglichkeiten einschränken. Zum einen ist das das Zeitproblem, welches eine Verbindung von Sensorwerten von zwei Kreuzungen nicht zulässt, zum anderen das Abbiegeproblem, welches beschreibt, das die Abbiegewahrscheinlichkeit nicht mithilfe der Sensorwerte gemessen werden kann.
\subsubsection{Das Zeitproblem}\label{sec:datengrund:probtime}
Die Daten der Induktionsschleifen sind die Werte der Sensoren "uber die letzte Minute. Sie zeigen eine Art summierte Momentaufnahme des Verkehrs an den Messpunkten. Das macht es allerdings schwer zwei Messungen in eine Beziehung zu stellen. Bildlich gesprochen kann man nicht trivial bestimmen, wie lange ein Auto von der einen zur anderen Kreuzung ben"otigt. Da die Daten nur f"ur bestimmte Zeitpunkte zur Verf"ugung stehen, kann nicht mehr festgetsllt werden wann ein Auto, welches an Kreuzung A "uber den Sensor gefahren ist, an Kreuzung B ankommt und dort "uber den Sensor f"ahrt.
Eine 'Verfolgung' eines Autos ist somit nicht m"oglich, da nicht festgestellt werden kann, wie weit es bis zur n"achsten Momentaufnahme gekommen ist.
Ein Naiver Ansatz f"ur viele Berechnungen ist es den Ausgangswerte einer Kreuzung an den Eingang der n"achsten zu legen. Dieses Verfahren ist allerdings problematisch, da die Sensorwerte im einem Regelm"a"sigen Abstand gemessen werden, ein Auto sich allerdings nicht daran halten muss. Es k"onnte also zwei kreuzungen oder 1,5 in einer Zeiteinheit hinter sich lassen.
\subsection{Das Abbiegeproblem}\label{sec:datengrund:abbprob}
Das 'Abbiegeproblem' ist auf zu wenige Sensorwerte zur"uckzuf"uhren. In den Kreuzungen von Darmstadt sind die Induktionsschleifen am Kreuzungseingang verbaut, allerdings nicht am Kreuzungs Ausgang(bis auf wenige Ausnahmen). Es kann f"ur Mischspursensoren folglich nicht live bestimmt werden, wie viele Autos in die eine und wie viele in die andere gefahren sind. Um den Fluss trotzdem bestimmen zu k"onnen, wird in dieser Arbeit mit Abbiegewahrscheinlichkeiten gerechnet, welche angeben, wieviel Prozent des Verkhrs, welcher "uber einen Sensor f"ahrt, die Kreuzung in welche Richtung verl"asst.
Ein Naiver Ansatz f"ur viele Berechnungen ist es den Ausgangswerte einer Kreuzung an den Eingang der n"achsten zu legen. Dieses Verfahren ist allerdings problematisch, da die Sensorwerte im einem Regelm"a"sigen Abstand gemessen werden, ein Auto sich allerdings nicht daran halten muss. Es k"onnte also zwei kreuzungen oder 1,5 in einer Zeiteinheit hinter sich lassen.
\subsubsection{Das Abbiegeproblem}\label{sec:datengrund:abbprob}
Das 'Abbiegeproblem' ist auf zu wenige Sensorwerte zur"uckzuf"uhren. In den Kreuzungen von Darmstadt sind die Induktionsschleifen am Kreuzungseingang verbaut, allerdings nicht am Kreuzungs Ausgang(bis auf wenige Ausnahmen). Es kann f"ur Mischspursensoren folglich nicht live bestimmt werden, wie viele Autos in die eine und wie viele in die andere gefahren sind. Um den Fluss trotzdem bestimmen zu k"onnen, wird in dieser Arbeit mit Abbiegewahrscheinlichkeiten gerechnet, welche angeben, wieviel Prozent des Verkhrs, welcher "uber einen Sensor f"ahrt, die Kreuzung in welche Richtung verl"asst.
Nachfolgend ein Beispiel einer Kreuzung, der A4, welche an einer Stelle eine Validierung zul"asst.
Nachfolgend ein Beispiel einer Kreuzung, der A4, welche an einer Stelle eine Validierung zul"asst.
\begin{figure}[htbp!]
\centering
\fbox{\includegraphics[width=0.5\textwidth-2\fboxsep-2\fboxrule]{ext/KreuzungA4}}
\caption{Kreuzung A4}
\end{figure}
\begin{figure}[htbp!]
\centering
\fbox{\includegraphics[width=0.5\textwidth-2\fboxsep-2\fboxrule]{ext/KreuzungA4}}
\caption{Kreuzung A4}
\end{figure}
Der Sensor [] kann partiell durch den Sensor [] validiert werden. Da die Autos "uber den Sensor [] in genau zwei Richtungen fahren k"onnen, kann der Fluss eindeutig bestimmt werden und es kann live berechnet werden wieviele Autos, welche "uber den Sensor [] gefahren sind nach rechts abgebogen sind, und wieviele geradeaus gefahren sind.
Der Sensor [] kann partiell durch den Sensor [] validiert werden. Da die Autos "uber den Sensor [] in genau zwei Richtungen fahren k"onnen, kann der Fluss eindeutig bestimmt werden und es kann live berechnet werden wieviele Autos, welche "uber den Sensor [] gefahren sind nach rechts abgebogen sind, und wieviele geradeaus gefahren sind.
S[] -> Virtual Out A3 = S[] - S[]
S[] -> Virtual Out A23 = S[]
S[] -> Virtual Out A3 = S[] - S[]
S[] -> Virtual Out A23 = S[]
\newpage

View File

@ -1,44 +1,35 @@
\section{Verkehrsmodell}\label{sec:modell}
In diesem Kapitel werden zwei Modellierungen der zehn untersuchten Kreuzungen, der 'Ministadt', vorgestellt und erkl"art. Die 'Ministadt' weist eine große Anzahl an verbauten Sensoren in ihrem Gebiet auf und eignet sich aus diesem Grund f"ur eine Modellierung. Die beiden diskutierten Modelle sind die Darstellung als Matrix und die als Graph. Diese beiden Darstellungen sind untereinander kompatibel, k"onnen deshalb ineinander "uberf"uhrt werden. Der Graph ist ein n"utzliches Werkzeug der Visualisierung w"ahrend die Matrixdarstellung der Berechnung dient. Als Grundlage f"ur die Modellierung dienen die in Kapitel \autoref{Daten} beschriebenen Daten.\\ \\
In der Industrie eingesetzte Software zur Berechnung und Modellierung von Verkehrsfl"ussen, verwenden meistens ein sog. Micro Modell(VISUM), um die Interaktion der einzelnen Verkehrsteilnehmer modellieren zu k"onnen. Da die Sensorwerte, welche zur Verf"ugung stehen allerdings "uber einen Zeitraum von einer Minute aufgenommen werden, eignet sich eine Micromodellierung des Verkehrs nicht. F"ur einen solchen Modellierungsansatz sind genauere und mehr Daten notwendig. Es stehen allerdings lediglich Messwerte von 89 Sensoren zur Verf"ugung.\\ \\
In der Industrie eingesetzte Software zur Berechnung und Modellierung von Verkehrsfl"ussen, verwenden meistens ein sog. Micro Modell(VISUM), um die Interaktion der einzelnen Verkehrsteilnehmer modellieren zu k"onnen. Da die Sensorwerte, welche zur Verf"ugung stehen allerdings "uber einen Zeitraum von einer Minute aufgenommen werden, eignet sich eine Micromodellierung des Verkehrs nicht. F"ur einen solchen Modellierungsansatz sind genauere und mehr Daten notwendig. Es stehen allerdings lediglich Messwerte von 89 Sensoren zur Verf"ugung. Eine Modellierung einzelner Autos erscheint deshalb, allein anhand der Induktionsschleifen, nicht möglich zu sein\\ \\
In dieser Arbeit wird eine Zweistufenmodellierung vorgestellt, welches f"ur Kreuzungen eine genauere Modellierung auf Sensorebene zul"asst, w"ahrend es zwischen den Kreuzungen ein ungenauere Modellierung vornimmt. Dies ist sinnvoll, da nur im Kreuzungsbereich Sensoren zur Verf"ugung stehen, w"ahrend kleinere Kreuzungen und Straßenz"uge nicht mit Sensoren best"uckt sind und aus diesem Grund keine qualifiziert Aussage "uber diese gemacht werden kann.\\
Die Grundannahme f"ur das Modell ist, dass sich die Verkehrsteilnehmer an die Stra"senverkehrsordnung halten, da nur verkehrsg"ultige Verbindungen von Kreuzungen, Knoten und Sensoren modelliert werden. Die beschriebene Modellierung kann dabei nicht jedes Verkehrsverhalten beschreiben. So kann beispielsweise der R"uckfluss von Autos, welche eine sog. 'U-Turn' an einer Kreuzung vollf"uhren, nicht mit dem entwickelten Modell modelliert werden.[]\\ \\
Die Grundannahme f"ur das Modell ist, dass sich die Verkehrsteilnehmer an die Stra"senverkehrsordnung halten, da nur verkehrsg"ultige Verbindungen von Kreuzungen, Knoten und Sensoren modelliert werden. Die beschriebene Modellierung kann dabei nicht jedes Verkehrsverhalten beschreiben. So kann beispielsweise der R"uckfluss von Autos, welche eine sog. 'U-Turn' an einer Kreuzung vollf"uhren, nicht mit dem entwickelten Modell modelliert werden. Eine genaue Beschreibung der Einschränkungen und Voraussetzungen ist am Ende dieses Kapitels zu finden.\\ \\
\subsection{Modell der Ministadt}\label{sec:modell:ministadt}
Die 'Ministadt' enth"alt zehn, mit Sensoren best"uckte, Kreuzungen. Diese Kreuzungen werden mit A3, A4, A5, A12, A23, A28, A29, A46, A59 und A104 bezeichnet. Die Bezeichnung stammt dabei aus der CAD-Übersichts-Karte[] der Stadt Darmstadt, die zur Verf"ugung steht. Eine genaue Beschreibung der Daten ist in Kapitel \autoref{sec:datengrund} zu finden.\\ \\
F"ur das hier entwickelte Stra"senmodell wurde das Straßennetz in sieben Objekte aufgeteilt und diese modelliert:
Die 'Ministadt' enth"alt zehn, mit Sensoren best"uckte, Kreuzungen. Diese Kreuzungen werden mit A3, A4, A5, A12, A23, A28, A29, A46, A59 und A104 bezeichnet. Die Bezeichnung stammt dabei aus der CAD-Übersichtskarte\ref{abb:caddarmstadt} der Stadt Darmstadt,. Eine genaue Beschreibung des gewählten geographischen Ausschnitts Daten ist in Kapitel \autoref{sec:datengrund} zu finden.\\ \\
F"ur das hier entwickelte Stra"senmodell wurde das Straßennetz in sieben Objekte unterteilt:
\begin{enumerate}
\item{Stra"se: Eine Stra"se, auf der Autos fahren d"urfen. Sie ist nicht mit Sensoren best"uckt und hat eine Fließrichtung.}
\item{Kreuzung: Eine Kreuzung ist das Zusammentreffen von zwei Stra"sen. Sie kann mit Sensoren best"uckt sein, welche den Verkehr messen.}
\item{Kreuzung: Eine Kreuzung ist das Zusammentreffen von zwei Stra"sen. Sie kann mit Sensoren best"uckt sein, welche den Verkehr messen.}
\item{Sensor: Ein Sensor misst den Verkehr an dem Punkt des Verkehrsnetzes, an dem er verbaut ist. Er ist auf einer Fahrspur verbaut.}
\item{Virtuelle Sensoren: Punkte im Stra"sennetz, f"ur welche allerdings keine Messwerte vorliegen.}
\item{Fahrspur: Eine Fahrspur bezeichnet einen Bereich der Straßenfahrbahn und zeigt auf verschiedene Ausg"ange der Kreuzung. Ein Kreuzungsein bzw. -ausgang kann mehrere Fahrspuren besitzen.}
\item{Kreuzungsausgang: Ein Ausgang einer Kreuzung auf dem verkehr die Kreuzung verlassen kann.}
\item{Kreuzungseingang: Ein Eingang einer Kreuzung auf dem Verkehr die Kreuzung befahren kann.}
\end{enumerate}
Um eine "Ubersicht "uber das zu betrachtende Gebiet der 'Ministadt' zu erhalten wurde
eine "Ubersicht "uber alle Kreuzungen in dem gesamten betrachteten Gebiet erstellt. In dieser Modellierung entfallen alle Seitenstra"sen und Zwischenkreuzungen ohne Sensoren.
Die Zwischenkreuzungen entfallen, da keinerlei Messdaten f"ur diese Kreuzungen vorhanden sind, weshalb die Kreuzungs"ubersicht eine Verallgemeinerung des Verkehrsnetzes darstellt. Es werden dabei nur sensorbest"uckte Kreuzungen aufgezeigt.\\
Mit Rechtecke werden die betrachteten Kreuzungen vermerkt, mit Kreisen die nicht mehr modellierten Nachbarkeuzungen. Pfeile weisen dabei auf, in welche Richtung der Verkehr, regelkonform fließen darf. So ist von der Kreuzung A30 nach A104 eine Einbahnstraße an den einfachen Pfeilen zu erkennen, w"ahrend Straßen, welche in beide Richtungen befahren werden k"onnen mit Doppelpfeilen dargestellt werden.
\item{Kreuzungsausgang: Ein Ausgang einer Kreuzung auf dem Verkehr die Kreuzung verlassen kann.}
\item{Kreuzungseingang: Ein Eingang einer Kreuzung auf dem Verkehr in die Kreuzung einfahren kann.}
\end{enumerate}
Um eine "Ubersicht "uber das zu betrachtende Gebiet der 'Ministadt' zu erhalten wurde eine "Ubersicht "uber alle Kreuzungen in dem gesamten betrachteten Gebiet erstellt. In dieser Modellierung entfallen alle Seitenstra"sen und Zwischenkreuzungen ohne Sensoren. Die Zwischenkreuzungen entfallen, da keinerlei Messdaten f"ur diese Kreuzungen vorhanden sind, weshalb die Kreuzungs"ubersicht eine Verallgemeinerung des Verkehrsnetzes darstellt. Es werden dabei nur sensorbest"uckte Kreuzungen aufgezeigt.\\
Mit Rechtecke werden die betrachteten Kreuzungen vermerkt, mit Kreisen die nicht mehr modellierten Nachbarkeuzungen. Pfeile weisen dabei Straßen mit einer Richtung auf, in welche der Verkehr regelkonform fließen darf. So ist von der Kreuzung A29 nach A104 eine Einbahnstraße an den einfachen Pfeilen zu erkennen, w"ahrend Straßen, welche in beide Richtungen befahren werden k"onnen mit Doppelpfeilen dargestellt werden.
\begin{figure}[htbp!]
\centering
\fbox{\includegraphics[width=0.50\textwidth-2\fboxsep-2\fboxrule]{ext/Kreuzungsuebersicht}}
\caption{Kreuzungs"ubersicht 'Ministadt'in der Stadt Darmstadt}
\end{figure}
Um eine Übersicht "uber die zu betrachtenden Kreuzungen zu erhalten wurden manuell Zeichnungen von den zehn Kreuzungen angefertigt. Die gew"ahlte intuitive Modellierung entspricht in etwa der, welche sp"ater im Computer entsteht. Die Grundlage f"ur diese Modellierung sind die CAD-Zeichnungen der Kreuzungen der Stadt Darmstadt. Sie werden im Kapitel \autoref{sec:datengrund} genauer beschrieben.\\ \\
In der Kreuzungs"ubersicht entfallen sehr viele Details, da keine Daten f"ur bestimmte Bereiche vorhanden sind. Dagegen k"onnen die modellierten Kreuzungen wesentlich genauer dargestellt werden und lassen sich sehr gut auf Sensorebene modellieren. Neben den realen Sensoren erh"alt jede Kreuzung jeweils bis zu vier Ein- und Ausg"ange, modelliert als 'virtuelle Sensoren'. Die Sensoren werden dabei nach den jeweiligen Kreuzungseing"angen platziert, auf dem sie in der Realit"at in der Straße verbaut sind. Validierungssensoren sind solche welche R"uckschl"usse auf andere Sensoren der Kreuzung zulassen. Sie werden in der manuellen Modellierung aufgezeigt. In der Matrixdarstellung findet sich allerdings keinen Platz f"ur diese, da sie eine Grundannahme der Berechnung verletzte:
'Sensoren verbinden einen virtuellen Kreuzungseingang mit einem virtuellen Kreuzungsausgang.' Wie sich Sensoren mit Validierungssensoren validieren lassen wird im Kapitel [Berechnung] genauer behandelt.\\
Alle Sensoren wurde neben der Unterteilung nach Einspursensor und Mischspursensor nochmals in Subklassen unterschieden. Einspursensoren unterteilen sich dabei in drei Subklassen:\\
Virtuelle Sensoren weisen dabei das gleiche Verhalten wie reale Sensoren auf. Sie werden auf die gleiche Weise modelliert und lassen sie ebenfalls in verschiedene Klassen aufteilen, wie weiter unten beschrieben.\\ \\
\end{figure}
Um eine Übersicht "uber die zu betrachtenden Kreuzungen zu erhalten wurden manuell Zeichnungen von den zehn Kreuzungen angefertigt. Die gew"ahlte intuitive Modellierung entspricht in etwa der, welche sp"ater im Computer entsteht. Die Grundlage f"ur diese Modellierung sind die CAD-Zeichnungen der Kreuzungen der Stadt Darmstadt. Sie werden im Kapitel \autoref{sec:datengrund} genauer beschrieben.\\ \\
In der Kreuzungs"ubersicht entfallen sehr viele Details, da keine Daten f"ur zwischen xen Kreuzungen vorhanden sind. Dagegen k"onnen die modellierten Kreuzungen wesentlich genauer dargestellt werden und lassen sich sehr gut auf Sensorebene modellieren. Neben den realen Sensoren erh"alt jede Kreuzung jeweils bis zu vier Ein- und Ausg"ange, modelliert als 'virtuelle Sensoren'. Die Sensoren werden dabei nach den jeweiligen Kreuzungseing"angen platziert, auf dem sie in der Realit"at in der Straße verbaut sind. Validierungssensoren sind solche welche R"uckschl"usse auf andere Sensoren der Kreuzung zulassen. Sie werden in der manuellen Modellierung aufgezeigt. In der Matrixdarstellung findet sich allerdings keinen Platz f"ur diese, da diese für die Berechnung notwendig sind und diese von der Grundannahme ausgeht, dass ein Sensor direkt mit einem Kreuzungsein- und Ausgang, ohne Zwischenknoten, verbunden ist. Wie anhand des entwickelten Modells Verkehrsströme berechnet werden können und wie sich Sensoren mit Validierungssensoren validieren lassen wird im Kapitel \autoref{sec:berechnung} genauer behandelt.\\ \\
Alle Sensoren wurde neben der Unterteilung nach Einspursensor und Mischspursensor nochmals in Subklassen unterschieden. Einspursensoren unterteilen sich dabei in drei Subklassen:\\
\begin{enumerate}
\item{Einspur - Geradeaus}
\item{Einspur - Links}
\item{Einspur - Links: }
\item{Einspur - Rechts}
\end{enumerate}
\end{enumerate}
Mischspursensoren dagegen lassen sich in vier Subklassen unterteilen:
\begin{enumerate}
\item{Mischspur - Geradeaus + Rechts}
@ -46,10 +37,8 @@ Die Grundannahme f"ur das Modell ist, dass sich die Verkehrsteilnehmer an die St
\item{Mischspur - Geradeaus + Rechts + Links}
\item{Mischspur - Rechts + Links}
\end{enumerate}
Alle beschriebenen Sensorklassen und deren Subklassen sind in dem betrachteten Ausschnitt von Darmstadt enthalten.\\ \\
F"ur die Modellierung der Kreuzungen sind mehr Daten, die Positionen der Induktionsschleifen, bekannt. Die Kreuzungen werden auf Sensorebene modelliert. Sensoren werden als Achtecke mit aufgetragenen Fließrichtungen dargestellt. Straßen werden, analog zur Kreuzungs"ubersicht als Pfeile mit ihrer Fließrichtung eingezeichnet.
Dekoriert wird ein Kreuzungsbild dabei mit bis zu acht virtuellen Knoten, jeweils ein rechteckiger f"ur den jeweiligen Kreuzungsausgang, ein runden jeweils f"ur den Kreuzungseingang. Die Position des Sensors wird dahingehend vereinfacht, das er einem Kreuzungseingang zugeordnet wird und wird direkt nach dem virtuellen Eingangssensor platziert.
Alle beschriebenen Sensorklassen und deren Subklassen sind in dem betrachteten Ausschnitt von Darmstadt enthalten.\\ \\
F"ur die Modellierung der Kreuzungen sind mehr Daten, die Positionen der Induktionsschleifen, bekannt. Sensoren werden als Achtecke mit aufgetragenen Fließrichtungen dargestellt. Die Verbindungen von Sensoren und virtuellen Sensoren werden analog zur Kreuzungs"ubersicht als Pfeile mit ihrer Fließrichtung eingezeichnet. Dekoriert wird ein Kreuzungsbild dabei mit bis zu acht virtuellen Knoten, jeweils ein rechteckiger f"ur den jeweiligen Kreuzungsausgang, ein runden f"ur den Kreuzungseingang. Die Position des Sensors wird dahingehend vereinfacht, das er einem Kreuzungseingang zugeordnet wird und direkt nach dem virtuellen Eingangssensor platziert wird.
\begin{figure}[htbp!]
\label{abb:9}
\centering
@ -57,139 +46,70 @@ Die Grundannahme f"ur das Modell ist, dass sich die Verkehrsteilnehmer an die St
\caption{Kreuzung A23}
\end{figure}
Wie in Figur \autoref{abb:9} zu erkennen sind in der Kreuzung A23 zwei Validierungssensoren verbaut. Die manuelle Modellierung verbindet diese mit den entsprechenden Eingangssensoren. Dies ist zwar korrekt, aber erwies sich f"ur die Berechnung als hinderlich. Aus diesem Grund werden bei der computergest"utzten Modellierung die Eingangssensoren direkt mit den jeweiligen Ausg"angen verbunden.\\ \\
Diese intuitive Modellierung auf zwei Ebenen hat sich sowohl aus "Ubersichtsgr"unden, als auch f"ur die Berechnung als sinnvoll erwiesen. W"ahrend ein Kreuzungsbild eine wesentlich genauere Abbildung der Realit"at ist, so ist im Vergleich die Kreuzungs"ubersicht relativ ungenau, da Seitenstra"sen nicht modelliert werden und alle Kreuzungen als gleich weit voneinander entfernt betrachtet werden. Die gew"ahlte Modellierung hat folglich zwei Genauigkeitsstufen. Die "Ubersicht "uber die Kreuzungen gew"ahrt einen Blick auf die Gesammtverkehrssituation. Sie dient wie der Name schon sagt, der "Ubersicht. Ein wesentliches Ziel ist es Verkehrsdaten f"ur dieses Modell zu errechnen oder abzusch"atzen, da zwar Informationen "uber die einzelnen Kreuzungen zur Verf"ugung stehen, allerdings diese noch nicht auf ein Gesamtbild des Verkehrs "ubertragen werden kann.\\ \\ .
Die schw"ache des Modells ist die Annahme, dass ein Auto in Luftlinie von Eingangssensor zum Ausgangssensor f"ahrt und keine Geoinformationen "uber die Kanten, die Straßen, zur Verf"ugung stehen, auch wenn diese in der manuellen Modellierung angedeutet sind.
mehr schw"achen todo
Diese intuitive Modellierung auf zwei Ebenen hat sich sowohl aus "Ubersichtsgr"unden, als auch f"ur die Berechnung als sinnvoll erwiesen. W"ahrend ein Kreuzungsbild eine wesentlich genauere Abbildung der Realit"at ist, so ist im Vergleich die Kreuzungs"ubersicht relativ ungenau, da Seitenstra"sen nicht modelliert werden und alle Kreuzungen als gleich weit voneinander entfernt betrachtet werden. Die gew"ahlte Modellierung hat folglich zwei Genauigkeitsstufen. Die "Ubersicht "uber die Kreuzungen gew"ahrt einen Blick auf die Gesammtverkehrssituation. Sie dient wie der Name schon sagt, der "Ubersicht. Ein wesentliches Ziel ist es Verkehrsdaten f"ur dieses Modell zu errechnen oder abzusch"atzen, da zwar Informationen "uber die einzelnen Kreuzungen zur Verf"ugung stehen, allerdings diese noch nicht auf ein Gesamtbild des Verkehrs "ubertragen werden können.
\subsection{Modell als Graph}\label{sec:modell:graph}
Ein naheliegender Modellierungsansatz ist es, das Stra"sennetz als Graph zu modellieren. Dies eignet sich nicht nur, da Graphen sehr gut erforscht und viele Algorithmen auf ihnen zur Verf"ugung stehen, sonder auch, weil die intuitiv gew"ahlte manuelle Modellierung sich als Graph darstellen l"asst. Aus diesem Grund wurden Graphen als Basis der computergest"utzten Modellierung gew"ahlt. Insbesondere die M"oglichkeit Graphen in Matrizen zu "uberf"uhren, oder Matrizen-Rechnungen an Graphen zu vollf"uhren erweist sich als n"utzlich. Graphen bieten dabei zwei Modellierungseinheiten, Knoten und Kanten.\\ \\
Definition Graph Kanten verbinden dabei zwei Knoten. todo\\
Da Einbahnstra"sen und Verkehr mit einer Flussrichtung modelliert werden m"ussen, w"ahlt man einen gerichteten Graphen.\\ \\
Da sich die Zweistufenmodellierung als n"utzlich erwiesen hat, wird auch diese als Graph im Computer abgebildet. Daf"ur m"ussen zwei verschiedenen Graphen aufgebaut werden. Der einer Kreuzung, mit Sensoren und virtuellen Sensoren als Knoten, sowie Stra"sen als Kanten. Der Graph der Kreuzungs"ubersicht dagegen hat Kreuzungen als Knoten und ebenfalls Stra"sen als Kanten.
Zur Modellierung am Computer wird auf die Java Bibliothek JGraphT zur"uckgegriffen. Sie erlaubt es, dank moderner 'Templatisierung'[], Graphen mit belieben Klassen als Knoten aufzubauen. Das selbe gilt f"ur Kanten mit wenigen Einschr"ankungen. Desweiteren erlaubt JGraphT eine Konvertierung zu der weit verbreiteten Bibliothek JGraph, welche eine Visualisierungschnittstelle f"ur Graphen mitbringt.
Es soll dabei die Knoten des Kreuzungs"ubersichtsgraphen die Graphen der einzelnen Kreuzungen enthalten um den Zusmmenhalt des Modells zu gew"ahrleisten.
Ein naheliegender Modellierungsansatz ist es, das Stra"sennetz als Graph zu modellieren. Dies eignet sich nicht nur, da Graphen sehr gut erforscht und viele Algorithmen auf ihnen zur Verf"ugung stehen, sonder auch, weil die intuitiv gew"ahlte manuelle Modellierung sich als Graph darstellen l"asst. Aus diesem Grund wurden Graphen als Basis der computergest"utzten Modellierung gew"ahlt. Insbesondere die M"oglichkeit Graphen in Matrizen zu "uberf"uhren, oder Matrizen-Rechnungen an Graphen zu vollf"uhren erweist sich als n"utzlich. Da Einbahnstra"sen und Verkehr mit einer Flussrichtung modelliert werden m"ussen, w"ahlt man einen gerichteten Graphen. Da sich die Zweistufenmodellierung als n"utzlich erwiesen hat, wird auch diese als Graph im Computer abgebildet. Daf"ur m"ussen zwei verschiedenen Graphen aufgebaut werden. Der einer Kreuzung, mit Sensoren und virtuellen Sensoren als Knoten, sowie Stra"sen als Kanten. Der Graph der Kreuzungs"ubersicht dagegen hat Kreuzungen als Knoten und ebenfalls Stra"sen als Kanten.\\ \\
Zur Modellierung am Computer wird auf die Java Bibliothek JGraphT zur"uckgegriffen. Sie erlaubt es, dank moderner 'Templatisierung'[], Graphen mit belieben Klassen als Knoten aufzubauen. Das selbe gilt f"ur Kanten mit wenigen Einschr"ankungen. Desweiteren erlaubt JGraphT eine Konvertierung zu der weit verbreiteten Bibliothek JGraph, welche eine Visualisierungschnittstelle f"ur Graphen mitbringt. Es soll dabei die Knoten des Kreuzungs"ubersichtsgraphen die Graphen der einzelnen Kreuzungen enthalten um den Zusmmenhalt des Modells zu gew"ahrleisten.\\ \\
Es folgt eine kurze Übersicht über Graphen, woraufhin computergestützte Modellierung des Kreuzungsgraph und Kreuzungsübersichtsgraphen beschrieben wird.
\subsubsection{Grundlagen}\label{sec:modell:graph:grund}
Ein Graph ist eine Struktur, welche Objekte und deren Verbindung untereinander abbildet. Die Objekte werden dabei Knoten, die Verbindungen Kanten genannt. Eine Kante verbindet dabei genau zwei Knoten. Graphen lassen sich besonders gut visualisieren, indem Knoten als Punkte oder Kästen und Kanten als Linien zwischen diesen dargestellt werden.\\ \\
Ein Graph kann als Tupel $<math>(V, E)</math>$ beschrieben werden. $<math>V</math>$ bezeichnet dabei Menge von Knoten,
$<math>E</math>$ eine Menge von Kanten. Die Menge der möglichen Kannten hängt dabei von dem gewählten Typ des Graphen ab.
Es wird zwischen folgenden Typen von Graphen unterschieden:
\begin{itemize}
\item{ungerichter Graph}
\item{gerichteter Graph}
\end{itemize}
Ein ungerichteter Graph kann dabei genau eine Kante zwischen zwei Knoten haben. Ein gerichteter Graph dagegen kann bis zu zwei Kanten zwischen zwei Knoten haben, einen für jeder Richtung. Diese Einschränkung gilt hingegen nicht für Graphen, welche Mehrfachkanten erlauben. Mehrfachkanten sind solche welche zwei oder mehr Kanten zwischen zwei Knoten zulassen.
\begin{figure}
\centering
\subfigure[Ungerichteter Graph. Quelle: wikipedia.org] {\includegraphics[width=0.3\textwidth-2\fboxsep-2\fboxrule]{pic/120px-Graph_ungerichtet.svg}}
\label{abb:graph:ungerichtet}
\subfigure[Gerichteter Graph. Quelle: wikipedia.org] {\includegraphics[width=0.5\textwidth-2\fboxsep-2\fboxrule]{pic/120px-Graph_gerichtet.svg}}
\label{abb:graph:gerichtet}
\subfigure[Ungerichter Graph mit Mehrfachkanten. Quelle: wikipedia.org] {\includegraphics[width=0.5\textwidth-2\fboxsep-2\fboxrule]{pic/200px-Graph_ungerichtet_Mehrfachkanten.svg}}
\label{abb:graph:multi}
\end{figure}
Type Algorithmen auf einem Graphen sind die Tiefensuche, Breitensuche oder Wegfindungsalgorithmen.
\subsubsection{Kreuzungsgraph}\label{sec:modell:graph:xr}
Da der Kreuzungs"ubersichtsgraph die Kreuzungsgraphen beinhalten soll, wird zuerst der Kreuzungsgraph modelliert. Dabei gilt es folgende Elemente abzubilden und entweder als Knoten oder Kante zu definieren.
Da der Kreuzungs"ubersichtsgraph die Kreuzungsgraphen als Knoten beinhalten soll, wird zuerst der Kreuzungsgraph modelliert. Dabei gilt es folgende Elemente abzubilden und entweder als Knoten oder Kante zu definieren. Validierungssensoren wurden dabei aus der Modellierung außenvorgelassen, um modellierung und Berechnung zu vereinfachen.
\begin{itemize}
\item{Stra"se: Ein nicht mit Sensoren best"uckte Stra"se, auf der Autos fahren d"urfen.}
\item{Sensor: Eine Induktionsschleife}
\item{Virtueller Sensor: F"ur jede Richtung der Kreuzung jeweils einen virtuellen Aus- und Eingang.}
\end{itemize}
Es liegt nahe Stra"sen als Kanten und Senoren, sowie virtuelle Sensoren als Knoten zu modellieren.
Um eine Kreuzung mit JGraphT zu modellieren wurden folgende zwei Klassen definiert:
\end{itemize}
Es liegt nahe Stra"sen als Kanten und Senoren, sowie virtuelle Sensoren als Knoten zu modellieren. Um eine Kreuzung mit JGraphT zu modellieren wurden folgende zwei Klassen definiert:
\begin{itemize}
\item{SE: Sensoren, virtuelle und real.}
\item{SE: Sensoren, virtuelle und reale.}
\item{ST: Stra"se}
\end{itemize}
Ein Sensor kann dabei folgende Werte halten:\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Sensorklasse SE}, label={listing1}, captionpos=bsec]
public class SE {
public int ID;
public String name;
public float lat;
public float lon;
public String crossroad;
public int sensorType;
public int toSensorLeftID;
public int toSensorStraightID;
public int toSensorRightID;
public int multipleOutputDirections;
public int fromVirtualSensorID;
public String outXR = null;
public String inXR = null;
public VL value = null;
public VL test_value = null;
}
\end{lstlisting}
\end{minipage}
Dies entspricht dem Datenbankschema in dem die Daten auf einem MYSQL-Server gespeichert werden. N"ahres dazu ist im Kapitel [Daten] zu finden. Ein Sensor kann dabei einen Wert im Feld 'Value' halten, welches von einer Induktionsschleife auf der Stra"se gemessen wurde. F"ur virtuelle Sensoren liegen keine Sensordaten vor. Der Wert 'Value' soll berechnet werden. Das Test Value dient der Validierung der Sensoren, um einen gemessenen Wert mit einem Berechneten vergleichen. outXR und inXR bezeichnen jeweils den Namen der Kreuzung von dem der Verkehr kommt bzw. wohin er flie"st, wenn er "uber den Sensor f"ahrt.
Eine Stra"se h"alt dagegen nur die Information der Abbiegewahrscheinlichkeit.\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Straßenklasse ST}, label={listing1}, captionpos=bsec]
public class ST extends DefaultEdge{
public float propagation = 0.0f;
public String target = "";
public String source = "";
}
\end{lstlisting}
\end{minipage}
Die Werte 'Target' und 'Source' geben den jeweiligen Namen der n"achsten Kreuzung an. Dies dient nicht der Berechnung, sondern ausschließlich der Darstellung, um bei einer Straße, welche in beide Richtungen befahrbar ist, beide Fl"usse unterscheiden zu k"onnen. Dazu wird jeweils entweder 'Source' oder 'Target' f"ur jede Kante mit angegeben.
\end{itemize}
[Klassendiagramm]
Die Klasse SE kann dabei Sensorname, Position in Latitude und Longitude, sowie die Kreuzung, welche den Sensor beinhaltet, speichern. Das Feld 'sensorType' erlaubt dabei die Unterscheidung von virtuellen und realen Sensoren.
Desweiteren stehen drei Felder zur Verknüpfung mit anderen Sensoren zur Verfügung. Das Feld '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 'outXR' und 'inXR' die Namen der benachbarten Kreuzungen gespeichert. Zusätzlich zu den Verknüpfungs- und Typinformationen können noch ein 'value' und ein 'test_value' gespeichert werden. Value wird dabei zur Berechnung eingesetzt, während der Testwert zur Überprüfung eines berechneten Ergebnis dient. Wer und Testwert sind dabei von der Klasse VL.\\ \\
Die Klasse VL kann die beiden Werte der Induktionsschleifen 'load' und 'count' halten, sowie eine Sensor ID, welche eine Zuordnung zu einem Sensor ermöglicht. Ein Zeitstempel bestimmt dabei den Zeitpunkt der Messung der Werte. Zur Überprüfung eines Wertes mit einem Testwert wird ein gemessener Wert als Testwert gespeichert. Eine Berechnung soll nun einen Wert berechnen. Durch Vergleich von gemessem Testwert und berechnetem Wert kann bestimmt werden wie genau die Berechnung ist.\\ \\
Die Klasse ST modelliert eine Straße. Sie kann die Namen der Knoten, welche sie verbindet speichern, um den Graphen nicht ständig nach den Namen der Nachbarn abzusuchen zu müssen. Diese beiden Werte dienen lediglich der Visualisierung. Desweiteren kann eine Gleitkommazahl gespeichert werden, welche die Abbiegewahrscheinlichkeit von einem Sensor, entlang dieser Kante, repräsentiert.\\ \\
Um den Graph mit der JGraphT-Bibliothek zu modellieren wurde die Klasse ListableDirectedGraph benutzt\autoref{lst:sensorgraph}. Diese Klasse des Frameworks erlaubt gerichtete Graphen aufzubauen und diese später zu visualisieren.
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={lst:sensorgraph}, captionpos=bsec]
public ListenableDirectedGraph<SE, ST> sensorGraph = new ListenableDirectedGraph<>(ST.class);
\end{lstlisting}
\end{minipage}
\subsubsection{Kreuzungs"ubersicht}\label{sec:modell:graph:overview}
Auch hier ist eine Reduktion auf Knoten und Kanten notwendig, um die Kreuzungs"ubersicht als graph darstellen zu k"onnen. Folgende intuitive Festlegungen wurden f"ur diese Arbeit dabei getroffen:
Auch hier ist eine Reduktion auf Knoten und Kanten notwendig, um die Kreuzungs"ubersicht als Graph darstellen zu k"onnen. Folgende Festlegung wurde hierfür getroffen:
\begin{itemize}
\item{Stra"se sei eine Kante}
\item{Kreuzung sei ein Knoten}
\item{Stra"se: Eine Straße sei eine Kante}
\item{Kreuzung: Eine Kreuzung sei ein Knoten}
\end{itemize}
Graph unter benutzung von JGraphT \\
Graph f"ur kreuzungs"ubersicht (zwischen Kreuzung) \\
Graph f"ur innerhalb der Kreuzung \\
Micro / Macro Modell
Es gilt das Stra"sennetz und die Sensoren in einen Graph zu "uberf"uhren. Dabei sind Stra"sen Kanten und Kreuzungen Knoten.
Innerhalb von Kreuzungen nehme ich eine Modellierung der Sensoren vor und bilde wieder einen Graphen, diesmal mit Verbindungen zwischen Sensoren als Kanten und Sensoren als Knoten.
Um die Kreuzungs"ubersicht im Computer abzubilden wurden folgende zwei Klassen definiert:
\begin{itemize}
\item{XR: Kreuzung}
\item{ST: Stra"se}
\end{itemize}
'XR' entspricht dabei dem oben beschrieben Graphen der Kreuzung, ST ist eine Stra"se, wie oben beschrieben.\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={listing1}, captionpos=bsec]
public class XR {
public int ID;
public String name;
public float lat;
public float lon;
public String in1_crossroad;
public String in2_crossroad;
public String in3_crossroad;
public String in4_crossroad;
public String out1_crossroad;
public String out2_crossroad;
public String out3_crossroad;
public String out4_crossroad;
public String comment;
public ListenableDirectedGraph<SE, ST> sensorGraph
= new ListenableDirectedGraph<>(ST.class);
}
\end{lstlisting}
\end{minipage}
Auch hier entsprechen die gespeicherten Werte denen, welche in der Datenbank zu einer Kreuzung abgespeichert sind. N"aheres dazu im Kapitel [Daten].
'Sensorgraph' vom Type 'ListenableDirectedGraph' ist dabei eine Klasse des JGraphT Frameworkes, um Graphen zu speichern. Der 'sensorGrpah' enth"alt eine Kreuzung als Graph aufgebaut.
[klassendiagramm]
Eine Kreuzung wird hierfür mit der Klasse XR modelliert. Sie enthält den, in Listing \autoref{lst:sensorgraph} gezeigten, Sensorgraph. Desweiteren werden auch für die Kreuzungen eine Position in Latitude und Longitude abgespeichert, sowie alle verbundenen eingehnden Kreuzungen, sowie allen Ausgehenden Kreuzungen. Das Speichern von beiden, Vorgänger und Nachfolgerkreuzung ist zum Aufbaue des Graphen nicht nötig. Dafür würden entweder Ein- oder Ausgänge ausreichen. Um Visualisierung und Berechnung zu vereinfachen wurden allerdings beide definiert.
Eine Straße wird, wie in der Kreuzungsmodellierung mit der Klasse ST beschrieben. Das Feld für die Abbiegewahrscheinlichkeit kann allerdings nicht gefüllt werden, da keine Abbiegewahrscheinlichkeiten zu Seitenstraßen bekannt sind. Das Feld wird späterhin zum Speichern von Flüssen zwischen den Kreuzungen benutzt.
\subsection{Modell als Matrix}\label{sec:modell:matrix}
Als Grundlage f"ur die Berechnung wurde eine Matrixdarstellung f"ur Kreuzungen entwickelt. Der oben entwickelte Graph l"asst sich dabei in eine Matrixform "uberf"uhren. Matrizen bieten z.b. durch Matrixmultiplikation die M"oglichkeit komplexe Zusammenh"ange durch einfache Rechenschritte auszurechnen.\\ \\
Um den Graph einer Kreuzung zu beschreiben ist es n"otig die Verbindungen von Sensoren zu deren m"oglichen Ausg"angen bzw. Eing"angen zu modellieren. F"ur Kreuzungen mit sog. Validierungssensoren
ist dies nicht m"oglich, da die Validierungssensoren zwischen Sensor und Ausgang in dem Graphen liegen. F"ur die Matrixdarstellung werden die Valliderungssensoren nicht mit abgebildet. Im Kapitel \autoref{sec:berechnung} wird nochmals n"aher darauf eingegangen, wie diese Sensoren zur L"osung eines Gleichungssystems, um Verkehrsfl"usse auf einer Kreuzung zu berechnen, verwendet werden k"onnen. Da fast alle betrachteten Kreuzungen der Stadt Darmstadt nur einen Sensor zwischen Ein- und entsprechenden Ausgang haben sind die entwickelten Matrizen auf fast alle Kreuzungen direkt anzuwenden.\\ \\
Die Beschreibung der Verbindungen l"asst sich mit einer Verbindungsmatrix bewerkstelligen. Dabei wird zwischen der sog. Eingangsmatrix und der sog. Ausgangsmatrix unterschieden. Beide Matrixformen zusammen bilden das Kreuzungsmodell ohne Validierungssensoren ab.
Um den Graph einer Kreuzung zu beschreiben ist es n"otig die Verbindungen von Sensoren zu deren m"oglichen Ausg"angen bzw. Eing"angen zu modellieren. F"ur Kreuzungen mit sog. Validierungssensoren ist dies nicht m"oglich, da die Validierungssensoren zwischen Sensor und Ausgang in dem Graphen liegen. Aus diesem Grund werden f"ur die Matrixdarstellung die Valliderungssensoren nicht mit abgebildet. Im Kapitel \autoref{sec:berechnung} wird nochmals n"aher darauf eingegangen, wie diese Sensoren zur L"osung eines Gleichungssystems, um Verkehrsfl"usse auf einer Kreuzung zu berechnen, verwendet werden k"onnen. Da fast alle betrachteten Kreuzungen der Stadt Darmstadt nur einen Sensor zwischen Ein- und entsprechenden Ausgang haben sind die entwickelten Matrizen auf fast alle Kreuzungen, ohne das Weglassen von Sensoren, direkt anzuwenden.\\ \\
Die Beschreibung der Verbindungen l"asst sich mit einer Verbindungsmatrix bewerkstelligen. Dabei wird zwischen der sog. Eingangsmatrix und der sog. Ausgangsmatrix unterschieden. Beide Matrixformen zusammen bilden das Kreuzungsmodell ohne Validierungssensoren ab.
\subsubsection{Ausgangsmatrix}\label{sec:modell:matrix:out}
Die Ausgangsmatrize zeigt auf, von welchem Sensor welcher Ausgang einer Kreuzung bedient wird.
Hierf"ur werden alle Ausg"ange einer Kreuzung auf der Y-Achse der Matrix verzeichnet, alle Sensoren dieser Kreuzung auf der X-Achse. Besteht eine Verbindung zwischen Sensor und Ausgang so kann an der entsprechenden Stelle der Matrix eine Verbindung mit '1' markiert werden. Besteht dagegen keine Verbindung wird das ebenfalls markiert mit einer '0'.\\ \\
Die Allgemeine Form einer Ausgangsmatrix ist
Die Ausgangsmatrize zeigt auf, von welchem Sensor welcher Ausgang einer Kreuzung bedient werden kann. Hierf"ur werden alle Ausg"ange einer Kreuzung auf der Y-Achse der Matrix verzeichnet, alle Sensoren dieser Kreuzung auf der X-Achse. Besteht eine Verbindung zwischen Sensor und Ausgang so kann an der entsprechenden Stelle der Matrix eine Verbindung mit '1' markiert werden. Besteht dagegen keine Verbindung wird das ebenfalls markiert mit einer '0'.\\ \\
Die Allgemeine Form einer Ausgangsmatrix ist wie folgend zu beschreiben:\\
$\begin{Bmatrix}
& S_1 & S_2 & S_3 & \dots & S_n\\
Out_1 & 0/1 & 0/1 & \dots & 0/1\\
@ -197,24 +117,23 @@ Die Grundannahme f"ur das Modell ist, dass sich die Verkehrsteilnehmer an die St
Out_3 & 0/1 & 0/1 & \dots & 0/1\\
Out_4 & 0/1 & 0/1 & \dots & 0/1\\
\end{Bmatrix}$
$Out_1$ bis $Out_4$ bezeichnen dabei die Ausg"ange einer Kreuzung. $S_1$ bis $S_n$ bezeichnen die einzelnen Sensoren, einschließlich der virtuellen Sensoren f"ur Kreuzungseingangsspuren ohne Sensor. Die Werte der Matrize bestimmen ob eine Verbindung zwischen Sensor und jeweiligem Kreuzungsausgang besteht. Einspursensoren besitzen nur eine Verbindung, Mischspursensoren besitzen dagegen mehr als eine.\\ \\
$Out_1$ bis $Out_4$ bezeichnen dabei die Ausg"ange einer Kreuzung. Je nach Kreuzung können dies auch lediglich drei Ausgänge sein. $S_1$ bis $S_n$ bezeichnen die einzelnen Sensoren, einschließlich der virtuellen Sensoren f"ur Kreuzungseingangsspuren ohne Sensor. Da alle modellierten Kreuzungen der Stadt Darmstadt auf jeder Eingangsspur mit Sensoren bestückt ist, sind keine virtuellen Sensoren fpr Eingangsspuren notwendig. Die Werte der Matrize bestimmen ob eine Verbindung zwischen Sensor und jeweiligem Kreuzungsausgang besteht. Einspursensoren besitzen nur eine Verbindung, Mischspursensoren besitzen dagegen mehr als eine.\\ \\
\begin{figure}[htbp!]\label{abb:a23}
\centering
\fbox{\includegraphics[width=0.5\textwidth-2\fboxsep-2\fboxrule]{ext/KreuzungA23}}
\caption{Kreuzung A23}
\end{figure}
Am Beispiel der Kreuzung A23\ref{abb:a23} sei das hier demonstriert. Dabei entf"allt eine Ausgangsspalte, da die A23 eine Einbahnstraße beinhaltet, welche es verbietet die Kreuzung in eine Richtung zu verlassen. Die entsprechenden Ausgangsspalten werden dabei mit der auf den Ausgang folgenden Kreuzung benannt.
Am Beispiel der Kreuzung A23\ref{abb:a23} sei das hier demonstriert. Dabei entf"allt eine Ausgangsspalte, da die A23 eine Einbahnstraße beinhaltet, welche es verbietet die Kreuzung in die eine Richtung zu verlassen. Die entsprechenden Ausgangsspalten werden dabei mit der, auf den Ausgang folgenden, Kreuzung benannt.
$\begin{Bmatrix}
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10 & D13 & D14\\
A12 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0\\
A4 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0\\
A104 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10\\
A12 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0\\
A4 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0\\
A104 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1\\
\end{Bmatrix}$
Diese Matrix wird als Ausgangsmatrix bezeichnet. D13 und D14 werden hier nicht verbunden, da es sich um Validierungssensoren handelt.
Diese Matrix wird als Ausgangsmatrix bezeichnet. D13 und D14 werden hier nicht mit abgebildet, da es sich um Validierungssensoren handelt.
\subsubsection{Eingangsmatrix}\label{sec:modell:matrix:in}
Die Eingangsmatrix wird Analog zur Ausgangsmatrix gebildet. Sie beschreibt, welche Sensoren zu welchem Eingang der Kreuzung geh"oren. Ein Sensor geh"ort dabei zu einem Kreuzungseingang, wenn er vor der entsprechenden Haltelinie in der Straße verbaut ist. Die Virtuellen Eing"ange werden hierf"ur auf der Y-Achse aufgetragen, alle Sensoren werden auf der X-Achse der Matrix eingezeichnet.\\ \\
Die Allgemeine Form der Matrix ist ebenfalls analog zur Ausgangsmatrix.
Die Allgemeine Form der Matrix ist ebenfalls analog zur Ausgangsmatrix und wie folgend zu beschreiben:\\
$\begin{Bmatrix}
& S_1 & S_2 & S_3 & \dots & S_n\\
In_1 & 0/1 & 0/1 & \dots & 0/1\\
@ -223,176 +142,44 @@ Die Grundannahme f"ur das Modell ist, dass sich die Verkehrsteilnehmer an die St
In_4 & 0/1 & 0/1 & \dots & 0/1\\
\end{Bmatrix}$
$In_1$ bis $In_4$ bezeichnen dabei die Eing"ange einer Kreuzung. $S_1$ bis $S_n$ bezeichnen die einzelnen Sensoren, einschließlich der virtuellen Sensoren f"ur Kreuzungseingangsspuren ohne Sensor. Die Werte der Matrize bestimmen ob eine Verbindung zwischen Sensor und jeweiligem Kreuzungseingang besteht.\\ \\
Hier im Beispiel die Eingangsmatrix von Kreuzung A23\ref{abb:a23}. Wieder sind nur drei Eing"ange verzeichnet, was sich mit der Einbahnstraße begr"undet.
Hier im Beispiel die Eingangsmatrix von Kreuzung A23\ref{abb:a23}. Wieder sind nur drei Eing"ange verzeichnet, was sich mit der Einbahnstraße begr"undet, welche über die Kreuzung verläuft.
$\begin{Bmatrix}
& D1 & D2 & D3 & D4 & D5 & D6 & D7 & D8 & D9 & D10 & D13 & D14\\
A12 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
A28 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0\\
A4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0\\
\end{Bmatrix}$
\subsubsection{Sonderfall: Vallidierungssensor}\label{sec:modell:matrix:vallidate}
Mit beiden Matrizen wird eine Kreuzung ohne Validierungssensoren vollst"andig beschrieben. Sind dagegen valliderungssensoren Vorhanden, so beschriebt die Matrix nicht mehr den kompletten Graphen wie das beispiel der [] zeigt:
[Eingansmatrix]
[Ausgangsmatrix]
Die Verbindung von Sensor [] nach Sensor [] wird hier nicht modelliert.
F"ur die Berechnung wird sich zeigen, dass das unerheblich ist, sofern man
Sensor[] in der Ausgangsmatrix f"ur die Zeile [][] eintr"agt. Die Berechnung der Geradeausspur ist dann wie folgend: [] - [] = A.
Ein- und Ausgangsmatrix zusammen beschreiben den gesamten Graphen ohne Validierungssensoren. Im Kapitel \autoref{sec:berechnung} wird näher auf eine mögliche Verwendung der Validierungssensoren eingegangen.
\subsection{Datenbankmodell}\label{sec:modell:dbmodell}
Um mit einem Programm schneller und einfacher auf Die Daten zuzugreifen, bietet es sich an diese in einem Datenbank Server abzuspeichern. Hierf"ur wurde eine Datenbankschema erstellt, um alle Informationen, die von dem entwickelten Modell zur Visualisierung und Berechnung ben"otigte Informationen zu speichern vermag.\\ \\
Um mit einem Programm schneller und einfacher auf die, in Kapitel \autoref{sec:datengrund}, extrahierten Daten zuzugreifen, bietet es sich an diese in einem Datenbank Server abzuspeichern. Hierf"ur wurde eine Datenbankschema erstellt, um alle Informationen, die von dem entwickelten Modell zur Visualisierung und Berechnung ben"otigte Informationen zu speichern vermag.\\ \\
Folgende Informationen wurden in der Datenbank abgespeichert:
\begin{enumerate}
\item{Der Graph einer Kreuzung. Er umfasst Sensoren, virtuelle Sensoren und die Verbindungen zwischen diesen.}
\item{Der Graph der Kreuzungs"ubersicht. Er umfasst die bereits in Punkt 1 erw"ahnten Kreuzungen und deren Verbindungen untereinander.}
\item{Der Graph der Kreuzungs"ubersicht. Er umfasst die bereits in Punkt 1 erw"ahnten Kreuzungen, sowie deren Verbindungen untereinander.}
\item{Die Abbiegewahrscheinlichkeit welche der richtigen Verbindungen zwischen Sensor und entsprechendem virtuellen Kreuzungsausgang zugordnet ist.}
\end{enumerate}
[ER diagramm]
\subsubsection{Datenbank Schema}\label{sec:modell:dbmodell:schema}
Das Datenbankschema f"ur Sensoren sieh wie folgt aus:\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={listing2}, captionpos=bsec]
CREATE TABLE `bt_Sensors` (
`ID` INT(11) NOT NULL AUTO_INCREMENT COMMENT ' ',
`name` VARCHAR(45) NOT NULL COLLATE 'latin1_german1_ci',
`lat` DOUBLE NOT NULL,
`long` DOUBLE NOT NULL,
`crossroad` VARCHAR(45) NOT NULL COLLATE 'latin1_german1_ci',
`sensorType` VARCHAR(45) NOT NULL COLLATE 'latin1_german1_ci',
`toSensorLeftID` INT(11) NULL DEFAULT NULL,
`toSensorStraightID` INT(11) NULL DEFAULT NULL,
`toSensorRightID` INT(11) NULL DEFAULT NULL,
`multipleOutputDirections` TINYINT(1) NULL DEFAULT NULL,
`fromVirtualSensorID` INT(11) NULL DEFAULT NULL,
`outXR` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`inXR` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
PRIMARY KEY (`ID`)
)
COLLATE='latin1_german1_ci'
ENGINE=MyISAM
AUTO_INCREMENT=167;
\end{lstlisting}
\end{minipage}
Dabei ist die ID ein eindeutiges Merkmahl des Sensors. Der Sensorname dagegen ist nur innerhalb einer Kreuzung eindeutig. So ist auf Kreuzung [] ein Sensor [] zu finden, sowie auf [] einen mit dem selben Namen. Dementsprechend sind Verkn"upfungen unter den Sensoren "uber die Sensorid identifiziert. Diese Verkn"upfungen werden "uber die Felder 'toSensorLeftID', 'toSensorStraightID' und 'toSensorRightID' modelliert und erlauben es den Graphen aufzubauen. Verbindungen zwischen Knoten werden dabei in Verkehrsflussrichtung gespeichert.
Lat und Long bestimmen die Position des Sensors. Diese Informationen wurden mithilfe des Tools [] gewonnen, sofern diese noch nicht in der Datenbank vorhanden waren.
In der Spalte 'sensorType' wird der Type des Sensors gespeichert. Eine zus"atzliche Tabelle erlaubt es Einzelheiten zu den einzelnen Sensoretypen zu definieren.\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={listing3}, captionpos=bsec]
CREATE TABLE `bt_sensor_types` (
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`type` VARCHAR(35) NOT NULL COLLATE 'latin1_german1_ci',
`comment` VARCHAR(200) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
PRIMARY KEY (`ID`)
)
COLLATE='latin1_german1_ci'
ENGINE=MyISAM
AUTO_INCREMENT=5;
\end{lstlisting}
\end{minipage}
In dieser Arbeit wird nur auf die im Kapitel [Modell] definierten Sensortypen zur"uckgegriffen. Da die Richtung der Sensoren "uber ihre Verbindungen zu anderen Knoten definiert sind, wurden nur die Typen 'Sensor' und 'Virtueller Sensor' benutzt. Diese Datenbankstruktur erlaubt es allerdings durch hinzuf"ugen einer Zeile zu sensortypes einen neuen Sensortyp zu definieren, auf den ein ein Algorithmus besonders reagiert.\\
Die Definition f"ur Kreuzungen ist dagegen deutlich einfacher. Da jede Kreuzung, die Modelliert wurde h"ochsten vier Ausg"ange hat, m"ussen jeweils 4 Ausg"ange sowie 4 Eing"ange modelliert werden. Auch hier werden Latitude und Logitude ben"otigt, um die Kreuzung auf einer Karte, oder realativ zu anderen Objekten der Modellierung, darstellen zu k"onnen. Die Kreuzungsnamen sind in der Stadt Darmstadt eindeutig.\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={listing4}, captionpos=bsec]
CREATE TABLE `bt_Crossroads` (
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL COLLATE 'latin1_german1_ci',
`lat` DOUBLE NOT NULL,
`long` DOUBLE NOT NULL,
`in1_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`in2_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`in3_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`in4_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`out1_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`out2_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`out3_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`out4_crossroad` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`comment` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
PRIMARY KEY (`ID`),
UNIQUE INDEX `name_UNIQUE` (`name`)
)
COLLATE='latin1_german1_ci'
ENGINE=MyISAM
AUTO_INCREMENT=17;
\end{lstlisting}
\end{minipage}
Die Tabelle Values enth"alt aufbereitete Induktionsschleifenwerte. Diese werden aus der MYSQL-Datenbank des Projekts [] extrahiert, um das manuelle Parsen der CSV-Dateien zu umgehen.
Sensoren werden hierf"ur mit ihrer eindeutigen ID identifiziert. Durch filtern der spalte 'timestamp' ist es m"oglich beliebige Zeitpunkte aus der Datenmenge zu extrahieren.\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={listing5}, captionpos=bsec]
CREATE TABLE `bt_Values` (
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`sensor_ID` INT(11) NOT NULL,
`count` INT(11) NULL DEFAULT NULL,
`load` FLOAT NULL DEFAULT NULL,
`timestamp` BIGINT(20) NOT NULL,
`out1_flow` FLOAT NULL DEFAULT NULL,
`out2_flow` FLOAT NULL DEFAULT NULL,
`out3_flow` FLOAT NULL DEFAULT NULL,
PRIMARY KEY (`ID`)
)
COLLATE='latin1_german1_ci'
ENGINE=MyISAM
AUTO_INCREMENT=87;
\end{lstlisting}
\end{minipage}
Die Tabelle FlowStatistics h"alt Abbiegewahrscheinlichkeiten f"ur Sensoren.
Die Sensoren werden dabei "uber Kreuzungs- und Sensorname identifiziert, da Sensornamen nicht eindeutig f"ur alle Kreuzungen sind.\\
% optionen f"ur listings
\lstset{frame=single,language=java,numbers=left,numberstyle=\tiny\color{gray},numberbychapter=t,frame=shadowbox,rulesepcolor=\color{gray},tabsize=2}
\hspace*{\dimexpr\fboxsep+\fboxrule+1em}%
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
\begin{lstlisting}[caption={[abc] Die Kreuzungsklasse XR}, label={listing6}, captionpos=bsec]
CREATE TABLE `bt_FlowStatisticsFullCleaned` (
`Crossroad` CHAR(50) NOT NULL COLLATE 'latin1_german1_ci',
`Sensor` CHAR(50) NOT NULL COLLATE 'latin1_german1_ci',
`leftPercentage` FLOAT NULL DEFAULT NULL,
`leftSensor` CHAR(50) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`straightPercentage` FLOAT NULL DEFAULT NULL,
`straightSensor` CHAR(50) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`rightPercentage` FLOAT NULL DEFAULT NULL,
`rightSensor` CHAR(50) NULL DEFAULT NULL COLLATE 'latin1_german1_ci',
`timestamp` BIGINT(20) NOT NULL,
`intervall` INT(11) NOT NULL,
PRIMARY KEY (`Crossroad`, `Sensor`),
INDEX `index_timestamp` (`timestamp`),
INDEX `index_sensorID` (`leftSensor`)
)
COLLATE='latin1_german1_ci'
ENGINE=MyISAM;
\end{lstlisting}
\end{minipage}
\subsection{Einschr"ankungen und Voraussetzungen f"ur das Modell}\label{sec:modell:limits}
Das Modell kann nicht alle Verkehrsverhalten modellieren. In diesem Abschnitt wird behandelt, welche Einschr"ankungen und Vorraussetzung f"ur das entwickelte Modell gelten m"ussen, damit der Verkehrs korrekt modelliert wird.
[Uturn]
[Sensor n"ahe zur Kreuzung]
[verkehrsverhalten - falsch abbiegen etc]
\newpage
Dabei ist nicht ber"ucksichtigt, dass ein Verkehrsteilnehmer mithilfe einer sog. 'U-Turn' die Kreuzung in die selbe Richtung verlassen kann, aus der er kommt.
\end{enumerate}
[ER diagramm]
Für Sensoren werden dafür folgende Daten gespeichert:
\begin{itemize}
\item{Eindeutige ID des Sensors}
\item{Name des Sensors}
\item{Position des Sensors als Latitude und Longitude Werte}
\item{Die zu dem Sensor gehörige Kreuzung}
\item{Der Sensortyp}
\item{Die Verbindungen des Sensor zu bis zu drei Sensoren.}
\item{Typ der Spur - Misch- oder Einzelspur}
\item{Für virtuelle Sensoren der Aus- und Eingänge, der Name der vorhergehenden bzw. nachfolgenden Kreuzung.}
\end{itemize}
Dabei ist eine ID ein eindeutiges Merkmahl des Sensors. Der Sensorname dagegen ist nur innerhalb einer Kreuzung eindeutig. So ist auf Kreuzung [] ein Sensor [] zu finden, sowie auf [] einen mit dem selben Namen. Dementsprechend sind Verkn"upfungen unter den Sensoren "uber die Sensorid identifiziert. Diese Verkn"upfungen werden "uber die Felder 'toSensorLeftID', 'toSensorStraightID' und 'toSensorRightID' modelliert und erlauben es den Graphen aufzubauen. Verbindungen zwischen Knoten werden dabei in Verkehrsflussrichtung gespeichert. In der Spalte 'sensorType' wird der Type des Sensors gespeichert. Eine zus"atzliche Tabelle erlaubt es Einzelheiten zu den einzelnen Sensoretypen zu definieren. In dieser Arbeit wird nur auf die beiden Sensortypen 'virtueller Sensor' und 'realer Sensor' zurückgegriffen. Die Datenbankstruktur erlaubt es allerdings durch hinzuf"ugen einer Zeile in der Tabelle 'bt\_sensor\_types' einen neuen Sensortyp zu definieren, auf den ein Algorithmus, welcher auf dem Graphen rechnet, anders als auf die anderen beiden Sensortypen reagieren kann.\\ \\
Die Definition f"ur Kreuzungen ist dagegen deutlich einfacher. Da jede Kreuzung, die Modelliert wurde h"ochsten vier Ausg"ange hat, m"ussen jeweils 4 Ausg"ange sowie 4 Eing"ange modelliert werden. Auch hier werden Latitude und Logitude ben"otigt, um die Kreuzung auf einer Karte, oder realativ zu anderen Objekten der Modellierung, darstellen zu k"onnen. Die Kreuzungsnamen sind in der Stadt Darmstadt eindeutig, weshalb es keine ID für eine Identifikation von Kreuzungen bedarf.\\ \\
Die Tabelle Values enth"alt aufbereitete Induktionsschleifenwerte. Diese werden mit den Abfragen, welche in \autoref{sec:datengrund} beschrieben sind, aus der MYSQL-Datenbank der JEE6 Anwendung zur Bereitstellung von Verkehrsdaten extrahiert, um das manuelle Parsen der CSV-Dateien zu umgehen. Sensoren werden hierf"ur mit ihrer eindeutigen ID identifiziert. Ein Zeitstempel der Sensordaten erlaubt es mehrere Datensätze von verschiedenen Zeiten zu speichern. Ein Filter auf dem Zeitstempel erlaubt es Daten eines gewählten Zeitpunktes erneut zu extrahieren. Gespeichert werden dafür die Werte 'load' und 'count' der Induktionschleifen, zusammen mit der eindeutigen Sensor ID und dem entsprechen Zeitstempel.\\ \\
Die Tabelle FlowStatistics h"alt Abbiegewahrscheinlichkeiten f"ur Sensoren. Da diese Werte dieser Tabelle aus der Abbiegewahrscheinlichkeitstabelle der Stadt Darmstadt entnommen wurden, werden Sensoren "uber Kreuzungs- und Sensorname identifiziert und nicht über eine eindeutige Sensor ID. Dies ist möglich, obwohl Sensornamen nicht eindeutig sind, da sie innerhalb einer Kreuzung eine eindeutige Identifikation über den Namen zulässt. Eine Kombination aus dem eindeutigem Kreuzungsnamen und der innerhalb der Kreuzung eindeutigen Sensornamens, kann ein Sensor eindeutig bestimmt werden. Für die Abbiegewahrscheinlichkeitentabelle werden neben dem Kreuzungs- und Sensornamen, bis zu drei verschiedenen Abbiegewahrscheinlichkeiten angegeben. Die Wahrscheinlichkeit, das ein verkehrsteilnehmer, welcher über den Sensor fährt rechts, links oder geradeaus die Kreuzung verlässt. Zusätzlich wird der nächste Sensorknoten, diesmal identifiziert über die Sensorid, für jede Richtung mit angegeben. Wie die Zuordnung von 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änge zu jedem Datensatz abgespeichert werden. Dies erlaubt es genauere, zeitspezifische, Abbiegewahrscheinlichkeiten abzuspeichern. Für diese Arbeit lagen allerdings ausschließlich die Werte der Stadt Darmstadt vor, welche über alle Messungen gemittelt sind.
\subsection{Einschr"ankungen und Schw"achen des Modell}\label{sec:modell:limits}
Das entwickelte Modell kann nicht alle Verkehrsverhalten modellieren. In diesem Abschnitt wird behandelt, welche Einschr"ankungen das Modell mitbringt und welche Reduktionen des Detailgrades vorgenommen wurden.\\ \\
Das Modell kann sog. 'U-Turns', nicht modellieren. Als 'U-Turn' bezeichnet man dasjenige Verkehrsmanöver, welches den Verkehrsteilnehmer von dem Kreuzungseingang einer Kreuzung zu dem Ausgang, welcher in die Richtung zeigt, aus der er kommt. Dieses Verkehrsverhalten ist selten zu beobachten und wurde aus diesem nicht modelliert. Desweiteren würde eine Modellierung dieses Manövers eine 'U-Turn-Wahrscheinlichkeit' erfordern, welche nicht vorliegt.\\ \\
Ein weitere, sehr elementare Schwäche des Modells ist die Abstraktion der Sensorposition. Wie in den manuell angefertigten Kreuzungszeichnungen wird die Position eines Sensors innerhalb des Graphenmodells einem Eingang zugeordnet. Die Latitude und Longitude Werte des Sensors werden nur zur Visualisierung benutzt. Dies erlaubt allerdings einen Spurwechsel, nach dem Überfahren eines Sensors, nicht zu modellieren. Die Genauigkeit des Modells hängt folglich direkt mit der Entfernung des Sensors von der Kreuzung ab. Ist der Sensor weit entfernt, so kann ein Auto die Spur nochmals wechseln. Ist der Sensor direkt vor der Haltelinie verbaut, kann die Spur nicht mehr gewechselt werden.\\ \\
Neben diesen Einschränkungen wird nur gültiges Verkehrsverhalten modelliert. So können Verkehrsteilnehmer, welche zwar auf einer Rechtabbiegerspur stehen, allerdings geradeaus fahren nicht von dem Modell modelliert werden.\\ \\
Es ist allerdings denkbar das Modell durch U-Turn-, Spurwechsel- und Falschfahrwahrscheinlichkeiten zu dekorieren und somit die Menge der modellierbaren Kreuzungszustände und -Übergänge zu vergrößern und ein realistischeres Bild des Verkehrs zu berechnen. Allerdings lagen keine Daten über das Verhalten der Verkehrsteilnehmer vor.
\newpage

View File

@ -1,6 +1,6 @@
\section{Visualisierung}\label{sec:visualisierung}
In diesem Kapitel wird beschrieben, wie der im Kapitel \autoref{sec:modell} und im Kapitel \autoref{sec:berechnung} mit Werten befüllter Graph visualisiert wird. Neben dem Graphen wird eine Kreuzungsübersicht mithilfe der Geoinformationen des OSM-Projektes\footnote{OSM todo} mit den untersuchten Sensoren am Computer visualisiert.\\ \\
Visualisierung eignet sich deshalb besonders gut, da die berechneten Zusammenhänge komplex und wenig zugänglich sind. Eine Visualisierung ermöglicht eine andere Sicht auf den Sachverhalt und lässt sich leichter auf Korrektheit überprüfen.
In diesem Kapitel wird beschrieben, wie der im Kapitel \autoref{sec:modell} und im Kapitel \autoref{sec:berechnung} mit Werten befüllter Graph visualisiert wird. Neben dem Graphen wird eine Kreuzungsübersicht mithilfe der Geoinformationen der JEE6 Anwendung mit den untersuchten Sensoren am Computer visualisiert.\\ \\
Visualisierung eignet sich deshalb besonders gut, da die berechneten Zusammenhänge komplex und wenig zugänglich sind. Eine Visualisierung ermöglicht eine andere Sicht auf den Sachverhalt und lässt sich leichter auf Korrektheit oder Fehler überprüfen.
\subsection{Visualisierung des Graphen mit Geoinformationen}{
Um den Zusammenhang zwischen Realit"at und dem graphenbassierten Modell herzustellen wurden die Kreuzungsinformationen auf eine Landkarte projeziert. Hierzu dient das [] Framework, welches auf die OpenStreetMap, kurz OSM, zugreift und dem Programmierer die m"oglichkeit gibt eigene Kartenanwendungen zu schreiben.