Go (boardgame)

beCamp 2018

Michael Holroyd, Ph.D.


History of Go 

 
Go originated at least 2500 - 4000 years ago in China. It is the oldest game still played in its original form.

400-300 BC, Chinese scholars such as Confucius wrote about Go to illustrate correct thinking about filial piety and human nature. 

In 1000 AD, it is in Japan and is seen in Murasaki's The Tale of Genji (first "novel" ever written) 

by 1600's playing Go is one of the "Four Accomplishments" (with calligraphy, painting, and playing the lute) that must be mastered by the Chinese gentleman.













19 x 19 board, with black and white stones

Players alternate placing a stone (or passing)





Rule 1. A stone or solidly connected group of stones of one color is captured and removed from the board when all the intersections directly adjacent to it are occupied by the enemy. (Capture of the enemy takes precedence over self-capture.)







Rule 2. "Ko" - No position on the board may be recreated twice (prevents annoying back and forth)

Rule 3. Scoring


Territory surrounded (not occupied) + captured stones

Quick Example 9x9 Game:


https://www.britgo.org/intro/intro3

Computer Go


Why is Computer Go considered "hard"?


Chess positions per move: 
1, 20, 400, 5362, ...
http://oeis.org/A083276


Go positions per move:
361, 129960, 46655640, 16702719120, ...

Computer Go


Chess made significant progress using quick "position quality" estimation, and searching along paths with good positions. 1997:

Computer Go


Both the "position quality" estimation and the "search" problem are significantly more difficult in Go.

State-of-the-art in Go in 2008 was based on pattern-matching and search tree pruning. Actually fascinating code!

GnuGo: http://git.savannah.gnu.org/cgit/gnugo.git
 Pattern Nonterritory59
# gf New pattern. (3.7.2)
# See gunnar:58.

?OOX
X...
?OO?

:8,t

?OOE
Dabc
?OO?

;!oplay_attack_either(a,c,D,c) && !oplay_attack_either(c,a,E,a)

>non_oterritory(b);

post-2008

Computers finally fast enough for Monte-Carlo techniques

Monte-Carlo Tree Search (MCTS)

1. From any position, use a "dumb/fast" AI to play 100,000s of quick games to completion.

2. Even though these won't look like "real games", the percentage of "wins" is a good proxy for the quality of the board position

2008: Sudden, massive improvement in Computer Go ranking over previous approaches, but still not approaching professional play

AlphaGo

Started in 2014 funded by Alphabet (Google). Essentially uses MCTS but trains a position quality ranking from deep neural net.

2016 AlphaGo has already beat a professional player, and is facing off against one of the worlds top players, Lee Sedol.

Spoiler Alert: Lee Sedol loses 4 - 1



Move 37

"That's a very strange move"

Future?




Thanks!


Scenethink (event data platform):
http://scenethink.com

Arqball (computer vision and visualization):
http://arqball.com



Michael Holroyd
http://meekohi.com
Made with Slides.com