Download presentation
Presentation is loading. Please wait.
1
Abstract Proof Search Studied by Tristan Cazenave Surveyed by Akihiro Kishimoto
2
Outline Background Abstract moves Combination of Abstract Proof Search with Alpha-Beta Search Experimental Results Conclusions
3
Motivations Current Go programs –Selective search based on heuristics Drastically reduce branching factor Sometimes returns an incorrect answer Is it possible to select moves safely while improving the reliability of the search results?
4
Contributions Abstract proof search –Search complete and minimal sets of moves –Always return correct results –Much better results than basic alpha-beta search in Atari Go (capture game)
5
Target Problem: Atari Go Capture marked stones 5-ply 9-ply 15-ply
6
Search Algorithm (1 / 2) Alpha-Beta Search with 3 values + enhancements 1.INFINITY: win for the player to move String has more than 5 liberties and black to play String is captured and white to play 2.-INFINITY: loss for the player to move Opposite to the above 3.0: unknown
7
Search Algorithm (2 / 2) Enhancements: –Iterative deepening –Transposition table –Quiescence search –Null window search (not at the root) –History heuristic
8
Overview of Abstract Proof Search 1.Generate “abstract moves” that can modify the outcome of the search –c.f. lambda-search [Thomsen CG2000] 2.Do abstract analysis using 1 3.If it succeeds in 2, stop searching pass a score back to the parent 4.Try all the moves if it fails in 2
9
Generating abstract moves What is an abstract move? –A forced move that leads to a win/ prevents from a loss Definition of game states: – g: white wins what ever move black makes – gi: white wins if white to play – ip: gi if black passes (black has to prevent gi)
10
Example of Game States
11
How to generate abstract moves? Use the liberties of the string and dependencies between game states E.g. – abstract moves that can change ip1 liberty of the string or liberties of the adjacent strings in atari –g1 for white ip1 game for black and still gi1 after each of the forced black moves made
12
Dependency between Game States
13
Combining with Alpha-Beta Search (1 / 4) Do an abstract search before doing a standard search –OR node (white’s turn) Check if gi1, if not check if gi2, if not check if gi3 One of gi works white wins Otherwise try the moves associated to the position
14
Combining with Alpha-Beta Search (2 / 4) int Capturegi2() { if (number of liberties == 2) for each liberty l if (LegalMove(l, white)) { MakeMove(l, white); if (Captureg1()) return 1; UndoMove(); } return 0; }
15
Combining with Alpha-Beta Search (3 / 4) At AND node (black’s turn) –Check if ip1, ip2, or ip3 –None of them is verified black wins (I.e. enough liberties) –Try moves associated to ip1, ip2, or ip3 If it cannot prevent a capture, white wins
16
Combining with Alpha-Beta Search (4 / 4) int Captureip2(S) { res = 0; if (Capturegi2()) { res = 1; CompleteSetOfMovesToPreventgi2(S1); for each move m of S1 if (LegalMove(m,black)) { MakeMove(m,black); if (!Capturegi1() and !Capturegi2()) add m to S; UndoMove(); } return res; } Note: S == empty && res == 2 black loses
17
Experimental Results (1 / 2) Test suites: –Graded Go problems for Beginners Volume 1-3 Environment: –K6-2 450MHz
18
Experimental Results (2 / 2) Performance on Volume 2 & 3
19
Conclusions Abstract proof search achieves excellent results –6 times slower in terms of # of nodes per second –Much less node expansion that can pay the price
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.