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.tex45
1 files changed, 24 insertions, 21 deletions
diff --git a/doc/tex/planification.tex b/doc/tex/planification.tex
index 00695a1..f0f7535 100644
--- a/doc/tex/planification.tex
+++ b/doc/tex/planification.tex
@@ -1,6 +1,6 @@
\section{Planning}
-\subsection{Driving needs}
+\subsection{Driving Needs}
As one of the deepest and most studied games in the world, Go presents a very
interesting problem for artificial intelligence. Implementing not only the
@@ -29,18 +29,18 @@ Presented here are the ideal targets of the project.
recorded in the SGF format.
\end{itemize}
-\subsection{Project stages}
+\subsection{Project Stages}
The project will be organized in several stages based on the different
components and needs.
-\subsubsection{Game implementation}
+\subsubsection{Game Implementation}
The rules of the game must be implemented, ideally in a way they can be tested
by direct human play. This system will at its bare minimum represent the
Japanese Go rules (area scoring, no superko rule, no suicide moves).
-\subsubsection{Engine implementation}
+\subsubsection{Engine Implementation}
The key of this project is to create some kind of system able to generate strong
moves based on any given board configuration: this will be such system. It will
@@ -50,7 +50,7 @@ either player. It should also be modular enough so different algorithms can be
selected and tested against each other as an experimental search for the best of
them.
-\subsubsection{Artificial Intelligence algorithms}
+\subsubsection{Artificial Intelligence Algorithms}
Different algorithms for the engine to use should be implemented and tested. The
results of this development and testing process should be presented as part of
@@ -66,7 +66,7 @@ Computer Science at the University of Oviedo.
The used material consists of a development and testing machine owned by the
student with specifications stated later on the project plan.
-\subsection{Work plan}
+\subsection{Work Plan}
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
@@ -92,9 +92,9 @@ Friday. Gantt diagrams for the planned working schedule are shown as
\end{center}
\end{figure}
-\subsection{Previous works}
+\subsection{Previous Works}
-\subsubsection{Existing engines}
+\subsubsection{Existing Engines}
\paragraph{AlphaGo}
@@ -103,28 +103,28 @@ owned by Google. It revolutionized the world of Go in 2015 and 2016 when it
respectively became the first AI to win against a professional Go player and
then won against Lee Sedol, a Korean player of the highest professional rank and
one of the strongest players in the world at the time. Its source code is
-closed, but a paper \parencite{natureAlphaGo2016} written by the team and
+closed, but a paper\cite{natureAlphaGo2016} written by the team and
published on Nature is available on
https://storage.googleapis.com/deepmind-media/alphago/AlphaGoNaturePaper.pdf.
The unprecedented success of AlphaGo served as inspiration for many AI projects,
including this one.
-\paragraph{KataGo~\cite{katago}}
+\paragraph{KataGo\cite{katago}}
An open source project based on the AlphaGo paper that also achieved superhuman
strength of play. The availability of its implementation and documentation
presents a great resource for this project.
-\paragraph{GnuGo~\cite{gnugo}}
+\paragraph{GnuGo\cite{gnugo}}
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{Existing standards}
+\subsubsection{Existing Standards}
-\paragraph{GTP~\cite{gtp}}
+\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
@@ -132,20 +132,23 @@ 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}}
+\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.
+SGF (\textit{Smart Go Format} or, in a more general context, \textit{Smart Game
+Format}) is a text format widely used for storing records of Go matches which
+allows for variants, comments and other metadata. It was devised for Go but it
+supports other games with similar turn-based structure. Many popular playing
+tools use it. By supporting SGF vast existing collections of games, such as
+those played on online Go servers, can be used to train the decision algorithms
+based on neural networks.
-\subsubsection{Sabaki~\cite{sabaki}}
+\subsubsection{Sabaki\cite{sabaki}}
Sabaki is a go board software compatible with GTP engines. It can serve as a GUI
for the engine developed in this project and as an example of the advantages of
following a standardized protocol.
-\subsubsection{Keras~\cite{keras}}
+\subsubsection{Keras\cite{keras}}
Keras is a deep learning API for Python allowing for the high-level definition
of neural networks. This permits easily testing and comparing different network
@@ -153,7 +156,7 @@ layouts.
\subsection{Technological Infrastructure}
-\subsubsection{Programming language}\label{sec:programmingLanguage}
+\subsubsection{Programming Language}\label{sec:programmingLanguage}
The resulting product of this project will be one or more pieces of software
able to be run locally on a personal computer. The programming language of