a heuristic search algorithm for capturing problems in go authors: keh-hsun chen and peigang zhang...
Post on 21-Dec-2015
216 views
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 … ?
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.
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).