1 / 16

Df-pn: Depth-first Proof Number Search

Df-pn: Depth-first Proof Number Search. Studied by Ayumu Nagai Surveryed by Akihiro Kishimoto. Outline of Presentation. Motivations Proof Number Search Seo’s Algorithm Df-pn Conclusions. Motivations. Why do we use depth-first search? Dfs uses less memory than bfs in general

israel
Download Presentation

Df-pn: Depth-first Proof Number Search

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. Df-pn: Depth-first Proof Number Search Studied by Ayumu Nagai Surveryed by Akihiro Kishimoto

  2. Outline of Presentation • Motivations • Proof Number Search • Seo’s Algorithm • Df-pn • Conclusions

  3. Motivations • Why do we use depth-first search? • Dfs uses less memory than bfs in general • O(d) v.s. O(b^d) • Has low overhead to manage nodes • C.f. A* needs priority queue, IDA* just needs stack • Can behave like bfs with TT • C.f. IDA* and A*, SSS* and MT-SSS*, Seo and AO*

  4. Why df-pn? • Proof Number Search: best-first search for AND/OR trees • Df-pn: depth-first search • Same behavior as pn-search • Less expansion of interior nodes Generally better performance than pn-search

  5. Proof-Number Search(1/3):Proof Numbers • Pn- search [Allis et.al.:94] • Proof numbers • Minimum number of leaf nodes to be expanded to prove • Better to select the child with small proof number for proving trees • Example of proof numbers 1 3 1 Leaf nodes 1 1 1 1 pn OR node pn AND node

  6. Proof Number Search(2/3):Disproof Numbers • Pn- search [Allis et.al.:94] • Disproof numbers • Minimum number of leaf nodes to be expanded to disprove • Better to select the child with small disproof number for disproving trees • Example of disproof numbers 1 3 1 1 1 1 1 dn OR node dn AND node

  7. Traverse from the root to a leaf by choosing Node with smallest (dis)proof number at (AND)OR node Expand a leaf node Update (Backup) pn & dn to the root Continue 1-3 until proven or disproven Proof-Number Search (3/3)Algorithm 2,2 3,1 2,1 1,1 1,1 1,1 1,1 1,2 pn,dn OR node pn,dn AND node

  8. Seo’s algorithm(1/4) • Proof number as a threshold • Transposition table • Multiple Iterative Deepening

  9. Seo’s algorithm(2/4):Depth-first search • Threshold for proof number • Iterative deepening Behavior of Seo’s algorithm PN=1 PN=2 PN=3

  10. Seo’s algorithm(3/4):Transposition table • Iterative deepening • Re-expansion of the nodes • Save proof numbers of the nodes previously expanded in TT

  11. Seo’s algorithm(4/4):Multiple iterative deepening • Overestimation of proof numbers at AND nodes • When an OR node is proved • Iterative deepening at all OR nodes Behavior of Multiple Iterative Deepening PN=13 12 5 7 Proved PN=8 PN=9 AND node OR node PN=10

  12. Node Selection: OR node: c1 AND node: as you like Updating Threshold: OR: PN = min(pn(c2) + 1, PN) AND: PN = PN + pn (c1) – (pn(c2) + … + pn(ck)) Returning Condition: PN <= pn(n) Others: Iterative deepening at OR node as far as PN > pn(n) Notations: n: node searching pn(n): proof number at n c1,…,ck: children of n where pn(c1)<=…<=pn(ck) PN: threshold Sketch of Seo’s Algorithm

  13. Df-pn • If you understand Seo’s algorithm, df-pn is easy to understand! • has two thresholds for proof & disproof numbers • C.f. Seo had only one threshold • Iterative deepening at both OR and AND nodes • Need to avoid overestimations of proof and disproof numbers • C.f. Seo avoided only the case of proof numbers

  14. Sketch of df-pn • Node Selection: • Always c1 • Updating Threshold: • OR: • PN’= min(pn(c2) + 1, PN) • DN’= DN – (dn(c2) + … + dn(ck)) • AND: • PN’= PN – (pn(c2) + … + pn(ck)) • DN’= min(dn(c2) + 1, DN) • Returning Condition : • PN <= pn(n) || DN <= dn(n) • Others: • Iterative deepening as far as PN > pn(n) && DN > dn(n) • Notations: • n: node searching • pn(n): proof number at n • dn(n): disproof number at n • c1,…,ck: children of n where pn(c1)<=…<=pn(ck) at OR node n, • dn(c1)<=…<=dn(ck) at AND node n • PN: threshold of pn • DN: threshold of dn

  15. Conclusions • I believe enhanced AND/OR tree search algorithms will improve the ability of tsumego solvers!

  16. References • Masahiro Seo: The C* Algorithm for AND/OR Tree Search and its Application to a Tsume-Shogi Program, M.Sc. Thesis, Department of Information Science, University of Tokyo, 1995 • Ayumu Nagai and Hiroshi Imai: Proof for the Equivalence Between Some Best-First Algorithms and Depth-First Algorithms for AND/OR Trees, KOREA-JAPAN Joint Workshop on Algorithms and Computation,pp. 163-170, 1999 • Ayumu Nagai: Df-pn Algorithm for Searching AND/OR Trees and its Applications, Ph.D. Thesis, Department of Computing Science, University of Tokyo, 2002

More Related