Fix CaptureTheFlag win
This commit is contained in:
parent
bf13680e78
commit
420a1af3ef
2 changed files with 22 additions and 5 deletions
|
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue