From 77764bee49c93a5d08d134cf7919b7f84a997e20 Mon Sep 17 00:00:00 2001 From: InigoGutierrez Date: Sat, 25 Jun 2022 19:56:48 +0200 Subject: Back to the documentation after creating neural networks. --- doc/tex/systemAnalysis.tex | 99 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 18 deletions(-) (limited to 'doc/tex/systemAnalysis.tex') 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} -- cgit v1.2.1