diff options
Diffstat (limited to 'doc/tex/introduction.tex')
-rw-r--r-- | doc/tex/introduction.tex | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/doc/tex/introduction.tex b/doc/tex/introduction.tex index fe5c205..c50d700 100644 --- a/doc/tex/introduction.tex +++ b/doc/tex/introduction.tex @@ -12,11 +12,74 @@ 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 artificial intelligences with superhuman strength. While not expecting to achieve what a full team of developers and computer scientists at Google did, -this project aims to evaluate how an engine able to play the game of Go could be +this project aims to analyze how an engine able to play the game of Go could be created, implement such an engine and evaluate the results of the whole process. + +\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 +game's simple but subtle rules, but a system capable of playing it with a +satisfying level of skill, is a task worth of pursuing as an exercise on +software design, algorithmics and \acrfull{ai} research. + +On the practical level, this project can be a foundation for the development of +different Go analysis algorithms by providing an existing engine to house them, +which can be of interest to Go players and software scientists alike. + +\subsection{Reach} + +Presented here are the ideal targets of the project. + +\begin{itemize} + \item An implementation of the game of Go, that is, a system for holding the + 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 via various decision algorithms. + \item An interface compatible with existing \acrshort{gui}s. + \item A way for processing existing records of games, which are usually + recorded in the \acrfull{sgf}. +\end{itemize} + +\subsection{Rules of Go} + +Some understanding of the basics of the game is necessary to process this +document. Luckily for the reader, the rules of Go are pretty simple. If the +reader prefers, there is an interactive tutorial at +\texttt{https://online-go.com/learn-to-play-go/} going over the fundamentals and +introducing basic strategy for managing the stones which is already useful and +needed for the first games. Either way, the rules are sumarized as follows: + +\begin{itemize} + +\item There are two players. One plays as black, the other as white. Black plays + first. + +\item The player with the biggest score when the game ends wins. The score + consists of surrounded territory and captured enemy stones. Surrounded + territory is defined as the areas of empty space connected orthogonally + only to stones of one color. Each empty space on a surrounded area and each + captured enemy stone score one point. + +\item As their turn, a player can either place a stone of their color in an + empty space of the board or pass. The game ends when both players pass + consecutively. + +\item Stones of the same color orthogonally adjacent to one another are + considered connected. When one group of connected stones has no more + orthogonally adjacent empty spaces it is considered as captured and its + stones are removed from the board. + +\item Additionally, to prevent endlessly repeating plays, it is forbidden to + make a move which resets the board to the previous position. This is called + the \Gls{ko} rule, is of strategic relevance outside the scope of a basic + introduction to the game, and doesn't always come up. + +\end{itemize} |