230 likes | 362 Views
Development of the Best Tsume-Go Solver. Akihiro Kishimoto kishi@cs.ualberta.ca. Today’s Talk. My and Martin’s effort to develop Tsume-Go Explorer Apply ideas behind one-eye solver to tsume-Go. Crucial stones are given Attacker tries to capture all crucial stones
E N D
Development of the Best Tsume-Go Solver Akihiro Kishimoto kishi@cs.ualberta.ca
Today’s Talk • My and Martin’s effort to develop Tsume-Go Explorer • Apply ideas behind one-eye solver to tsume-Go
Crucial stones are given Attacker tries to capture all crucial stones Defender tries to live Make two eyes Seki Play restricted to region Example Problem Description
Previous Work on Tsume-Go • GoTools [Wolf:1994] • Best tsume-Go solver for 15 years • Powerful rules for life/death detection • A lot of Go-knowledge written by hand • Naïve search algorithm • Limited to problems with 14 empty points
Previous Work on Shogi • Tsume-shogi solvers • Powerful search algorithms [Nagai:2002] • A lot of shogi-specific knowledge • Simpler than Go-knowledge • Surpass best human players • Can solve problems over 100 moves
TsumeGo Explorer • Search-based approach • Df-pn(r) [Kishimoto & Mueller:2003, 2004] • Simple methods to detect terminal node • One or two point eyes, seki, no eye space enough to live • Enhancements • Connections to safe stones • Forced moves • Simulation • Evaluation function to initialize proof and disproof numbers
Consider attacker’s connections [Mueller:97] Promote unsafe stones to safe Detect dead status earlier Example Connections to Safe Stones
Forced attacker moves Forced defender moves Forced Moves
wins A4 Df-pn (r) Df-pn(r) Simulation Simulation [Kawano:96] • Where to apply? P1 A4 P2 P3 P4 P5 OR node ANDnode
Problem of df-pn based search Hates capturing stones Apparently has large proof and disproof numbers Use evaluation function to initialize proof and disproof numbers Heuristic Initialization (1 / 2) P1 P2 Leaf node pn(P2) = 1 dn(P2) = 1 pn(P2) = evalPN(P2) dn(P2) = evalDN(P2)
Heuristic distance to make two eyes Heuristic distance to break eye spaces Heuristic Initialization (2 / 2) 15 4 2 4 15 2 1 2 3 4 2 2 1 5 5 2 3
Standard Df-pn Df-pn with heuristic initialization Problem of Heuristic Initialization 6 1 6 6 1 1 th.pn = 7 th.pn = 2 Leaf nodes Leaf nodes Result in more expansions of interior nodes OR node pn ANDnode pn
Compute average of evaluation values Use as a unit to increase thresholds Achieve 20% node reduction for harder problems Ratio of reexpanded node 45% ->33% Example Non-Uniform Threshold Control 6 6 8 th.pn = 8 + (6 + 8) / 2 = 15 OR node pn ANDnode pn
Comparison with GoTools • Conditions • Athlon 2800XP+ 5 minutes/per problem • 300 MB TT for Tsume-Go Explorer • Test suites • Hard 418 problems in Wolf’s collection • 148 one-eye problems created by Martin
Performance in Wolf’s Test Collection # of Problems Execution Solved Time GoTools 418 1,235 TsumeGo Explorer 418 448 Total Problems 418
Performance in One-Eye Problems Execution # of Problems Time Solved (119 Probs.) GoTools 119 957 TsumeGo Explorer 142 47 Total Problems 148
Comparison on Each ProblemOne-Eye Problems (1 / 2) Plots on problems solved by both programs
Comparison on Each ProblemOne-Eye Problems Plot on problems solved only by TsumeGo Explorer
GoTools’ knowledge work for small problems GoTools solves statically TsumeGo Explorer needs 3,159 nodes White to kill Lessons Learned (1 / 2)
Black to live Need better search algorithm for harder problems GoTools cannot solve within 5 minutes TsumeGo Explorer needs 0.73 seconds (22,616 nodes) Lessons Learned (2 / 2)
Summary • Conclusions • Successfully developed the best solver • Future work • Solve larger problems • Limited to between 22 and 27 empty points • C.f. GoTools 14 empty points • Solve open-boundary positions • Integration with the game-playing program
Solved if Black plays first 750 seconds 16 million nodes Unsolved if White plays first Next Target!