Fix CaptureTheFlag win

This commit is contained in:
joachimschmidt557 2019-03-26 17:19:32 +01:00
parent bf13680e78
commit 420a1af3ef
2 changed files with 22 additions and 5 deletions

View file

@ -39,6 +39,9 @@ public class CaptureTheFlagGoal extends Goal {
public void setGame(Game game) { public void setGame(Game game) {
super.setGame(game); super.setGame(game);
flagCastles = new ArrayList<Castle>();
numFlagCastles = this.getGame().getPlayers().size() * NUM_FLAG_CASTLES_MULTIPLIER; numFlagCastles = this.getGame().getPlayers().size() * NUM_FLAG_CASTLES_MULTIPLIER;
} }

View file

@ -1,6 +1,7 @@
\documentclass{article} \documentclass{article}
\usepackage{amsmath} \usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{algorithm} \usepackage{algorithm}
\usepackage[noend]{algpseudocode} \usepackage[noend]{algpseudocode}
\usepackage{hyperref} \usepackage{hyperref}
@ -266,20 +267,33 @@ dass der Algorithmus versucht, so oft wie möglich
diesen Zyklus zu durchlaufen, um die kleinste Länge diesen Zyklus zu durchlaufen, um die kleinste Länge
zu erreichen. zu erreichen.
Wenn aber der Algorithmus terminiert, ist garantiert,
dass der Pfad, der bei dem negativen Zyklus
angegeben wird, nicht der kürzeste ist. Die Länge des
Pfades ist nämlich der Form $n \cdot x$ mit
$n \in \mathbb{N}$. Dann gilt $(n+1) \cdot x < n \cdot x$.
\subsubsection{Teil (b)} \subsubsection{Teil (b)}
Best case: In diesem Fall müsste der Algorithmus Best case: Der best case wäre ein Graph, der keine
Kanten hat, bzw. die dazugeörige Matrix, die leer
wäre. In diesem Fall gibt es weiterhin $n$
Iterationen, bei der jeweils für jeden Eintrag in
der Matrix geschaut wird, ob ein Pfad existiert.
Die Asymptotik ist also
$$\Theta()$$ $$\Theta(n^3)$$
Worst case: Im schlimmsten Fall müsste der Algorithmus Worst case: Im schlimmsten Fall wäre
in dem Graph jeder Knoten mit jedem anderen
Knoten verbunden. Dann müsste der Algorithmus
in jeder Iteration der Schleife die Länge von jedem in jeder Iteration der Schleife die Länge von jedem
Knoten zu jedem anderen Knoten berechnen. Es müssten Knoten zu jedem anderen Knoten neu berechnen. Es müssten
also alle Felder der $(n \times n)$-Matrix neu berechnet also alle Felder der $(n \times n)$-Matrix neu berechnet
werden. Deswegen müssten jede Iteration $n^2$ Schritte werden. Deswegen müssten jede Iteration $n^2$ Schritte
durchgeführt werden. Das resultiert in der Asymptotik durchgeführt werden. Das resultiert in der Asymptotik
$$\Theta(n^3)$$ $$\Theta(n^4)$$
\section{Weitergestaltung des Spiels} \section{Weitergestaltung des Spiels}