From c25a5d482937fc861e9d1cfc1ff36e479fcb2fb4 Mon Sep 17 00:00:00 2001 From: InigoGutierrez Date: Wed, 29 Jun 2022 14:33:37 +0200 Subject: Writing implementation section. --- doc/tex/biber.bib | 36 +++++++++++++++++++++++++ doc/tex/implementation.tex | 66 ++++++++++++++++++++++++++++++++++++++++++++++ doc/tex/planification.tex | 10 +++++-- doc/tex/tfg.tex | 2 +- 4 files changed, 111 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/tex/biber.bib b/doc/tex/biber.bib index 055ca8f..f22e058 100644 --- a/doc/tex/biber.bib +++ b/doc/tex/biber.bib @@ -46,6 +46,12 @@ url = {https://sabaki.yichuanshen.de} } +@online{keras, + title = {Keras: the Python deep learning API}, + urldate = {2022}, + url = {https://keras.io} +} + @online{sl_go, title = {Go}, organization = {Sensei's Library}, @@ -78,3 +84,33 @@ urldate = {2022}, url = {https://matplotlib.org/stable/gallery/images_contours_and_fields/image_annotated_heatmap.html} } + +@online{python, + title = {Welcome to Python.org}, + urldate = {2022}, + url = {https://www.python.org} +} + +@online{numpy, + title = {NumPy}, + urldate = {2022}, + url = {https://numpy.org} +} + +@online{matplotlib, + title = {Matplotlib — Visualization with Python}, + urldate = {2022}, + url = {https://matplotlib.org} +} + +@online{ply, + title = {PLY (Python Lex-Yacc)}, + urldate = {2022}, + url = {http://www.dabeaz.com/ply} +} + +@online{neovim, + title = {Home - Neovim}, + urldate = {2022}, + url = {http://neovim.io} +} diff --git a/doc/tex/implementation.tex b/doc/tex/implementation.tex index 297ba0e..40dfb93 100644 --- a/doc/tex/implementation.tex +++ b/doc/tex/implementation.tex @@ -1,5 +1,71 @@ \section{Implementation} +\subsection{Development environment} + +\subsubsection{Language} + +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}} + +Tensorflow is a platform for machine learning which provides a diverse range of +tools, one of which is a python library for machine learning. + +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}} + +NumPy is 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}} + +Matplotlib is 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}} + +PLY is 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 +project to create the SGF parser which transform SGF files to internal +representations of Go matches. + +\paragraph{Other utility libraries} + +These are some utility libraries commonly used for frequent programming tasks: + +\begin{itemize} + \item \textbf{sys}, to stop the execution of the program or access system info such + as primitives maximum values. + \item \textbf{os}, to interact with files. + \item \textbf{re}, to check strings with regular expressions. + \item \textbf{random}, to get random values, for example to obtain a random + item from a list. + \item \textbf{copy}, to obtain deep copies of multidimensional arrays. +\end{itemize} + +\subsubsection{Development tools} + +\paragraph{Neovim\cite{neovim}} + +\begin{itemize} + + \item Extensions + \item Extensions + +\end{itemize} + +% Old stuff starts here + \subsection{Engine} An implementation of GTP, that is, the piece of software which offers the GTP diff --git a/doc/tex/planification.tex b/doc/tex/planification.tex index 945c610..00695a1 100644 --- a/doc/tex/planification.tex +++ b/doc/tex/planification.tex @@ -145,13 +145,19 @@ 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}} + +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 +layouts. + \subsection{Technological Infrastructure} -\subsubsection{Programming language} +\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 -choice is Python, for various reasons: +choice is Python\cite{python}, for various reasons: \begin{itemize} diff --git a/doc/tex/tfg.tex b/doc/tex/tfg.tex index 22ee0e9..f387064 100644 --- a/doc/tex/tfg.tex +++ b/doc/tex/tfg.tex @@ -122,7 +122,7 @@ inclusion to use this template is included here. \input{tex/systemAnalysis.tex} -\input{tex/systemDesign.tex} +%\input{tex/systemDesign.tex} \input{tex/implementation.tex} -- cgit v1.2.1