1 / 20

Applying proof numbers to Life and Death: First Result

Applying proof numbers to Life and Death: First Result. Akihiro Kishimoto Kishi@cs.ualberta.ca. 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

gasha
Télécharger la présentation

Applying proof numbers to Life and Death: First Result

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Applying proof numbers to Life and Death: First Result Akihiro Kishimoto Kishi@cs.ualberta.ca

  2. Outline • Introduction • Current Status of my Tsume-Go solver • Experiments • Issues to be resolved • Conclusions

  3. 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?

  4. 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]

  5. 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

  6. Variable depth-first search [Seo:95] Proof number [Allis:94] as a threshold Transposition table Proof Numbers • Proof Number 2 3 2 1 1 1 1 1 pn OR node pn AND node

  7. 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

  8. 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 Numbers • Disproof Number 2 3 2 1 1 1 1 1 pn OR node pn AND node

  9. 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

  10. Transposition table can’t save all the nodes Some information must be discarded Want to keep more important information SmallTreeGC [Nagai:99] Garbage Collection Scheme 0 0 0 Small tree Large tree

  11. Garbage Collection Scheme (cont’d) • Keep an entry to count the size of subtree • Discard TT entries with small subtrees • Continue 2 until TT has enough empty entries • e.g. 60 % of entries are thrown out

  12. Experimental Results • Pick up 5 problems from Thomas Wolf’s collection (lv1) • Problems solved: 3

  13. Experimental Results (cont’d) Unsolved 10,775 nodes Depth=13 Unsolved 58,653 nodes Depth=8 157,653 nodes

  14. What happens? • (Show the search space) • Weak heuristic to kill stones • pass is weird • Stable branching factor? • Slow

  15. 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)

  16. Not Research Issuebut Important (cont’d) • Case: 1,000 nodes/ sec % cumulative 55.42 3.07 List::LongContains 16.25 3.97 TsumeGoTask::NuMovesToAdd 8.12 4.42 List::Append(int) 3.07 4.59 TsumeGoTask::GenMoves 2.53 4.73 GoBoard::AdjacentBlocks

  17. (c.f. GHI Problem) [Breuker:98] Duplicate TT entries to save results [Nagai:02] Specific method to df-pn Things to be Implemented: (Dis)proof with Cyclic Positions A E B D Proof? Disproof? C

  18. 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 Overestimation of Proof and Disproof Numbers Example 2 pn = 1!! 1 1 1 1 1 AND node OR node

  19. Conclusions • Are proof and disproof numbers effective? • Too early to conclude • Need lots of enhancements • Evaluation functions • Simulation • Position decomposition • …

  20. 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

More Related