aboutsummaryrefslogtreecommitdiff
path: root/doc/tex/systemAnalysis.tex
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2022-06-25 19:56:48 +0200
committerInigoGutierrez <inigogf.95@gmail.com>2022-06-25 19:56:48 +0200
commit77764bee49c93a5d08d134cf7919b7f84a997e20 (patch)
tree361c57d16e578b8ce1cc1bdd7c5c694c08744432 /doc/tex/systemAnalysis.tex
parentf57799a2b45cf7ad76ca9cff32cb4d1d86c2f2c4 (diff)
downloadimago-77764bee49c93a5d08d134cf7919b7f84a997e20.tar.gz
imago-77764bee49c93a5d08d134cf7919b7f84a997e20.zip
Back to the documentation after creating neural networks.
Diffstat (limited to 'doc/tex/systemAnalysis.tex')
-rw-r--r--doc/tex/systemAnalysis.tex99
1 files changed, 81 insertions, 18 deletions
diff --git a/doc/tex/systemAnalysis.tex b/doc/tex/systemAnalysis.tex
index 5868422..d0eb0b5 100644
--- a/doc/tex/systemAnalysis.tex
+++ b/doc/tex/systemAnalysis.tex
@@ -20,6 +20,20 @@ requisites needed for the system.
\begin{enumerate}
+ \item The game program is interactive.
+
+ \item Movements can be introduced to be played on the board.
+ \begin{enumerate}
+ \item A move is introduced as the textual representation of the
+ coordinates of the vertex to play on or as ``pass''.
+ \begin{enumerate}
+ \item The text introduced for the move must follow the
+ regular expression \texttt{([A-Z][0-9]+|pass)}
+ \item If the move is not valid it must be notified to the
+ user and another move asked for.
+ \end{enumerate}
+ \end{enumerate}
+
\item The state of the board can be shown to the user.
\begin{enumerate}
\item A text representation of each cell is printed.
@@ -36,18 +50,6 @@ requisites needed for the system.
\end{enumerate}
\end{enumerate}
- \item Movements can be introduced to be played on the board.
- \begin{enumerate}
- \item A move is introduced as the textual representation of the
- coordinates of the vertex to play on or as ``pass''.
- \begin{enumerate}
- \item The text introduced for the move must follow the
- regular expression \texttt{([A-Z][0-9]+|pass)}
- \item If the move is not valid, it must be notified to the
- user and another move asked for.
- \end{enumerate}
- \end{enumerate}
-
\item The board will behave according to the Japanese rules of Go.
\end{enumerate}
@@ -58,6 +60,8 @@ requisites needed for the system.
\begin{enumerate}
+ \item The engine program is interactive.
+
\item The engine implements the GTP (\textit{Go Text Protocol}) for its
interface.
\begin{enumerate}
@@ -102,6 +106,34 @@ requisites needed for the system.
\end{enumerate}
+\paragraph{Trainer Requirements}
+
+\setlist[enumerate,1]{label=FRT \arabic*.}
+
+\begin{enumerate}
+
+ \item The trainer program is non-interactive.
+
+ \item The trainer can be executed from the command line.
+ \begin{enumerate}
+ \item The trainer can be executed directly from an interactive shell.
+ \end{enumerate}
+
+ \item The trainer can interact with stored neural network models.
+ \begin{enumerate}
+ \item The trainer can read stored models to continue training them.
+ \item The trainer can store model files after their training.
+ \end{enumerate}
+
+ \item The trainer can import existing games.
+ \begin{enumerate}
+ \item Records of games stored as SGF can be imported.
+ \item Files containing records of games are provided as arguments to
+ the trainer.
+ \end{enumerate}
+
+\end{enumerate}
+
%\subsubsection{Security Requirements}
%
%\setlist[enumerate,1]{label=SR \arabic*.}
@@ -129,6 +161,9 @@ requisites needed for the system.
\item For directly using the engine the user needs to be familiar with
command line interfaces.
+ \item For directly using the trainer the user needs to know the different
+ network models available.
+
\end{enumerate}
\subsubsection{Technological Requirements}
@@ -140,12 +175,34 @@ requisites needed for the system.
\item The game program will be a python file able to be executed by the
python interpreter.
- \item The program will make use of standard input and standard output for
- communication.
+ \item The game program will make use of standard input and standard output
+ for communication.
\begin{enumerate}
\item Standard input will be used for reading moves.
- \item Standard output will be used for showing the board and for
- messages directed to the user.
+ \item Standard output will be used for showing the board.
+ \item Standard output will be used for messages directed to the user.
+ \end{enumerate}
+
+ \item The engine program will be a python file able to be executed by the
+ python interpreter.
+
+ \item The engine program will make use of standard input and standard output
+ for communication.
+ \begin{enumerate}
+ \item Standard input will be used for reading commands.
+ \item Standard output will be used for showing the result of
+ commands.
+ \end{enumerate}
+
+ \item The trainer program will be a python file able to be executed by the
+ python interpreter.
+
+ \item The engine program will make use of standard input and standard output
+ for communication.
+ \begin{enumerate}
+ \item Standard input will be used for reading commands.
+ \item Standard output will be used for showing the result of
+ commands.
\end{enumerate}
\end{enumerate}
@@ -156,6 +213,7 @@ requisites needed for the system.
\begin{enumerate}
+%TODO: Check and update this to something feasible
\item The maximum thinking time of the engine will be configurable.
\begin{enumerate}
\item It will be possible to pass the maximum time as a launch
@@ -166,7 +224,6 @@ requisites needed for the system.
\end{enumerate}
-
\setlist[enumerate,1]{label=\arabic*.}
\subsection{System Actors}
@@ -206,7 +263,13 @@ GTP protocol and outputs the coordinates of the board to play.
\paragraph{Use as backend for machine player}
-The engine is used as the backend for generating moves for a machine player.
+The engine is used as the backend for generating moves for a machine player,
+this is, for automated play, either against a human who is using the GUI or
+against another machine player.
+
+\paragraph{Train a neural network}
+
+A neural network is trained over a given list of moves.
\subsection{Subsystems}