Minor doc. changes

This commit is contained in:
arnekeller 2019-04-13 13:05:52 +02:00
parent 8f65ece32c
commit 484c06dbd2

View File

@ -72,7 +72,7 @@ Zunächst kann man feststellen, dass jeder Abschnitt einer Route immer exakt ger
\begin{subfigure}{.33\textwidth}
\centering
\begin{tikzpicture}
\tkzInit[xmax=3.5,ymax=7]
\tkzInit[xmax=3.5,ymax=6.5]
\tkzAxeXY
\tkzGrid
\tkzDefPoint(0,0){B}
@ -92,7 +92,7 @@ Zunächst kann man feststellen, dass jeder Abschnitt einer Route immer exakt ger
\begin{subfigure}{.33\textwidth}
\centering
\begin{tikzpicture}
\tkzInit[xmax=3.5,ymax=7]
\tkzInit[xmax=3.5,ymax=6.5]
\tkzAxeXY
\tkzGrid
\tkzDefPoint(0,0){B}
@ -111,7 +111,7 @@ Zunächst kann man feststellen, dass jeder Abschnitt einer Route immer exakt ger
\begin{subfigure}{.33\textwidth}
\centering
\begin{tikzpicture}
\tkzInit[xmax=3.5,ymax=7]
\tkzInit[xmax=3.5,ymax=6.5]
\tkzAxeXY
\tkzGrid
\tkzDefPoint(0,0){B}
@ -153,7 +153,7 @@ Der letzte Abschnitt ihrer Route trifft die y-Achse immer in einem 60\degree-Win
\begin{subfigure}{.33\textwidth}
\centering
\begin{tikzpicture}
\tkzInit[xmax=3.5,ymax=7.5]
\tkzInit[xmax=3.5,ymax=6.3]
\tkzAxeXY
\tkzGrid
\tkzDefPoint(0,0.3){B}
@ -175,7 +175,7 @@ Der letzte Abschnitt ihrer Route trifft die y-Achse immer in einem 60\degree-Win
\begin{subfigure}{.33\textwidth}
\centering
\begin{tikzpicture}
\tkzInit[xmax=3.5,ymax=7.5]
\tkzInit[xmax=3.5,ymax=6.3]
\tkzAxeXY
\tkzGrid
\tkzDefPoint(0,0.5359){B}
@ -199,7 +199,7 @@ Der letzte Abschnitt ihrer Route trifft die y-Achse immer in einem 60\degree-Win
\begin{subfigure}{.33\textwidth}
\centering
\begin{tikzpicture}
\tkzInit[xmax=3.5,ymax=7.5]
\tkzInit[xmax=3.5,ymax=6.3]
\tkzAxeXY
\tkzGrid
\tkzDefPoint(0,0.3){B}
@ -233,7 +233,7 @@ Das Programm benutzt den Dijkstra-Algorithmus, um die beste Route für Lisa zu f
Der Weg von Lisa und dem Bus wird animiert ausgegeben. Zusätzlich zu den unbedingt benötigten Ausgaben wie z.B. der Start- und Zielzeit gibt das Programm auch noch die theoretisch (ohne Hindernisse) beste Startzeit aus. Nützlich sind auch die Debug-Ausgaben, die Statistiken zur Eingabedatei und der Performanz (Zeit pro Iteration, Gesamtzeit) enthalten.
\subsection{Laufzeitanalyse}
Da programmintern der Dijkstra-Algorithmus verwendet wird, entspricht die Laufzeit in etwa diesem. Somit ist die Zeitkomplexität ca. $O(n^2)$, wobei $n$ die Anzahl der Ecken aller Polygone ist. Effektiv können allerdings in jedem Schritt nur eine kleine Anzahl anderer Ecken erreicht werden, was den Algorithmus beschleunigt. Im Abschnitt \ref{performance} werden diese theoretischen Werte überprüft.
Da programmintern der Dijkstra-Algorithmus verwendet wird, entspricht die Laufzeit in etwa diesem. Somit ist die Zeitkomplexität ca. $O(n^2)$, wobei $n$ die Anzahl der Ecken aller Polygone ist. Effektiv können allerdings in jedem Schritt nur eine kleine Anzahl anderer Ecken erreicht werden, was den Algorithmus beschleunigen könnte. In Abschnitt \ref{performance} werden diese theoretischen Werte überprüft.
\subsection{Optimierungen}
Das Programm benutzt bestimmte Heuristiken, um die Suche zu beschleunigen. Eine davon ist die maximal mögliche Aufstehzeit für eine bestimmte Route. Um diese schnell zu berechnen, kann man zunächst feststellen, das der Bus mit konstanter Geschwindigkeit fährt. Deshalb ist eine Startposition des Busses mit einer kleineren y-Koordinate äquivalent zu einem früheren Aufstehen von Lisa. Das Programm berechnet daher die höchstmögliche Startposition für eine gegebene Route, weil diese Größe proportional zur gesuchten Größe ist.