a heuristic search algorithm for capturing problems in go authors: keh-hsun chen and peigang zhang...

21
A Heuristic Search Algorithm for Capturing Problems in Go Authors: Keh-Hsun Chen and Peigang Zhang Presenter: Ling Zhao August 8, 2006

Post on 21-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

A Heuristic Search Algorithm for Capturing

Problems in Go

Authors: Keh-Hsun Chen and Peigang Zhang

Presenter: Ling Zhao

August 8, 2006

Problem Identification

• To determine if a block can be captured.

• A critical part for a strong Go program.

Challenges

• Open boundary.

• Complex situation: run out, kill adjacent enemy blocks, connect to a safe block, live inside, or get killed.

• Fast heuristic search.

• Selective search.

• Deep search.

• Seki and Ko.

Approach

• Fast ladder solver.

• Alpha-beta search + iterative deepening.

• Heuristic evaluation using multi-order liberties.

• Highly selective moves based on the evaluation.

• Forward pruning.

Chains and Blocks

• Chains: closely-related blocks that cannot be separated by attacker.

• Identification of chains:

- Share more than one liberty

- Share one protected liberty.

- Adjacent to an attacker’s dead block.

Multi-order Liberty

• First order liberty: normal liberty.• Augmented block: block plus all its

adjacent intersections (may connect to another block).

• Second order liberty: liberty of the augmented block – first order liberty.

• Third order liberty: the liberty of twice-augmented block – first and second order liberty.

Block Evaluation

• N1, N2, N3 – number of first, second and third order liberties, respectively.

• V = N1 * 16 + N2 * 8 + N3 * 4.

• V = V+50 if an attacker’s adjacent block can be captured by ladders.

• V = V-25 if an defender’s adjacent block can be captured by ladder.

Note: defender moves first.

Block Evaluation

• V = infinity if there are two solid eyes• Solid eye: Liberty surrounded by defender

or border and 3 out of the 4 diagonal points are secure (2 out of 2 for board-edge liberty).

• V = V+15 for each attacker’s adjacent block with liberty less than 3.

• The sign of V is reversed if attacker moves first.

Relevant Blocks

• Relevant attacker blocks: Adjacent attacker blocks with no more than

3 liberties and no more than that of the crucial block, if attacker moves first.

If defender moves first, add the required liberty by 1.

• Relevant defender blocks:Defender blocks adjacent to relevant attacker blocks with no more than 3 liberties.

Move Selection

• Up to 4 first and second order liberties based on block evaluation (1-ply search).

• Almost all attacker’s moves that can be captured by ladders or at a solid eye is removed.

• Attacker’s sacrifice moves are allowed (?).• 2 or 3 liberties for relevant attacker blocks.• 2 liberties for relevant defender blocks.• Algorithm favors liberties associated with blocks

with few liberties or those that can help to increase liberties of blocks.

Move Selection

• Capturing moves are promoted.

• When the number of candidate moves is less than 2, pass move is generated.

• The authors claim that this move selection algorithm can generate “compact yet generally adequate candidate move set”.

Example 1

• Black moves first.• Defender block marked by triangle.• 4 moves from 1 and 2 order liberties.• Move 1 is promoted.• And the right move is … ?

Example 2

• Black moves first.• Move 1 from first order liberty.• Moves 2 and 3 from the liberties of the attacker relevant

blocks. • Move 4 and 5 from the liberties of the defender relevant

blocks. • And the right move is … ?

Example 3

• Black moves first.

• And the right move is … ?

Iterative Deepening

• Search depth from 2 to 20 with increment of 2.

• Search terminates when a definite result (V>=150) is obtained, or depth/time limit is reached.

• Forward pruning: V is more than 50 away from the alpha-beta window.

Example 1: 6-ply search

Refute Move

• Speed up search by 20%• May introduce the missing best move.• Move 1 on the right is the refute move (?).

Seki and Ko

• Two consecutive passes: safe (unconditionally or by seki).

• Assuming first player can win Ko up to 3 times and second player cannot win any Ko.

• Modify the evaluation value for capturing based on winning Ko.

Experimental Results

• Test cases from Kano’s books: Graded Go Problems for Beginners (4 volumes).

• Results seem to be better than Thomsen and Cazenave’s approaches (Lamda search and iterative widening).

Time Vs. Solvability

Future Work

• Mix iterative deepening and widening to address missing key move problem.

• Proof number search in open regions.