# 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
• 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*

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

Proof-Number Search(1/3): Proof Numbers
• Pn- search [Allis et.al.:94]

• Example of proof numbers
1 3 1

Proof numbers

Minimum number of leaf nodes to be expanded to prove

Better to select the child with small proof number for proving trees

1

1

1 pn

1

Leaf nodes

pn OR node

AND node

Proof Number Search(2/3): Disproof Numbers
• Pn- search [Allis et.al.:94]

• Example of disproof numbers
1

Disproof numbers

Minimum number of leaf nodes to be expanded to disprove

3

1

Better to select the child with small disproof number for disproving trees

1

1

1 dn

1 AND node

dn OR node

Proof-Number Search (3/3) Algorithm
1. Traverse from the root to a leaf by choosing
– Node with smallest (dis)proof number at (AND)OR node

2,2 3,1 2,1

2. 3. 4.

Expand a leaf node Update (Backup) pn & dn to the root Continue 1-3 until proven or disproven

1,1

1,1

1,1

1,1

1,2

pn,dn OR node pn,dn AND node

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

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

Seo’s algorithm(3/4): Transposition table
• Iterative deepening

Re-expansion of the nodes

Save proof numbers of the nodes previously expanded in TT

Seo’s algorithm(4/4): Multiple iterative deepening
• Overestimation of proof numbers at AND nodes

When an OR node is proved

Behavior of Multiple Iterative Deepening PN=13 12
5 Proved PN=8 PN=9 PN=10 7

Iterative deepening at all OR nodes
AND node OR node

Sketch of Seo’s Algorithm
• 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

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

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)

Sketch of df-pn

• 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

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

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