aboutsummaryrefslogtreecommitdiff
path: root/doc/tex/planification.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/tex/planification.tex')
-rw-r--r--doc/tex/planification.tex35
1 files changed, 31 insertions, 4 deletions
diff --git a/doc/tex/planification.tex b/doc/tex/planification.tex
index 5c9b253..942973f 100644
--- a/doc/tex/planification.tex
+++ b/doc/tex/planification.tex
@@ -21,10 +21,12 @@ Presented here are the ideal targets of the project.
moves and variants of a match (a tree of moves) and the logic for the
game's rules.
\item An engine capable of analyzing board positions and generating strong
- moves.
+ moves via various decision algorithms.
\item Either a GUI specifically developed for the project or an
implementation of an existing protocol so the engine can be used with
existing tools and GUIs.
+ \item A way for processing existing records of games, which are usually
+ recorded in the SGF format.
\end{itemize}
\subsection{Project stages}
@@ -70,7 +72,7 @@ The sole developer will be the student, who is currently working as a Junior
Software Engineer on a 35 hour per week schedule and with no university
responsibilities other than this project. Taking this into account, a sensible
initial assumption is that he will be able to work 3 hours a day, Monday to
-Saturday. Gantt diagrams for the planned working schedule are shown as
+Friday. Gantt diagrams for the planned working schedule are shown as
Fig.~\ref{fig:planificationWorkPlanGame} and
Fig.~\ref{fig:planificationWorkPlanEngine}.
@@ -120,7 +122,9 @@ A software capable of playing Go part of the GNU project. Although not a strong
engine anymore, it is interesting for historic reasons as the free software
engine for which the GTP protocol was first defined.
-\subsubsection{GTP~\cite{gtp}}
+\subsubsection{Existing standards}
+
+\paragraph{GTP~\cite{gtp}}
GTP (\textit{Go Text Protocol}) is a text based protocol for
communication with computer go programs. It is the protocol used by GNU Go and
@@ -128,6 +132,13 @@ the more modern and powerful KataGo. By supporting GTP the engine developed for
this project can be used with existing GUIs and other programs, making it easier
to use it with the tools users are already familiar with.
+\paragraph{SGF~\cite{sgf}}
+
+SGF (\textit{Smart Game Format}) is a text format widely used for storing
+records of Go matches which allows for variants, comments and other metadata.
+Many popular playing tools use it. By supporting SGF vast existing collections
+of games can be used to train the decision algorithms based on neural networks.
+
\subsubsection{Sabaki~\cite{sabaki}}
Sabaki is a go board software compatible with GTP engines. It can serve as a GUI
@@ -148,7 +159,7 @@ choice is Python, for various reasons:
specifically on AI research and development.
\item Interpreters are available for many platforms, which allows the most
people possible to access the product.
- \item Although not too deeply, it has been used by the developer student
+ \item Although not very deeply, it has been used by the developer student
during its degree including in AI and game theory contexts.
\end{itemize}
@@ -159,3 +170,19 @@ Both the game and the engine will offer a text interface. For the game this
allows for quick human testing. For the engine it is mandated by the protocol,
since GTP is a text based protocol for programs using text interfaces.
Independent programs compatible with this interface can be used as a GUI.
+
+There is also the need of an interface with SGF files so existing games can be
+processed by the trainer.
+
+Both the engine and the trainer will need to interface with the files storing
+the neural network models.
+
+The systems' interfaces are shown in Fig.~\ref{fig:interfaces}.
+
+\begin{figure}[h]
+ \begin{center}
+ \includegraphics[width=\textwidth]{diagrams/interfaces.png}
+ \caption{Interfaces of the three components of the project.
+ }\label{fig:interfaces}
+ \end{center}
+\end{figure}