Lambda Search

    Keywords: Software

Lambda Search is a kind of generalized Null-Move Search for solving open-space Go capturing problems (attacker to capture a group). It is defined to use lambda-trees of different orders. Lambda-trees can only contain lambda-moves of the same order (subset of all legal moves).

Lambda Search is guaranteed to return the correct minimax value for the problem, provided the game has no Zugzwang motives.

Lambda trees can be searched with standard game tree search algorithms like Alpha-Beta Search, or Proof-Number Search; but for the moves, it has to be determined whether moves are really Lambda-n moves (which is checked with a recursive call: after a null move (=defender pass) there has to exist a lambda-n tree of lower order for the attacker).

By limiting the allowed moves in the lambda-trees, the branching factor is reduced, which makes the search more effective (only threats up to a certain level are considered).

At the root position, if no lambda-n threat can be found, a higher order threat (lambda-n+1 threat) can be searched for (like incremental deepening). (Go tactics: if a working ladder does not exist, look for a net)

Examples:

  • Lambda_a^0 Tree: (for attacker, lambda level=0)
    • has value 1: if the attacker's goal can be achieved directly by at least one of the attacker's legal moves
    • has value 0: otherwise
  • Lambda_a^1 Tree: (for attacker, lambda level=1, like Go Ladder)
    • has value 1: if ladder played by the attacker works (sequence of ataris, with final capture)
    • has value 0: otherwise
  • Lambda_a^2 Tree: (for attacker, lambda level=2, like Go net)
    • has value 1: working "net" exists
    • has value 0: otherwise

etc ...

References


This is a copy of the living page "Lambda Search" at Sensei's Library.
(OC) 2011 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About