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
Problem Description Crucial stones are given Attacker tries to capture all crucial stones Defender tries to live Make two eyes Seki Play restricted to region Example
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 Enhancements 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
Connections to Safe Stones Consider attacker’s connections [Mueller:97] Promote unsafe stones to safe Detect dead status earlier Example
Forced Moves Forced attacker moves Forced defender moves
Simulation [Kawano:96] Where to apply? P1 A4 A4 Df-pn (r) wins P2 P3 OR node AND node
Heuristic Initialization (1 / 2) 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 P1 P2 Leaf node pn(P2) = 1 dn(P2) = 1 pn(P2) = evalPN(P2) dn(P2) = evalDN(P2)
Heuristic Initialization (2 / 2) Heuristic distance to make two eyes Heuristic distance to break eye spaces 15 4 2 4 15 2 1 2 3 2 4 2 1 5 5 2 3
Problem of Heuristic Initialization Standard Df-pn Df-pn with 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 AND node pn
Non-Uniform Threshold Control 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 6 6 8 th.pn = 8 + (6 + 8) / 2 = 15 OR node pn AND node 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 Problem Wolf’s Test Problems
Comparison on Each Problem One-Eye Problems (1 / 2) Plots on problems solved by both programs
Comparison on Each Problem One-Eye Problems Plot on problems solved only by TsumeGo Explorer
Lessons Learned (1 / 2) White to kill GoTools’ knowledge work for small problems GoTools solves statically TsumeGo Explorer needs 3,159 nodes
Lessons Learned (2 / 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)
Summary Conclusions Future work Successfully developed the best solver 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
Next Target! Solved if Black plays first Unsolved if White plays first 750 seconds 16 million nodes Unsolved if White plays first