Development of the Best TsumeGo Solver Akihiro Kishimoto kishi@cs.ualberta.ca Today’s Talk My and Martin’s effort to develop TsumeGo Explorer Apply ideas behind one-eye solver to tsume-Go Problem Description Crucial stones are Example given Attacker tries to capture all crucial stones Defender tries to live – Make two eyes – Seki Play restricted to region 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 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 wins P2 A4 P3 P4 P5 Simulation Df-pn (r) OR node Df-pn(r) 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 15 4 2 4 15 2 4 5 5 Heuristic distance to break eye spaces 2 1 2 3 2 1 2 3 Problem of Heuristic Initialization Standard Df-pn Df-pn with heuristic initialization 6 1 th.pn = 2 1 th.pn = 7 1 Leaf nodes 6 6 Leaf nodes Result in more expansions of interior nodes pn OR node pn AND node Non-Uniform Threshold Control Compute average of evaluation values Use as a unit to increase thresholds Achieve 20% node reduction for harder problems Example 6 6 8 th.pn = 8 + (6 + 8) / 2 = 15 – Ratio of reexpanded node 45% ->33% pn OR node pn AND node 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 GoTools TsumeGo Explorer Total Problems # of Problems Execution Solved Time 418 418 418 1,235 448 Performance in One-Eye Problems Execution # of Problems Solved Time (119 Probs.) GoTools TsumeGo Explorer Total Problems 119 142 148 957 47 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 – 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 Next Target! Solved if Black plays first – 750 seconds – 16 million nodes Unsolved if White plays first