aboutsummaryrefslogtreecommitdiff
path: root/doc/tex/systemAnalysis.tex
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2022-07-01 15:40:57 +0200
committerInigoGutierrez <inigogf.95@gmail.com>2022-07-01 15:40:57 +0200
commit4cc55348c8dbb1902a1246fba66237d5c59f0349 (patch)
treeebc363dec6ae00f711be7ebd6e31530f25af1d9f /doc/tex/systemAnalysis.tex
parent6724aeb3ba98c1b9f042344734c2d683e79dfc64 (diff)
downloadimago-4cc55348c8dbb1902a1246fba66237d5c59f0349.tar.gz
imago-4cc55348c8dbb1902a1246fba66237d5c59f0349.zip
Finished writing documentation.
Diffstat (limited to 'doc/tex/systemAnalysis.tex')
-rw-r--r--doc/tex/systemAnalysis.tex55
1 files changed, 26 insertions, 29 deletions
diff --git a/doc/tex/systemAnalysis.tex b/doc/tex/systemAnalysis.tex
index e4962d3..a3d66de 100644
--- a/doc/tex/systemAnalysis.tex
+++ b/doc/tex/systemAnalysis.tex
@@ -1,6 +1,6 @@
\section{System Analysis}
-\subsection{System reach determination}
+\subsection{System Reach Determination}
These are the main goals the final product must reach.
@@ -277,7 +277,7 @@ The Training System will process SGF files storing records of games, train the
neural network models over those games and store the result. These models can
then be imported by the engine and be used to generate moves.
-\subsubsection{Interface between subsystems}
+\subsubsection{Interface Between Subsystems}
The Training System depends on the NeuralNetwork interface of the Engine System
and uses it to train and store the neural network models.
@@ -287,9 +287,9 @@ System. The Engine System uses it to store the state of a game and provide it
to the decision algorithms. The Training System uses it to create the internal
representation of a game resulting from the processing of an SGF file.
-\subsection{Class analysis}
+\subsection{Class Analysis}
-\subsubsection{Class diagram}
+\subsubsection{Class Diagram}
The classes resulting from the analysis phase are shown in
\fref{fig:analysisClasses}.
@@ -302,15 +302,14 @@ The classes resulting from the analysis phase are shown in
\end{center}
\end{figure}
-\subsubsection{Class description}
+\subsubsection{Class Description}
\newcommand{\interclassSpace}{30pt}
\paragraph{Engine System}
-
\indent \\
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{EngineIO} \\
\midrule
@@ -318,7 +317,6 @@ The classes resulting from the analysis phase are shown in
Offers the interface with the engine. \\
\midrule
\textbf{Responsibilities} \\
- % TODO: Single responsibility would be better?
\tabitem{Read input.} \\
\tabitem{Do some preprocessing.} \\
\tabitem{Forward commands to the engine logic component.} \\
@@ -332,7 +330,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{EngineLogic} \\
\midrule
@@ -362,7 +360,7 @@ The classes resulting from the analysis phase are shown in
now generate moves as from a new game.} \\
}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{DecisionAlgorithm} \\
\midrule
@@ -382,7 +380,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{MonteCarloTreeSearch} \\
\midrule
@@ -404,7 +402,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{MCTSNode} \\
\midrule
@@ -443,7 +441,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{Keras} \\
\midrule
@@ -467,7 +465,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{NeuralNetwork} \\
\midrule
@@ -505,7 +503,7 @@ The classes resulting from the analysis phase are shown in
\indent \\
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{GameState} \\
\midrule
@@ -532,7 +530,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{GameBoard} \\
\midrule
@@ -560,7 +558,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{GameMove} \\
\midrule
@@ -603,7 +601,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{GameBoard} \\
\midrule
@@ -637,13 +635,11 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-%TODO: Finish the classes of the Game System
-
\paragraph{Training System}
\indent \\
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{Trainer} \\
\midrule
@@ -658,13 +654,14 @@ The classes resulting from the analysis phase are shown in
%TODO: Explain why this is empty
\midrule
\textbf{Proposed methods} \\
- %TODO: Explain why this is empty
+ \tabitem{\textbf{loadGameTree()}: Reads a file and generates a GameMove tree
+ from its contents.} \\
\bottomrule
\end{tabular}
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{Parser} \\
\midrule
@@ -686,7 +683,7 @@ The classes resulting from the analysis phase are shown in
\vspace{\interclassSpace}
-\begin{tabular}{p{\linewidth}}
+\begin{tabular}{p{0.9\linewidth}}
\toprule
\textbf{ASTNode} \\
\midrule
@@ -751,17 +748,17 @@ against another machine player.
The engine interface reads the input for generating a move as stated by the
GTP protocol and outputs the coordinates of the board to play.
-\subsection{Use case analysis and scenarios}
+\subsection{Use Case Analysis and Scenarios}
\begin{figure}[h]
\begin{center}
- \includegraphics[width=\textwidth]{diagrams/useCase_playAMatch.png}
+ \includegraphics[width=0.8\textwidth]{diagrams/useCase_playAMatch.png}
\caption{Use case: Play a match.}
\label{fig:useCase_playAMatch}
\end{center}
\end{figure}
-\begin{tabular}{lp{0.7\linewidth}}
+\begin{tabular}{lp{0.6\linewidth}}
\toprule
\multicolumn{2}{c}{\textbf{Play a match}} \\
\midrule
@@ -804,7 +801,7 @@ GTP protocol and outputs the coordinates of the board to play.
\end{center}
\end{figure}
-\begin{tabular}{lp{0.7\linewidth}}
+\begin{tabular}{lp{0.6\linewidth}}
\toprule
\multicolumn{2}{c}{\textbf{Generate a move}} \\
\midrule
@@ -846,7 +843,7 @@ GTP protocol and outputs the coordinates of the board to play.
\end{center}
\end{figure}
-\begin{tabular}{lp{0.7\linewidth}}
+\begin{tabular}{lp{0.6\linewidth}}
\toprule
\multicolumn{2}{c}{\textbf{Use as backend for machine player}} \\
\midrule