Software:Benson's algorithm (Go)

From HandWiki
Revision as of 15:21, 27 June 2023 by WikiG (talk | contribs) (linkage)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Algorithm to determine whether a group of go stones are unconditionally alive

In the game Go, Benson's algorithm (named after David B. Benson) can be used to determine the stones which are safe from capture no matter how many turns in a row the opposing player gets, i.e. unconditionally alive.[1]

Algorithm

Without loss of generality, we describe Benson's algorithm for the Black player.

Let X be the set of all Black chains and R be the set of all Black-enclosed regions of X. Then Benson's algorithm requires iteratively applying the following two steps until neither is able to remove any more chains or regions:

  1. Remove from X all Black chains with less than two vital Black-enclosed regions in R, where a Black-enclosed region is vital to a Black chain in X if all its empty intersections are also liberties of the chain.
  2. Remove from R all Black-enclosed regions with a surrounding stone in a chain not in X.

The final set X is the set of all unconditionally alive Black chains.[2]

Applicability

Most strong Computer Go programs since 2008 do not actually use Benson's algorithm. "Knowledge-based" approaches to Go that attempt to simulate human strategy proved to not be very effective, and later approaches generally used tools such as Monte Carlo random playouts to "score" positions. Go positions frequently require scoring stones and territory in a more probabilistic, gradual manner where stones might be probably dead unless the opponent allows the player to make uncontested plays to save the stones, contested, alive as long as the opponent is not allowed one uncontested play, alive as long as the opponent is not allowed repeated uncontested play in the area, and so on. A system that only perceives unconditionally alive will not be very strong, as high-level play routinely involves leaving groups not entirely "finished" after their state becomes safe if protected by further plays (e.g. they will only be captured if the player lets them be captured, in which case they are presumably trading them for an even higher value objective). A system that can handle more complicated gradients of possibility will already understand unconditionally alive stones "for free" as part of whatever system is used to score and understand positions.

See also

References