DieterVerhofstadt/Thoughts on computer go

Sub-page of DieterVerhofstadt

For a Go Program to be successful, I believe it must find out how to copy the human approach, since humans have been better at Go, while not suffering from the mistakes the human brain makes.

Rereading the Essay on computer go by David Fotland, it occurs to me that the designers of Go programs are trying very hard to make a computer play "the computer way". They approach the problem almost entirely from the known strength of the computer (speed, memory) while trying to avoid the mistakes a computer would make if programmed carelessly (meaningless moves, pointless evaluations). The program is loaded with databases and heuristics, precisely the material fit for the computer.

So let's turn the approach around: what are the strong points of human intelligence applied to Go, and where can the computer overcome our weaknesses?

How do we play Go?

If I reflect on the way I play the game (and while being much weaker than a pro, I'm still stronger than any program) it occurs to me that there are roughly two processes going on:

  1. What's the stage of the game? What kind of evaluations must I make in this game?
  2. Make the evaluations.

In the opening

In the opening, the board doesn't tell us that much. The first moves are chosen, seldom forced. The choice comes forth from a strategy . The strategy can involve a preference of play, an impression of past successes, a familiarity with the patterns arising from such play, and it can take into account what you know of the opponent's preferences and successes.

Making a base for efficient stability and making extensions for solid development are the governing processes. Basic techniques are applied in close encounters in the corner.

In the middle game

In the middle game, cutting and connecting is the governing principle. Surround and avoid being surrounded the second. We evaluate all stones on their belonging to a group. We evaluate groups on their life and death status. Groups are evaluated on their importance (size and influence on open area).

In the endgame

When all groups have a settled status, they grab as much as possible of the remaining area. We check for keeping the initiative, size of the moves, while keeping a constant eye on the life and death status of our groups.

Ko

We find ourselves in a much more alarmed state when there's a ko. The governing processes are very different: we look for threats that can give compensation, calculate the outcome of the ko, the presence of local threats ..., while keeping an understanding of the reason for the ko.

Weaknesses and strengths of the human brain

Strengths

  1. We know what stage of the game we're in.
  2. We are strong in selecting the right thought process in a given scenario. We do not calculate the value of a monkey jump, when we know the life of our central group will decide the game.
  3. We are strong in recognizing groups and open spaces, thereby confining our attention to a few objects.
  4. We are strong in remembering succesful shapes for certain objectives.
  5. We apply physical and emotional ideas to the game, not linked to any calculation in particular (I don't want to be forced/ I feel I'm ahead so I'll go for global thickness/a sacrifice will result in less aji ...)

Weaknesses

  1. Low on RAM: We lose track of sequences due to our limited calculating abilities
  2. Low on ROM: We have a limited conscious knowledge of history
  3. Low on CPU: We need time for calculations and our concentration wears out
  4. Low reliability: We make errors that are not consistent to our level of play.
  5. Low efficiency: we do the same evaluations more than once
  6. Poor piping: we often select the last move evaluated
  7. We apply physical and emotional ideas to the game, not linked to any calculation in particular (I'll punish him for that kill/ No! Not that corner!/He's only a kyu)

The components of a successful computer program

Databases

  • Openings
  • Corner and side patterns
  • Basic techniques database
  • (te)Suji database
  • Successful shapes for stabilizing (per scenario)
  • Successful shapes for developing (per scenario)
  • ...

Sub-programs and temporary storage

  • A Stage status
  • A Scenario Selector
  • A Strategy Selector
  • A Base Builder
  • An Extension Builder
  • A Close combat selector
  • A connection evaluator
  • A group status matrix
  • A surrounding evaluator
  • A life and death evaluator
  • An importance evaluator
  • An endgame calculator
  • A ko master
  • A global status evaluator

Literature

As has been the case with Go, my friend Stefan Verstraeten often sends me along new paths of interesting stuff. In 2007 I've been reading On intelligence, a book by Jeff Hawkins?. I'm quite sure the game of Go is an interesting test case for his theories of how the brain works and how computers can become intelligent.

Another interesting series of articles I've read concern the idea of System of Pure Relations, which is the concept behind the database approach of Pile. This concept seems to be related to the concepts as explained in On intelligence and could provide another breakthrough in computer go.

(to be continued)


DieterVerhofstadt/Thoughts on computer go last edited by Dieter on November 18, 2011 - 15:44
RecentChanges · StartingPoints · About
Edit page ·Search · Related · Page info · Latest diff
[Welcome to Sensei's Library!]
RecentChanges
StartingPoints
About
RandomPage
Search position
Page history
Latest page diff
Partner sites:
Go Teaching Ladder
Goproblems.com
Login / Prefs
Tools
Sensei's Library