140 likes | 282 Views
Recent Progress on the One-eye Solver. Akihiro Kishimoto kishi@cs.ualberta.ca. Outline of this Talk. Previous Status of my Research Techniques Recently Added Experimental Results Conclusions Future Work. Previous Progress. Built a high performance one-eye solver
E N D
Recent Progress on the One-eye Solver Akihiro Kishimoto kishi@cs.ualberta.ca
Outline of this Talk • Previous Status of my Research • Techniques Recently Added • Experimental Results • Conclusions • Future Work
Previous Progress • Built a high performance one-eye solver • Depth-first proof-number search • Minimal distance heuristics • Connections to safe/crucial stones • Forced moves • Simulation
Recent Progress • Methods recently implemented • Heuristic initialization for proof and disproof numbers • Elimination of useless moves • Preliminary for a divide-and-conquer approach
Heuristic Initializations • Basic proof-number search variants • If (n is a leaf node) n.pn = n.dn = 1 • Proof-number search with heuristic initializations (e.g. [Allis:94] [Breuker et al.:94][Nagai:99]) • If (n is a leaf node) { n.pn = EstimateProofNumber(n); n.dn = EstimateDisproofNumber(n) }
Current Implementation for Heuristic Initializations • Definitions: • Proof cannot make the second eye • # of eye spaces is used for estimating pn • Disproof can make the second eye • Distance to an eye is used for estimating dn Note: Initializations to proof and disproof numbers are combined with the move generator • Df-pn looks up all the information on children
Distance to an eye # of eye spaces Examples 4 2 4 8 2 1 2 3 1 2 4 2 5 5 2 3
One Issue on Heuristic Initializations • Higher overhead for re-expanding interior nodes Basic df-pn df-pn + initialization 1 5 th.pn=2 1 1 Leaf th.pn=6 5 5 Leaf pn pn OR node AND node
Compute an average evaluation value of all the children Use that number as a unit to the threshold Example Solution to the Overhead of the Re-expansion 5 5 6 7 Leaf pn OR node th.pn = 6 + (5 + 6 + 7) / 3 pn AND node = 6 + 6 = 12
Experimental Results for Heuristic Initializations • For 136 test positions solved (Athlon 2400MP 200 MB TT) Total nodes Time Node / sec. df-pn without init 18,197,651 456 39,907 df-pn + dn init 15,135,326 359 42,159 df-pn + pn & dn init 9,015,558 189 47,701
Preliminary stage for a divide-and-conquer approach Divide-and-Conquer Approach Eliminating Useless Moves
Algorithm Compute connections to safe stones using the miai strategy Detect regions divided by safe stones considering connections Don’t generate moves in the regions that do not have potential eye spaces Example Eliminating Useless Move (cont’d)
Experimental Results: Useless Move Elimination • For 136 problems solved Total nodes Time Node / sec. df-pn without init 18,197,651 456 39,907 df-pn + dn init 15,135,326 359 42,159 df-pn + pn & dn init 9,015,558 189 47,701 df-pn + init + move elim. 7,725,253 167 46,259
Conclusions and Future Work • Summary • Achieving better results is always good • Future work • Of course, we want more!