Upload
gasha
View
32
Download
0
Embed Size (px)
DESCRIPTION
Applying proof numbers to Life and Death: First Result. Akihiro Kishimoto [email protected]. Outline. Introduction Current Status of my Tsume-Go solver Experiments Issues to be resolved Conclusions. Research Direction. Go is hard to do a brute-force search - PowerPoint PPT Presentation
Citation preview
Outline
• Introduction
• Current Status of my Tsume-Go solver
• Experiments
• Issues to be resolved
• Conclusions
Research Direction
• Go is hard to do a brute-force search– Still we need a search to prove the safety of
stones
Need a “smarter” search algorithm– Proof and disproof numbers are successful in
tsume-shogi solvers– Why not apply this method to tsume-go
solvers?
Current Status
• Writing a tsumego solver for Explorer– Proof numbers as a threshold as well as an
evaluation [Seo:95]– Disproof numbers for dynamic ordering at
AND nodes– Garbage collection scheme [Nagai:99]
What I haven’t done
• Handle Ko and Seki– E.g. Seki causes an issue (c.f. GHI problem)
• Enhancements– Most important part to go up performance
Proof Numbers
• Variable depth-first search [Seo:95]– Proof number
[Allis:94] as a threshold
– Transposition table
• Proof Number
3 2
2
11 1 1
pn pnOR node AND node
1
Proof Numbers: How to Compute?
pn(n): minimal number of leaf nodes to prove n
• Terminal Node:
– OR: pn(n) = Inf
– AND: pn(n) = 0
• Leaf (Unknown) Node:
– pn(n) = 1
• Internal node:
– OR: pn(n) = min (pn(n1), …, pn(nk)) n1…nk:children
– AND: pn(n) = pn(n1) + …. + pn (nk)
n1… nk: children
Disproof Numbers
• Dual notion of proof numbers
• pn(n): minimal number of leaf nodes to prove n
• dn(n): minimal number of leaf nodes to disprove n
• Disproof Number
pn pnOR node AND node
2
3 2
1 1 1 1 1
Disproof Numbers:How to Compute?
• Terminal Node: – OR: dn(n) = 0– AND: dn(n) = Inf
• Leaf (Unknown) Node:– dn(n) = 1
• Internal node: – OR: dn(n) = dn(n1)+ … +dn(nk)) n1… nk: children– AND: dn(n) = min(dn(n1) ,…. ,dn (nk)) n1… nk: children
Garbage Collection Scheme
• Transposition table can’t save all the nodes– Some information must
be discarded
– Want to keep more important information
• SmallTreeGC
[Nagai:99]
0
Small tree
Large tree
0 0
Garbage Collection Scheme (cont’d)
1. Keep an entry to count the size of subtree
2. Discard TT entries with small subtrees
3. Continue 2 until TT has enough empty entries
• e.g. 60 % of entries are thrown out
Experimental Results
• Pick up 5 problems from Thomas Wolf’s collection (lv1)
• Problems solved: 3
Experimental Results (cont’d)
58,653 nodes
Depth=8
10,775 nodes
Depth=13Unsolved
Unsolved
157,653 nodes
What happens?
• (Show the search space)– Weak heuristic to kill stones
• pass is weird
– Stable branching factor?– Slow
Not Research Issue but Important!
• # of nodes expanded per second is slow and unstable (1,000 – 10,000 nodes/sec on leedale)
• Case: 4,000 nodes / sec% cumulative 33.81 0.47 List::LongContains 10.79 0.62 TsumeGoTask::NuMovesToAdd 8.63 0.74 TsumeGoTask::CheckAdj 7.91 0.85 kHash::initTable 6.47 0.94 List::Append(int)
Not Research Issuebut Important (cont’d)
• Case: 1,000 nodes/ sec
% cumulative 55.42 3.07 List::LongContains16.25 3.97 TsumeGoTask::NuMovesToAdd8.12 4.42 List::Append(int)3.07 4.59 TsumeGoTask::GenMoves2.53 4.73 GoBoard::AdjacentBlocks
Things to be Implemented: (Dis)proof with Cyclic Positions
• (c.f. GHI Problem) • [Breuker:98]– Duplicate TT entries to
save results
• [Nagai:02]– Specific method to df-
pnB
A
Proof?Disproof?C
D
E
Overestimation of Proof and Disproof Numbers
• Proof Set Search [Mueller:2002]– Keep a set rather than
numbers for (dis)proof
• [Nagai: 2002]– Keep track of ancestors of a
node with more than one parents
Example
1 1
1
2
1 1
AND node OR node
pn = 1!!
Conclusions
• Are proof and disproof numbers effective?– Too early to conclude– Need lots of enhancements
• Evaluation functions
• Simulation
• Position decomposition
• …
Near Future Work
• Incorporate Martin’s one-eye evaluation function
• Handle Ko [Wolf] and Seki
• Convert Seo’s algorithm into df-pn – Df-pn doesn’t work well at present….
• Faster implementation