From 738e9c44fdd4a121f0839ef69ceaaedfc3fcae7b Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Sun, 24 Mar 2019 21:00:27 +0100 Subject: [PATCH] WIP doc --- doc/Dokumentation.tex | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/doc/Dokumentation.tex b/doc/Dokumentation.tex index 2b14771..d67d069 100644 --- a/doc/Dokumentation.tex +++ b/doc/Dokumentation.tex @@ -3,6 +3,7 @@ \usepackage{amsmath} \usepackage{algorithm} \usepackage[noend]{algpseudocode} +\usepackage{hyperref} \usepackage[utf8]{inputenc} @@ -17,11 +18,14 @@ \tableofcontents +\pagebreak + \section{Der Graph} \subsection{Bildung der Kanten} -Der Algorithmus für die Bildung der Kanten ist folgender: +Der Algorithmus für die Bildung der Kanten ist eine +Version des \href{https://de.wikipedia.org/wiki/Algorithmus_von_Prim}{Algorithmus von Prim}: \begin{algorithm} \caption{Bildung von Kanten}\label{generate} @@ -30,12 +34,13 @@ Der Algorithmus für die Bildung der Kanten ist folgender: \If{nodes is empty} return \EndIf \State $castle \gets allCastles[0]$ \State $remainingCastles \gets allCastles$ + \State $connectedCastles \gets empty$ \Loop \If{$remainingCastles$ is empty} break \EndIf \State connect $castle$ to nearest castle - \State $castle \gets nearest castle$ \State remove $castle$ from $remainingCastles$ + \State add $castle$ to $connectedCastles$ \EndLoop \ForAll{castle in allCastles} \ForAll{nearCastle in allCastlesInRadius(castle)} @@ -61,8 +66,8 @@ einer bestimmten Start-Burg an und verbindet diese Burg mit der nächstliegenden Burg, die noch nicht verbunden wurde. Daraufhin wird das gleiche mit der nächsten, übernächsten, usw. Burg getan, bis die letzte Burg erreicht -wurde. Zu diesem Zeitpunkt sind alle Burgen durch eine -Linie verbunden. +wurde. Zu diesem Zeitpunkt sind alle Burgen durch einen +Graph verbunden. Die Ästhetische Verbesserung erfolgt, indem alle Burgen im Umkreis einer Burg durch eine Kante verbunden werden. @@ -127,6 +132,8 @@ werden der ArrayDeque \texttt{nextVisitNodes} hinzugefügt. \subsection{Wege finden} \subsubsection{Teil (a)} +Eine pseudocode-Darstellung des Algorithmus: + \begin{algorithm} \caption{Berechnung der Distanzen}\label{path} \begin{algorithmic}[1] @@ -150,6 +157,7 @@ werden der ArrayDeque \texttt{nextVisitNodes} hinzugefügt. \end{algorithmic} \end{algorithm} +Die algorithmische Komplexität im worst-case ist: $$O(n^2)$$ @@ -190,7 +198,7 @@ $$O(n)$$ Sei $n$ die Anzahl an Knoten. -Invariante: Nach $h \geq 0$ Durchläufen gilt: +\textbf{Invariante}: Nach $h \geq 0$ Durchläufen gilt: \texttt{availableNodes}, die Liste von Knoten, die noch nicht bearbeitet wurden enthält $n - h$ Elemente. @@ -199,10 +207,16 @@ Knoten, also alle $n - h$ größten Knoten. Für alle noch nicht abgearbeiteten Knoten gilt: + Für alle abgearbeiteten Knoten gilt: + \subsection{Kürzester Pfad zu allen Knoten} +\subsubsection{Teil (a)} + +\subsubsection{Teil (b)} + \section{Weitergestaltung des Spiels} \subsection{Computergegner}