diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/tex/imago.tex | 4 | ||||
-rw-r--r-- | doc/tex/implementation.tex | 20 | ||||
-rw-r--r-- | doc/tex/introduction.tex | 2 | ||||
-rw-r--r-- | doc/tex/planning.tex | 16 | ||||
-rw-r--r-- | doc/tex/results.tex | 4 | ||||
-rw-r--r-- | doc/tex/systemAnalysis.tex | 4 | ||||
-rw-r--r-- | doc/tex/systemDesign.tex | 2 |
7 files changed, 26 insertions, 26 deletions
diff --git a/doc/tex/imago.tex b/doc/tex/imago.tex index c2a5319..d80c19a 100644 --- a/doc/tex/imago.tex +++ b/doc/tex/imago.tex @@ -91,7 +91,7 @@ To Vicente García Díaz, for helping me learning to program on my first year at the school and directing me in this project on my last. -To José Manuel Redondo López\cite{plantillaRedondo}, for making an extensive +To José Manuel Redondo López \cite{plantillaRedondo}, for making an extensive template on which the structure of this documentation is extensively based. To all the people who have provided their time, support, ideas and company, all @@ -126,7 +126,7 @@ inclusion to use this template is included here. \begin{displayquote} Copyright (C) 2019 \textbf{JOSÉ MANUEL REDONDO - LÓPEZ}.\cite{plantillaRedondo} + LÓPEZ}. \cite{plantillaRedondo} \textit{Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 diff --git a/doc/tex/implementation.tex b/doc/tex/implementation.tex index d46e805..e449e7c 100644 --- a/doc/tex/implementation.tex +++ b/doc/tex/implementation.tex @@ -16,19 +16,19 @@ specifications are shown as a list for readability. The tools selected for the development of the project and the documentation are listed and explained on this section. All the tools used are either -free\cite{fsf_free} or open source software. The development machine runs 64 +free \cite{fsf_free} or open source software. The development machine runs 64 bits Arch Linux as its operating system. \subsubsection{Language} -The programming language of choice is Python\cite{python}. The rationale behind +The programming language of choice is Python \cite{python}. The rationale behind this decision has been stated on Section \ref{sec:programmingLanguage}. It also allows easy use of the Keras library for implementing neural networks. Various python libraries have been used to easy the development process or assist in the analysis of results. These are: -\paragraph{Keras/Tensorflow\cite{keras}} +\paragraph{Keras/Tensorflow \cite{keras}} Tensorflow is a platform for machine learning which provides a diverse range of tools, one of which is a python library for machine learning. @@ -37,19 +37,19 @@ Keras is a high-level API for Tensorflow allowing for the easy definition of neural networks. It permits easily testing and comparing different network layouts. -\paragraph{NumPy\cite{numpy}} +\paragraph{NumPy \cite{numpy}} A scientific package for python providing a lot of mathematical tools. The most interesting for this project are its capabilities to create and transform matrices. -\paragraph{Matplotlib\cite{matplotlib}} +\paragraph{Matplotlib \cite{matplotlib}} A python library for creating graphs and other visualizations. It is used to show the likelihood of moves the neural networks of the project create from a board configuration. -\paragraph{PLY\cite{ply}} +\paragraph{PLY \cite{ply}} A tool for generating compilers in Python. It is an implementation of the lex and yacc utilities, allowing to create lexers and parsers. It is used in the @@ -72,9 +72,9 @@ These are some utility libraries commonly used for frequent programming tasks: \subsubsection{Development Tools} -\paragraph{Neovim\cite{neovim}} +\paragraph{Neovim \cite{neovim}} -A text editor based on Vim\cite{vim}, providing its same functionality with +A text editor based on Vim \cite{vim}, providing its same functionality with useful additions and defaults for modern computers and terminal emulators. With some extensions and configuration it can become a powerful development environment with a very fluid usage experience. That, and the fact that the @@ -90,7 +90,7 @@ a computer, have made Neovim the editor of choice. \subsubsection{Documentation Tools} -\paragraph{\LaTeX\cite{latex}} +\paragraph{\LaTeX \cite{latex}} A typesetting system widely used in the investigation field, among others. It allows for documentation like this text to be written in plain text and then @@ -98,7 +98,7 @@ compiled to PDF or other formats, which permits keeping the source files of the documentation small and organized plus other benefits of plain text such as being able to use version control. -\paragraph{PlantUML\cite{puml}} +\paragraph{PlantUML \cite{puml}} A program which creates diagrams from plain text files. PlantUML supports syntax for many different sorts of diagrams, mainly but not only UML. It has been used diff --git a/doc/tex/introduction.tex b/doc/tex/introduction.tex index 2f34b7b..099f412 100644 --- a/doc/tex/introduction.tex +++ b/doc/tex/introduction.tex @@ -12,7 +12,7 @@ game at heart, Go has nonetheless been interpreted as a stylized representation of fighting a war, settling a frontier, cornering a market, thrashing out an argument, or even of fortune-telling and prophecy. Go has always been one of the - most played games in the world.\cite{sl_go} + most played games in the world. \cite{sl_go} \end{displayquote} As old and deep as Go is it has recently lived a revolution by the appearance of diff --git a/doc/tex/planning.tex b/doc/tex/planning.tex index 7f619f5..63c958f 100644 --- a/doc/tex/planning.tex +++ b/doc/tex/planning.tex @@ -77,20 +77,20 @@ 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\cite{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 @@ -98,7 +98,7 @@ engine for which the GTP protocol was first defined. \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 @@ -106,7 +106,7 @@ 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 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 @@ -116,13 +116,13 @@ 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 @@ -134,7 +134,7 @@ layouts. 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 -choice is Python\cite{python}, for various reasons: +choice is Python \cite{python}, for various reasons: \begin{itemize} diff --git a/doc/tex/results.tex b/doc/tex/results.tex index 9c1e52c..3cd682f 100644 --- a/doc/tex/results.tex +++ b/doc/tex/results.tex @@ -77,7 +77,7 @@ the board, for which the player must find some beneficial move. Life and death problems are a subset of tsumegos in which the survival of a group depends on finding the correct sequence to save or kill the group. One collection of such tsumegos is \textit{Cho Chikun's Encyclopedia of Life and Death}, part of which -are available on OGS\cite{ogsLifeAndDeath}, an online Go server. +are available on OGS \cite{ogsLifeAndDeath}, an online Go server. The first of these problems and what the algorithm suggested as moves is shown in \fref{fig:mctsProblem01}. @@ -228,7 +228,7 @@ Black responds to the white stone by attacking it at B4 and white then extends to the more open side with F7. The match up to this point is discussed on Sensei's Library as an interesting -sequence deriving from the center first stone\cite{sl_sword}. The discussion +sequence deriving from the center first stone \cite{sl_sword}. The discussion there states that white should have extended to the other side. The following moves are some sensible continuations, with approaches and diff --git a/doc/tex/systemAnalysis.tex b/doc/tex/systemAnalysis.tex index e7fbc73..3b6a0a3 100644 --- a/doc/tex/systemAnalysis.tex +++ b/doc/tex/systemAnalysis.tex @@ -881,11 +881,11 @@ GTP protocol and outputs the coordinates of the board to play. \subsubsection{Unitary Testing} -Tests for the python code are developed using the unittest\cite{python_unittest} +Tests for the python code are developed using the unittest \cite{python_unittest} testing framework. It has been chosen by virtue of being thoroughly documented and widely used. -The coverage of unit testing is checked with Coverage.py\cite{python_coverage}, +The coverage of unit testing is checked with Coverage.py \cite{python_coverage}, which can by itself run the unittest tests and generate coverage reports based on the results. diff --git a/doc/tex/systemDesign.tex b/doc/tex/systemDesign.tex index 80a2ccb..7975276 100644 --- a/doc/tex/systemDesign.tex +++ b/doc/tex/systemDesign.tex @@ -99,7 +99,7 @@ The engine can be started with the executable \texttt{imagocli.py}. Monte Carlo Tree Search is an algorithm that can be useful for exploring decision trees. It was used by AlphaGo in conjunction with neural networks as -explained in the AlphaGo 2016 paper\cite{natureAlphaGo2016}. +explained in the AlphaGo 2016 paper \cite{natureAlphaGo2016}. The algorithm assigns a score to each explored node based on how likely the player who makes the corresponding move is to win and updates this score on each |