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{amsmath}
|
||||||
\usepackage{algorithm}
|
\usepackage{algorithm}
|
||||||
\usepackage[noend]{algpseudocode}
|
\usepackage[noend]{algpseudocode}
|
||||||
|
\usepackage{hyperref}
|
||||||
|
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
|
|
||||||
|
|
@ -17,11 +18,14 @@
|
||||||
|
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
\section{Der Graph}
|
\section{Der Graph}
|
||||||
|
|
||||||
\subsection{Bildung der Kanten}
|
\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}
|
\begin{algorithm}
|
||||||
\caption{Bildung von Kanten}\label{generate}
|
\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
|
\If{nodes is empty} return \EndIf
|
||||||
\State $castle \gets allCastles[0]$
|
\State $castle \gets allCastles[0]$
|
||||||
\State $remainingCastles \gets allCastles$
|
\State $remainingCastles \gets allCastles$
|
||||||
|
\State $connectedCastles \gets empty$
|
||||||
\Loop
|
\Loop
|
||||||
\If{$remainingCastles$ is empty} break
|
\If{$remainingCastles$ is empty} break
|
||||||
\EndIf
|
\EndIf
|
||||||
\State connect $castle$ to nearest castle
|
\State connect $castle$ to nearest castle
|
||||||
\State $castle \gets nearest castle$
|
|
||||||
\State remove $castle$ from $remainingCastles$
|
\State remove $castle$ from $remainingCastles$
|
||||||
|
\State add $castle$ to $connectedCastles$
|
||||||
\EndLoop
|
\EndLoop
|
||||||
\ForAll{castle in allCastles}
|
\ForAll{castle in allCastles}
|
||||||
\ForAll{nearCastle in allCastlesInRadius(castle)}
|
\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
|
mit der nächstliegenden Burg, die noch nicht verbunden
|
||||||
wurde. Daraufhin wird das gleiche mit der nächsten,
|
wurde. Daraufhin wird das gleiche mit der nächsten,
|
||||||
übernächsten, usw. Burg getan, bis die letzte Burg erreicht
|
übernächsten, usw. Burg getan, bis die letzte Burg erreicht
|
||||||
wurde. Zu diesem Zeitpunkt sind alle Burgen durch eine
|
wurde. Zu diesem Zeitpunkt sind alle Burgen durch einen
|
||||||
Linie verbunden.
|
Graph verbunden.
|
||||||
|
|
||||||
Die Ästhetische Verbesserung erfolgt, indem alle Burgen
|
Die Ästhetische Verbesserung erfolgt, indem alle Burgen
|
||||||
im Umkreis einer Burg durch eine Kante verbunden werden.
|
im Umkreis einer Burg durch eine Kante verbunden werden.
|
||||||
|
|
@ -127,6 +132,8 @@ werden der ArrayDeque \texttt{nextVisitNodes} hinzugefügt.
|
||||||
\subsection{Wege finden}
|
\subsection{Wege finden}
|
||||||
\subsubsection{Teil (a)}
|
\subsubsection{Teil (a)}
|
||||||
|
|
||||||
|
Eine pseudocode-Darstellung des Algorithmus:
|
||||||
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\caption{Berechnung der Distanzen}\label{path}
|
\caption{Berechnung der Distanzen}\label{path}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
|
|
@ -150,6 +157,7 @@ werden der ArrayDeque \texttt{nextVisitNodes} hinzugefügt.
|
||||||
\end{algorithmic}
|
\end{algorithmic}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
|
Die algorithmische Komplexität im worst-case ist:
|
||||||
|
|
||||||
$$O(n^2)$$
|
$$O(n^2)$$
|
||||||
|
|
||||||
|
|
@ -190,7 +198,7 @@ $$O(n)$$
|
||||||
|
|
||||||
Sei $n$ die Anzahl an Knoten.
|
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
|
\texttt{availableNodes}, die Liste von Knoten, die
|
||||||
noch nicht bearbeitet wurden enthält $n - h$ Elemente.
|
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 noch nicht abgearbeiteten Knoten gilt:
|
||||||
|
|
||||||
|
|
||||||
Für alle abgearbeiteten Knoten gilt:
|
Für alle abgearbeiteten Knoten gilt:
|
||||||
|
|
||||||
|
|
||||||
\subsection{Kürzester Pfad zu allen Knoten}
|
\subsection{Kürzester Pfad zu allen Knoten}
|
||||||
|
|
||||||
|
\subsubsection{Teil (a)}
|
||||||
|
|
||||||
|
\subsubsection{Teil (b)}
|
||||||
|
|
||||||
\section{Weitergestaltung des Spiels}
|
\section{Weitergestaltung des Spiels}
|
||||||
|
|
||||||
\subsection{Computergegner}
|
\subsection{Computergegner}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue