WIP doc
This commit is contained in:
parent
3e5e48898f
commit
738e9c44fd
1 changed files with 19 additions and 5 deletions
|
|
@ -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}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue