Development of the Best Tsume-Go Solver

advertisement
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
Download