Commit 1644f100 authored by Arne Graf's avatar Arne Graf

deleted mathesisargraf tex files

parent b02b5312
\begin{titlepage}
\begin{center}
% Oberer Teil der Titelseite:
\includegraphics[width=0.6\linewidth]{pics/Ju}\\[1cm]
\textsc{\LARGE Forschungszentrum J{\"u}lich GmbH}\\[1.5cm]
\textsc{\Large Masterthesis}\\[0.5cm]
% Title
\newcommand{\HHRule}{\rule{\linewidth}{0.5mm}}
\HHRule \\[0.4cm]
{ \huge \bfseries Automated Routing in Pedestrian Dynamics}\\[0.4cm]
\HHRule \\[1.5cm]
Fachhochschule Aachen, Campus J{\"u}lich
Fachbereich: Medizintechnik und Technomathematik,
Studiengang: Technomathematik
\vfill
% Author and supervisor
\begin{minipage}{0.3\textwidth}
\begin{flushleft} \large
%\emph{\ \\}
%\textsc{\ \\}
\emph{Autor:}\\
Arne \textsc{Graf}
\end{flushleft}
\end{minipage}
\hfill
\begin{minipage}{0.6\textwidth}
\begin{flushright} \large
\emph{Erstpr{\"u}fer:} \\
Prof. Dr. Johannes \textsc{Grotendorst} \\
\emph{Zweitpr{\"u}fer:} \\
Dr. Mohcine \textsc{Chraibi}
\end{flushright}
\end{minipage}
\vfill
% Unterer Teil der Seite
{\large J{\"u}lich, 2015-10-16}
\end{center}
\end{titlepage}
\ No newline at end of file
\title{Automated Routing in Pedestrian Dynamics \newline
Fachhochschule Aachen, Campus Jülich \newline
Medizintechnik und Technomathematik, \newline
Technomathematik \newline
Forschungszentrum Jülich GmbH, JSC, \newline
Civil Security and Traffic}
\author{Masterthesis from Arne Graf}
\date{2015-10-16}
\pagenumbering{gobble}% Remove page numbers (and reset to 1)
\newpage
\input{./TitleTemp}
\newpage
%Eigenständigkeitserklärung
\section*{Eigenst{\"a}ndigkeitserkl{\"a}rung}
Diese Arbeit wurde von mir selbstst{\"a}ndig angefertigt und verfasst.
Es sind keine anderen als die angegebenen Quellen und Hilfsmittel
benutzt worden.
%% Abstand und Linie
\vspace{20mm}
\hrule
\vspace{5mm}
\begin{minipage}{0.4\textwidth}
Ort und Datum
\end{minipage}
\hfill
\begin{minipage}{0.6\textwidth}
\begin{flushright}
Unterschrift $\qquad$
\end{flushright}
\end{minipage}
\vspace{7cm}
\begin{flushleft}
\begin{tabular}{lll}
Diese Arbeit & wurde betreut von: & \\
Erstpr{\"u}fer: & Professor Dr. Johannes Grotendorst & \\
Zweitpr{\"u}fer: & Dr. Mohcine Chraibi & \\
\end{tabular}
\vfill
Die vorliegende Masterarbeit wurde am \\
Civil Security and Traffic, \\
J{\"u}lich Supercomputing Centre,\\
Forschungszentrum J{\"u}lich GmbH erstellt.
\end{flushleft}
\newpage
\pagenumbering{arabic}% Arabic page numbers (and reset to 1)
\ No newline at end of file
\section*{Abstract}
%In dieser Arbeit wird genommen: Model von Felix, Bodenfeld von Madrid, Code adaptiert von Leonardo Andrés Zepeda Núñez.
%Es wird ein Testmodel beschrieben, welches den Einfluß des Madrid-Bodenfeldes untersucht.
%Historie: Dietrich's Model in Jupedsim; Bodenfeld warf Frage auf: Welche Diskretisierung (rectGrid, triangulated, how to deal with wall-surfaces), Probleme durch non-smooth Bodenfeld (?); -> Beschluss: Bodenfeld so gestalten, dass es gute Eigenschaften bei der Fußgängersimulation verspricht.
%Dieses dann untersuchen und qualifizieren. Durch die Betreuung von M.C. floss die Erfahrung zahlreicher Modelle ein und es gelang bei der Modelfindung ein geeignetes Testmodel neu zu beschreiben.
In this thesis, the effect of an alternate floor-field is analyzed, by using it in a newly composed test-model for pedestrian dynamics. In simulations of pedestrian movement, the routing of agents\footnote{An agent is the representation of a pedestrian in the simulation.} is an integral part. Routing can be seen as the composition of two aspects: the global pathfinding through a geometry and the avoidance of static or dynamic obstacles (like walls or other agents) in a local situation.
Development of pedestrian simulation shows various models with different answers to the question of navigation. Many of which make use of manually added elements\footnote{like some sort of domain-decomposition, e.g. through helplines} to solve the global pathfinding, which enable the user to simulate crowd movement in that specific geometry. Other models use an algorithm, that will supply a navigation direction for any geometry. The \emph{Gradient Navigation Model}(GNM) described by Dietrich\citep{Dietrich2014} is one of the later. It uses the solution of the Eikonal equation (see chapter \ref{eikonalequation}), which describes a 2-D wave-propagation. The wave starts in the target region and propagates throughout the geometry. Agents are directed in the opposite direction of the gradient of aforementioned solution of the Eikonal equation. The Routing using the plain floor-field will yield non-smooth pathways. This could pose a problem for models, relying on a well-posed problem: In \cite{Dietrich2014}, Dietrich shows the existance and uniqueness of a solution to his problem-formulation by using the theorem of Picard-Lindel{\"o}f.
%\footnote{Picard-Lindelöf theorem: Consider the initial value problem \newline \begin{center}
%$y'(t) = f(t,y(t)), \quad y(t_0 ) = y_0, \quad t \in [t_0 - \epsilon, t_0 + \epsilon]$.\newline
%\end{center} Suppose $f$ is uniformly Lipschitz continuous in y and continuous in $t$. Then, for some value $\epsilon > 0$, there exists a unique solution $y(t)$ to the initial value problem on the interval $[t_0 - \epsilon, t_0 + \epsilon]$.}
To apply this theorem, Lipschitz-continuous first derivatives of the input-functions must exist. This contradicts with non-smooth pathways in a plain floor-field. He solves that problem by the use of a mollifier, which basically takes a locally integrable function and returns a smooth approximation. Thus he creates a well-posed problem.
In this thesis, an enhanced floor-field is described, which addresses aforementioned issue (non-smoothness) as a welcome side-effect. A research-group at the Universidad Carlos III de Madrid \citep{Madrid} is working on safe navigation of robots. Since agents should not follow paths, which come close to any obstacle, a distance-field is created and used in the Fast-Marching algorithm, resulting in \emph{smooth} pathways, which favor a certain distance to walls. The researchers take that approach even further, by transforming any geometry into a skeleton (again using the distance-field) and thus having the domain in which the 2-D wave propagates reduced dramatically. Their intent is to re-calculate the floor-field in real-time using it for the reduced view-field of a robot's sensors.
Our interest in this sleight of hand is different. We take special interest in the behavior of agents close to obstacles. The enhanced floor-field itself yields pathways, which show a wall-repulsive character in the negative gradient close to walls. This component enables us to formulate a new model. It is implemented in JuPedSim\cite{jupedsim}, a simulation suit for pedestrian simulation, developed at the J{\"u}lich Supercomputing Centre, Forschungszentrum J{\"u}lich GmbH. It is verified and validated with respect to empirical data. The results seen in the simulations show remarkably good behavior. The model is easy to use, fast and shows an organic routing through complex geometries. The extent to which we alter the floor-field is subject to our analysis.
\section{Appendices}
\subsection{Fast-Marching Algorithm}
\begin{sequencediagram}
\newthread[white]{u}{User}
\newinst[2]{f}{FloorfieldViaFM}
\newinst[5]{t}{Trial}
\begin{call}{u}{Create and Init(...)}{f}{}
\begin{call}{f}{Create and Init(...)}{t}{}
\end{call}
\begin{call}{f}{All points are marked unknown}{t}{}
\end{call}
\begin{call}{f}{Add target points to narrowband}{t}{}
\end{call}
\begin{sdblock}{while narrowband not empty}{}
\begin{call}{f}{remove minimum from narrowband}{t}{}
\end{call}
\begin{callself}{f}{add minimum to know-set}{}{}
\end{callself}
\begin{callself}{f}{calc cost of minimum's unknown neighs}{}{}
\end{callself}
\begin{call}{f}{add unknown neighbors to narrowband}{t}{}
\end{call}
\end{sdblock}
\begin{callself}{f}{save floorfield}{}{}
\end{callself}
\end{call}
\end{sequencediagram}
\newpage
\subsection{Gradient Model using a Floorfield}
\begin{adjustbox}{width=\textwidth, height=\textheight, keepaspectratio}
\begin{sequencediagram}
\newthread[white]{u}{User}
\newinst[2]{g}{GradientModel}
\newinst[2]{d}{DirectionStrategy}
\newinst[2]{f}{FloorfieldViaFM}
\begin{call}{u}{Create and Init(...)}{g}{}
\begin{call}{u}{Create and Init(...)}{d}{}
\begin{call}{d}{Create and Init(...)}{f}{}
\begin{sdblock}{run simulation}{}
\begin{callself}{g}{for each agent}{}{}
\begin{call}{g}{getTarget()}{d}{return movDir}
\begin{call}{d}{getDirectionAt()}{f}{return movDir}
\end{call}
\end{call}
\begin{call}{g}{getDir2Wall()}{d}{return dir2Wall}
\begin{call}{d}{getDir2Wall()}{f}{return dir2Wall}
\end{call}
\end{call}
\begin{call}{g}{getDistance2Wall()}{d}{return distance2Wall}
\begin{call}{d}{getDistance2Wall()}{f}{return distance2Wall}
\end{call}
\end{call}
\begin{callself}{g}{calc moving vector}{}{}
\end{callself}
\end{callself}
\end{sdblock}
\end{call}
\end{call}
\end{call}
\end{sequencediagram}
\end{adjustbox}
\newpage
%\subsection{Code Snippets}
\setstretch{1}
%\lstinputlisting[label=FFviaFM_h,caption=FloorfieldViaFM Class Header]{../../routing/FloorfieldViaFM.h}
\newpage
%\lstinputlisting[label=RectGrid,caption=RectGrid Class Header]{../../routing/mesh/RectGrid.h}
\ No newline at end of file
%\documentclass{article}
%
%\usepackage[latin1]{inputenc}
%\usepackage{tikz}
%\usetikzlibrary{shapes,arrows}
%\begin{document}
%\pagestyle{empty}
% Define block styles
\tikzstyle{decision0} = [diamond, draw, fill=blue!20,
text width=4.5em, node distance=3cm, inner sep=0pt]
\tikzstyle{block0} = [rectangle, draw, fill=blue!20,
text width=12em, align=center, rounded corners, minimum height=4em]
\tikzstyle{cloud0} = [draw, ellipse,fill=blue!20, node distance=3cm,
minimum height=2em]
%----------------------------------------------------------------------------------
\tikzstyle{decision10} = [diamond, draw, fill=green!20,
text width=4.5em, node distance=3cm, inner sep=0pt]
\tikzstyle{block10} = [rectangle, draw, fill=green!20,
text width=12em, align=center, rounded corners, minimum height=4em]
\tikzstyle{cloud10} = [draw, ellipse,fill=green!20, node distance=3cm,
minimum height=2em]
%----------------------------------------------------------------------------------
\tikzstyle{decision20} = [diamond, draw, fill=red!20,
text width=4.5em, node distance=3cm, inner sep=0pt]
\tikzstyle{block20} = [rectangle, draw, fill=red!20,
text width=5em, rounded corners, minimum height=4em]
\tikzstyle{cloud20} = [draw, ellipse,fill=red!20, node distance=3cm,
minimum height=2em]
%---------------------------------------------------------------------------------
\tikzstyle{line} = [draw, -latex, ultra thick]
\begin{tikzpicture}[auto]
% Place nodes left block
\node [block0] (dfield) {create distance field\\ $d$};
\node [block0, below = 0.8cm of dfield] (sfield) {create speed field\\ $s$};
\node [block0, below = 0.8cm of sfield] (nFF) {create navigation floor-field\\ $c$};
\node [block10, below = 0.8cm of nFF] (nVF) {create vector field \\$(-1) \frac{\nabla c}{\left\Vert \nabla c \right\Vert}$};
%\node [block, below of=Jsim] (agents) {send/recv agents};
%\node [decision, below of=agents] (done) {done?};
%\node [cloud, below of=done, node distance=3cm] (end) {shutdown \emph{mobsim}};
% Draw edges
\path [line] (dfield) -- (sfield);
\path [line] (sfield) -- (nFF);
\path [line] (nFF) -- (nVF);
%\path [line] (agents) -- (done);
%\path [line] (done) -- node [near start] {yes} (end);
%\path [line] (done) -| node [anchor=south, near start] {no} +(-2.2,0) |- (Msim.west);
% ------- Middle block
\node [block10, right = 2cm of nVF] (wVF) {create vector field\\ $(-1) \nabla d$};
%\node [block1, below of=m2j] (req) {send agent request};
%\node [decision1, below of=req] (isplace) {is space?};
%\node [block1, below of=isplace, node distance=3cm] (send) {send agent};
%\node [decision1, below of=send] (more) {more agents?};
%\node [cloud1, below of=more, node distance=3cm] (end2) {end};
% Draw edges
%\path [line] (req) -- (isplace);
%\path [line] (isplace) -| node [near start] {no} +(2,-1) |- (end2.east);
%\path [line] (isplace) -- node [near start] {yes} (send);
%\path [line] (send) -- (more);
%\path [line] (more) -- node [near start] {no} (end2);
%\path [line] (more) -| node [anchor=south, near start] {yes} +(-2.2,0) |- (req.west);
% ------- Middle right
%\node [ right of=m2j, node distance=5cm] (j2m) {JuPedSim $\Leftrightarrow$ MATsim};
%\node [block2, below of=j2m] (recvReq) {receive agent request};
%\node [decision2, below of=recvReq] (isplace2) {is space?};
%\node [block2, below of=isplace2, node distance=3cm] (recv) {receive agent};
%\node [block2, below of=recv] (sim) {queue for simulation};
%\node [cloud2, below of=sim, node distance=4cm] (end3) {end};
% Draw edges
%\path [line] (recvReq) -- (isplace2);
%\path [line] (isplace2) -| node [near start] {no} +(2,-1) |- (end3.east);
%\path [line] (isplace2) -- node [near start] {yes} (recv);
%\path [line] (recv) -- (sim);
%\path [line] (sim) -- (end3);
\path [line] (dfield) -| node [near start] {} (wVF);
\end{tikzpicture}
%\end{document}
\ No newline at end of file
\begin{picture}(0,0)%
\includegraphics{forcesOnAgent.pdf}%
\end{picture}%
\setlength{\unitlength}{4144sp}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
\reset@font\fontsize{#1}{#2pt}%
\fontfamily{#3}\fontseries{#4}\fontshape{#5}%
\selectfont}%
\fi\endgroup%
\begin{picture}(5894,3163)(609,-2312)
\put(3286,-151){\makebox(0,0)[lb]{\smash{{\SetFigFont{17}{20.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}repelling forces}%
}}}}
\put(4051,-1029){\makebox(0,0)[b]{\smash{{\SetFigFont{17}{20.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}B}%
}}}}
\put(2251,-579){\makebox(0,0)[b]{\smash{{\SetFigFont{17}{20.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}A}%
}}}}
\put(3826,546){\makebox(0,0)[b]{\smash{{\SetFigFont{17}{20.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{1,1,1}Obstacle}%
}}}}
\put(3601,-2199){\makebox(0,0)[b]{\smash{{\SetFigFont{17}{20.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}Wall}%
}}}}
\end{picture}%
\section{Pedestrian Dynamics: Introduction}
%<< big picture: micor-/macroscopic models, cell automata/ODE-based, take a closer look in next chapter >>
Pedestrian dynamics defines a field of research trying to understand the kinematic and mechanic of pedestrian crowd movement. Understanding, how crowds react in different geometries under various circumstances, enables a safer design of our environment, to best fit the needs of civil and security engineering. Results are applied to safely conduct large events, to create architecture, through which large crowds can safely be moved and to optimize evacuation time in case of an emergency. At the annual hajj\footnote{Islamic pilgramage to Mecca, Saudi-Arabia.} in Mecca in 2015, a tragic panic started, when two crowds from opposite directions met on a street, 12 meter wide. Saudi authorities state that more than 700 pilgrims died in a stampede and at least 860 more had been injured.\footnote{BBC News, September 25th}
Pedestrian dynamics provides approaches to plan large events by calculating estimates for capacities of given geometries, researching crowd behavior and applying research results in new designs of civil engineering.
To simulate pedestrian crowds, many models exist with different characteristics. Predtetschenskii and Milinkskii \citep{Predtechenskii1971} are pioneers in pedestrian dynamics, conducting experiments as early as 1969. Few years later, Hirai and Tarui \citep{Hirai1975} implemented the first force-based model to simulate crowd behavior. Since then, new models have been described throughout the decades. To maintain orientation, these models can be grouped into classes in the following manner (see figure \ref{classes}):
\begin{figure}[h!]
\begin{center}
\tikzstyle{block} = [draw, rectangle, rounded
corners, minimum height=2em,fill=blue!10,text width=8em, text centered]
\begin{tikzpicture}[auto, node distance=4.5cm,>=latex', ultra thick]
\node [block, name=macro] {Macroscopic};
\node [block, name=micro, right of=macro] {Microscopic};
\node [block, name=meso, right of=micro] {Mesoscopic};
%\node [block, name=dis, below= 0.8cm of macro] {Discrete};
%\node [block, name=con, right of=dis] {Continuous};
%\node [block, name=mix, right of=con] {Mixed};
\node [block, name=rule, below= 0.8cm of macro] {Rule-based};
\node [block, name=ode, right of=rule] {ODE-based};
\node [block, name=hybr, right of=ode] {Hybrid};
\node [block, name=force, below = 0.8cm of rule] {Force-based};
\node [block, name=vel, right of=force] {Velocity-based};
\node [block, name=other, right of = vel] {other};
\draw [->] (micro) -- (rule);
\draw [->] (micro) -- (ode);
\draw [->] (micro) -- (hybr);
%\draw [->] (con) -- (rule);
%\draw [->] (con) -- (ode);
%\draw [->] (con) -- (hybr);
\draw [->] (ode) -- (force);
\draw [->] (ode) -- (vel);
\draw [->] (ode) -- (other);
\end{tikzpicture}
\end{center}
\caption{A possible hierarchical classification of models in pedestrian dynamics in \citep{Chraibi2012}}
\label{classes}
\end{figure}
\emph{Macroscopic} models tackle crowd behavior without the need to characterize individuals, which make up the crowd. The action of a single agent is neglected and it is assumed, that aggregated values are sufficient to describe the crowd behavior. Metrics, e.g. density or flow, are used to describe the dynamic within the system. Thus a crowd is seen as a continuous fluid, which can be modeled by these aggregated observables only. No inter-particle relations are explicitly considered. Given a model, which describes the change of the density throughout a geometry, it can be mathematically captured by an PDE. Larger roadmap- and city-traffic-simulation are fields, where macroscopic models are widely spread and can supply travel times and point out bottlenecks \citep{Emme}. There are limitations to this class of models. They are fast but lack the ability to simulate heterogeneous groups. Nor can they model individual decisions. In a panic situation, it has been observed, that pedestrians follow the crowd, even if other exits are available. A flow-based model would have the pedestrians use all available exits \citep{Marno}.
\emph{Microscopic} models consist of mathematical formulations describing the state and the interactions of every agent. Each agent has a position in the domain and interacts with its environment. It is assumed that the dynamics in any crowd is the result of individual actions. Within the model, these individual actions obviously must be different from the attempt to model the complete, complex system of a person's psychology, which defines its motivation of movement inside a crowd. It is desirable to have few and simple equations to model the agent's motivation. In analogy to Newtonian dynamics, it can be modeled by driving and repelling forces \citep{Helbing2001}. They lead to second order ordinary differential equations.
A popular starting point origins in the modeling of the behavior of electrical charges in an electro-magnetic potential field (see figure \ref{forcesOnAgent}). Charges of the same sign act on each other with a repelling force. This effect is used in the modeling of the natural collision-avoidance of a person to other persons, walls and obstacles in pedestrian dynamics. Superposing a driving force, that acts on the agent, steering it towards its destination, the resulting \emph{force based} model can be described by an ODE.\footnote{This simplified describtion shall suffice for this introduction. For further reference, please see corresponding literature. A comprehensive insight in SFMs is given in \citep{Chraibi2012}}
\begin{figure}[h!]
\input{forcesOnAgent.pdf_t}
%\includegraphics[width=1.0\linewidth]{pics/forces_on_agent.pdf}
\caption{Forces acting on agent A from: wall, obstacle and agent B}
\label{forcesOnAgent}
\end{figure}
\newline Force-based and velocity-based models are subject of this thesis, so we turn to ODE-based models, which is the super-class to both.
\subsection{ODE based, microscopic models}
We focus on ODE-based microscopic models, which are successful in producing system phenomena like congestions in front of bottlenecks and showing good accordance with experimentally determined fundamental diagrams
\footnote{Fundamental diagrams plot the (pedestrian) flow over the (pedestrian) density.}
[Dietrich, 2014]. Agents seem to sway left and right and do not steer as wanted. Various authors try to find new models with enhanced characteristics in terms of directing agents \citep{Moussaid2011}\citep{Chraibi2011}.
The difficult calibration of a model is another important issue. This type of models find their limit, if one is to find one constant set of parameters for various situations. Best results are achieved with a special calibrated set of parameters for each situation. The change of parameter sets would be problematic, if we want to make extensive use of parallel solvers. In terms of ergonomics, a constant set would be more user-friendly.
\emph{Velocity based} models, which often lead to first order ODEs, make up an important sub-group. These models change the agent's velocity directly and thus show much better trajectories in terms of oscillation. The TEST\footnote{substitute name of model}-model of this thesis, is partly derived from the \emph{GNM} \citep{Dietrich2014}, a velocity-based model. Dietrich motivates the creation of his model. He intends to overcome short-comings of both groups, oscillation (SFM) and the difficult mathematical treatment of Optimal Step Models, yet have the positive characteristics remain.
A major step towards this goal is the use of a navigation field, the solution to the Eikonal equation. This approach, introduced by Hartmann \citep{Hartmann2010}, provides routing and navigation information. In the GNM, Dietrich divides the navigation into two components. A static and a dynamic navigation vector are described. The static navigation field comprehends the geometry, the dynamic navigation field integrates pedestrians and mobile obstacles. It is clear, that the dynamic navigation field must be computed for every time-step throughout the simulation.
Besides oscillation and calibration, there is a third issue, on which we will focus in the next chapter: Overlapping. It describes a situation, where an agent's position is invalid either because the agent overlapps with another agent or because his simulated presence overlapps with a wall or even an obstacle. Once an agent is fully clipped through a wall-surface, faulty trajectories are most certain.
These issues highlight the need to develop pedestrian models and search for yet another model, which might overcome some of the shortcomings and can produce as good results as existing models already provide.
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
\RequirePackage{fix-cm}
%\documentclass[10pt,a4paper, twoside, titlepage]{article}
\documentclass[11pt,a4paper, titlepage]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{fixltx2e}
%\usepackage[pdftex]{graphicx, color}
\usepackage{graphicx}
\usepackage{color}
\usepackage{adjustbox}
\usepackage{pdfpages}
\usepackage{epsfig}
\DeclareGraphicsRule{.pdftex}{pdf}{.pdftex}{}
\usepackage{subfigure}
\usepackage[]{natbib}
\makeatletter
%sequenz-diagramm
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{arrows,shadows}
%code snippets
%\usepackage{color}
\usepackage{listings}
\usepackage{courier}
\usepackage{caption}
\usepackage{pgf-umlsd}
\lstset{
basicstyle=\footnotesize\ttfamily, % Standardschrift
%numbers=left, % Ort der Zeilennummern
numberstyle=\tiny, % Stil der Zeilennummern
%stepnumber=2, % Abstand zwischen den Zeilennummern
numbersep=5pt, % Abstand der Nummern zum Text
tabsize=2, % Groesse von Tabs
extendedchars=true, %
breaklines=true, % Zeilen werden Umgebrochen
keywordstyle=\color{red},
frame=b,
% keywordstyle=[1]\textbf, % Stil der Keywords
% keywordstyle=[2]\textbf, %
% keywordstyle=[3]\textbf, %
% keywordstyle=[4]\textbf, \sqrt{\sqrt{}} %
stringstyle=\color{white}\ttfamily, % Farbe der String
showspaces=false, % Leerzeichen anzeigen ?
showtabs=false, % Tabs anzeigen ?
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
%backgroundcolor=\color{lightgray},
showstringspaces=false % Leerzeichen in Strings anzeigen ?
}
\lstloadlanguages{% Check Dokumentation for further languages ...
%[Visual]Basic
%Pascal
%C
C++
%XML
%HTML
%Java
}
%\DeclareCaptionFont{blue}{\color{blue}}
%\captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
% code snippets end ############################################
\DeclareRobustCommand{\greektext}{%
\fontencoding{LGR}\selectfont\def\encodingdefault{LGR}}
\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
\DeclareFontEncoding{LGR}{}{}
\DeclareTextSymbol{\~}{LGR}{126}
\numberwithin{equation}{section}
\numberwithin{figure}{section}
\numberwithin{table}{section}
\usepackage{setspace}
\newcommand{\MSonehalfspacing}{%
\setstretch{1.44}% default
\ifcase \@ptsize \relax % 10pt
\setstretch {1.448}%
\or % 11pt
\setstretch {1.399}%
\or % 12pt
\setstretch {1.433}%
\fi
}
\newcommand{\MSdoublespacing}{%
\setstretch {1.92}% default
\ifcase \@ptsize \relax % 10pt
\setstretch {1.936}%
\or % 11pt
\setstretch {1.866}%
\or % 12pt
\setstretch {1.902}%
\fi
}
\MSonehalfspacing
\makeatother
\begin{document}
\input{Titlepage.tex}
\input{abstract.tex}
\newpage
\tableofcontents
\newpage
\input{introduction.tex}
\newpage
\input{modelling.tex}
\newpage
\input{verification.tex}
\newpage
\input{outlook.tex}
\newpage
\input{appendices.tex}
\newpage
%\section{Bibliography}
\bibliographystyle{plain}
\addcontentsline{toc}{section}{Literatur}
\bibliography{masterthesisArGr}
%micro-/macroscopic arbeiten (desktop/READ)
%fast-marching arbeiten:
%madrid
%code
%outlook: triangulated version (master/pdfs/fmarcher)
%Helbing and Molnr 1995, Hartmann 2010, Hartmann et al. 2012, ( + Felix 4.2)
%history: helbing, ... (einleitungen von mc, uk, fd)
\end{document}
\ No newline at end of file
%\documentclass{article}
%\usepackage[latin1]{inputenc}
%\usepackage{adjustbox}
%\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{positioning}
%\begin{document}
\begin{adjustbox}{width=\textwidth, height=\textheight, keepaspectratio}
%\pagestyle{empty}
% Define block styles
\tikzstyle{decision} = [diamond, draw, fill=blue!20,
text width=4.5em, align=center, inner sep=0pt]
\tikzstyle{block} = [rectangle, draw, fill=blue!20,
text width=7em, align=center, rounded corners, minimum height=4em]
\tikzstyle{cloud} = [draw, ellipse,fill=blue!20, align=center,
minimum height=3em]
%----------------------------------------------------------------------------------
%\tikzstyle{decision1} = [diamond, draw, fill=green!20,
% text width=4.5em, node distance=3cm, inner sep=0pt]
%\tikzstyle{block1} = [rectangle, draw, fill=green!20,
% text width=5em, align=center, rounded corners, minimum height=4em]
%\tikzstyle{cloud1} = [draw, ellipse,fill=green!20, node distance=3cm,
% minimum height=2em]
%----------------------------------------------------------------------------------
%\tikzstyle{decision2} = [diamond, draw, fill=red!20,
% text width=4.5em, node distance=3cm, inner sep=0pt]
%\tikzstyle{block2} = [rectangle, draw, fill=red!20,
% text width=5em, rounded corners, minimum height=4em]
%\tikzstyle{cloud2} = [draw, ellipse,fill=red!20, node distance=3cm,
% minimum height=2em]
%---------------------------------------------------------------------------------
\tikzstyle{line} = [draw, -latex, ultra thick]
%
\begin{tikzpicture}[auto]
% Place nodes left block
\node [cloud] (start) {set timestamp $t$, $i=0$};
\node [block, below = 0.8cm of start] (compi) {get Neighbors of ped $i$, $j=0$, sum$=0$};
\node [block, right = 1.5cm of compi] (getj) {get Neighbor j};
\node [decision, right = 1.5cm of getj] (valinf) {is influencing ped $i$?};
\node [block, below = 0.8cm of valinf] (addinf) {add influence to sum};
\node [decision, left = 1.5cm of addinf] (checkloop) {more neighbors to ped $i$?};
\node [block, below = 1.5cm of compi] (calcrep) {calculate $g(sum)$};
\node [block, below = 0.8cm of calcrep] (calcpuremov) {calculate $g(g(sum) + g(\nabla c))$};
\node [block, below = 0.8cm of calcpuremov] (calcjitter) {calc $\alpha oldmov + (1-\alpha) newmov$};
\node [decision, below = 0.8cm of calcjitter] (isslowed) {is in slowdown band}; % $d \leq \alpha_{s}$?};
\node [decision, right = 1.5cm of isslowed] (toWall) {geared towards wall}; % $\langle\vec{v}_{n},-\nabla d\rangle \ge 0$?};
\node [decision, right = 1.5cm of toWall] (isredir) {is in redirection band}; % $d \leq \alpha_{r}$?};
\node [block, below = 1cm of isredir] (redir) {redirect to move parallel to wall};
\node [block, left = 1.5cm of redir] (slow) {slowdown with $(1-\langle\vec{v}_{n},-\nabla d\rangle)$};
\node [block, below = 1cm of isslowed] (mov) {move agent $i$};
\node [decision, below = 0.8cm of mov] (checkoutloop) {next pedestrian?};
%\node [block, right = 1.5cm of checkoutloop] (t+1) {$t=t+1$};
% % Draw edges
\path [line] (start) -- (compi);
\path [line] (compi) -- (getj);
\path [line] (getj) -- (valinf);
\path [line] (valinf) -- node [near start] {yes} (addinf);
\path [line] (valinf) -- node [near start] {no} (checkloop); %+(-3,0) + (0,-4)-| (checkloop.south);
\path [line] (addinf) -- (checkloop);
\path [line] (checkloop) -- node [near start] {yes} node [near end]{$j=j+1$}(getj);
\path [line] (checkloop) -- node [near start] {no} (calcrep); %+(-3,0) + (0,-4)-| (checkloop.south);
\path [line] (calcrep) -- (calcpuremov);
\path [line] (calcpuremov) -- (calcjitter);
\path [line] (calcjitter) -- (isslowed);
\path [line] (isslowed) -- node [near start] {yes} (toWall);
\path [line] (isslowed) -- node [near start] {no} (mov);
\path [line] (toWall) -- node [near start] {yes} (isredir);
\path [line] (toWall) -- node [near start] {no} (mov);
\path [line] (isredir) -- node [near start] {yes} (redir);
\path [line] (isredir) -- node [near start] {no} (slow);
\path [line] (redir) -- (slow);
\path [line] (slow) -- (mov);
\path [line] (mov) -- (checkoutloop);
\path [line] (checkoutloop.west) -| node [near start] {yes} +(-2,0) |- node [near end]{$i=i+1$} (compi.west);
\path [line] (checkoutloop.south) -| node [anchor=south, near start] {no} +(-4,0) |- node [near end]{$t=t+\Delta t$}(start.west);
\end{tikzpicture}
\end{adjustbox}
%\end{document}
\ No newline at end of file
This diff is collapsed.
\section{Conclusion and Outlook}
In this thesis, an altered usage of an enhanced floor-field was shown, integrated in a suitable new TEST-model. The \emph{wall-avoid-distance} parameter was analyzed and shown to be able to show good convergence to empirical data. During the course of the work process, it became clear how versatile and powerful floor-fields can be. Not only in the current state, they can provide valuable assistance to pedestrian models, but they can be further developed to fit into much more contexts.
\subsection{Floor-field}
\subsubsection{Multiple Goals }
The floor-field is a useful tool in routing of pedestrians through any geometry. To unfold its full power, one can imagine to calculate a floor-field for each of many atomic goals\footnote{An atomic goal would be a single exit door, whereas a destination could consists of a set of doors/exits.}. The combination of many floor-fields, each corresponding to an atomic goal, can easily be managed by selecting the direction vector of the one floor-field, that provides the minimal time-cost of an active set of floor-fields evaluated at the grid-point of the current agent's position. Dynamic in-world events in a simulation could alter the set of active floor-fields. This way, models can implement navigation in a dynamically changing world. It can be also used, to be a tool in a simulation suit, which has agents change their destination during runtime. This would be realized by simply changing the active set to the floor-fields corresponding to the new destination.
<< Verteilerebene(?) oder etwas kleinere Geometrie mit mehreren Ausgaengen: Nebeneinander 2-4 Vectorfelder nebeneinander >>
\subsubsection{Multiple Floors}
In the current state, the floor-field provides time-cost on a discrete grid, a rectangular grid with equidistant spacing in each dimension. The grid-points are stored in a one-dimensional array by the row-major order. In a arrangement like this, it is easy to formulate 4-neighboring\footnote{Grid-points north, south, east and west to the current are called 4-neighbors.} relations. These values are easily accessed, if you are provided the stride value, namely how much grid-points make up the length of both dimensions in a 2-D world. The Fast-Marching algorithm needs the time-cost values of the 4-neighborhood.
This will change, if you need to simulate in a building with multiple floors, which are connected via stairs. We need to introduce a third dimension, which can be treated equally handy inside each floor. Any position, projected onto the x-y-plane, may not be unique anymore. On the other hand, it would be a waste of memory, if a third dimension would be introduced\footnote{As we are interested in points representing the floor of a room, all the volume (air) above would be not used.} introduced, to represent the hull-cube circumscribing a building.
One is to find a solution, which describes the geometry of the rooms in a memory-efficient way and yet be able to comfortably access the 4-neighbors' time-cost value.
%\subsection{Usage in JuPedSim}
%\subsection{Floor-fields in Triangulated Domains}
%\subsection{Parallelization}
\ No newline at end of file
\begin{picture}(0,0)%
\includegraphics{redirect.pdf}%
\end{picture}%
\setlength{\unitlength}{4144sp}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
\reset@font\fontsize{#1}{#2pt}%
\fontfamily{#3}\fontseries{#4}\fontshape{#5}%
\selectfont}%
\fi\endgroup%
\begin{picture}(5894,1836)(609,-1883)
\put(901,-1006){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\leq \alpha_r$}%
}}}}
\end{picture}%
\begin{picture}(0,0)%
\includegraphics{slowdown.pdf}%
\end{picture}%
\setlength{\unitlength}{4144sp}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
\reset@font\fontsize{#1}{#2pt}%
\fontfamily{#3}\fontseries{#4}\fontshape{#5}%
\selectfont}%
\fi\endgroup%
\begin{picture}(5894,1836)(609,-1883)
\put(901,-1006){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\familydefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}$\leq \alpha_s$}%
}}}}
\end{picture}%
\section{Verification and Validation}
In this chapter, we want to describe applicable tests to analyze the effect of the \emph{wall-avoid-distance} parameter to the output of the TEST-model. It shall be verified, that we see no overlapping and that the crowd shows typical phenomena, like lane-formation \citep{ZhangQ2011}. Following our set of tests, we will then validate the TEST-model to produce the pedestrian flow in bottleneck experiments, corresponding to empirical data. This verification is widely considered ao the most important criterion to validate simulation results \citep{Seyfried2008}. We will further compare the trajectories with a different model, one using automated triangulation to assist routing. The last test is a mere stress test to the model. We want to see how the model performes in an evacuation setting with a large, crowded geometry.
\subsection{Basic Tests}
%The validation of a model is a complex task and makes up a separate research field. Researchers in the field of Civil Engineering are working on various approaches on how to validate a model. The research group, CST - Pedestrian Dynamics and Traffic Simulation, is developing a set of test-cases any serious model should aim to pass. Tests include the behavior of a single moving agent passing static objects like a dummy agent or an obstacle. (see figure \ref{test01})
%The TEST-model, implemented in its current state in the simulation-suit JuPedSim\citep{jupedsim}, passed applicable tests and it was shown, that the basic mechanics of the routing are working as specified. Yet to complete validation of the model, the floorfield needs to support multiple destinations.
\begin{figure}[h!]