Proof-number search explained

Proof-number search (short: PN search) is a game tree search algorithm invented by Victor Allis,[1] with applications mostly in endgame solvers, but also for sub-goals during games.

Using a binary goal (e.g. first player wins the game), game trees of two-person perfect-information games can be mapped to an and–or tree. Maximizing nodes become OR-nodes, minimizing nodes are mapped to AND-nodes. For all nodes proof and disproof numbers are stored, and updated during the search.

To each node of the partially expanded game tree the proof number anddisproof number are associated. A proof number represents the minimum number of leafnodes which have to be proved in order to prove the node. Analogously, a disproofnumber represents the minimum number of leaves which have to be disprovedin order to disprove the node. Because the goal of the tree is to prove a forcedwin, winning nodes are regarded as proved. Therefore, they have proof number0 and disproof number ∞. Lost or drawn nodes are regarded asdisproved. They have proof number ∞ and disproof number0. Unknown leaf nodes have a proof and disproof number of unity. The proof number of an internal AND node is equal to the sum ofits children's proof numbers, since to prove an AND node all the children haveto be proved. The disproof number of an AND node is equal to the minimum ofits children's disproof numbers. The disproof number of an internal OR node isequal to the sum of its children's disproof numbers, since to disprove an OR nodeall the children have to be disproved. Its proof number is equal to the minimumof its children's proof numbers.

The procedure of selecting the most-proving nodeto expand is the following. We start at the root. Then, at each OR node the childwith the lowest proof number is selected as successor, and at each AND node thechild with the lowest disproof number is selected as successor. Finally, when aleaf node is reached, it is expanded and its children are evaluated.

The proof and disproof numbers represent lower bounds on the number of nodes to be evaluated to prove (or disprove) certain nodes. By always selecting the most proving (disproving) node to expand, an efficient search is generated.

Some variants of proof number search like dfPN, PN2, PDS-PN[2] have been developed to address the quite big memoryrequirements of the algorithm.

References

  1. Book: Allis. L Victor. Searching for Solutions in Games and Artificial Intelligence. PhD Thesis. Ponsen & Looijen . 90-9007488-0. 24 Oct 2014. bot: unknown. https://web.archive.org/web/20041204235835/http://www.cs.vu.nl/~victor/thesis.html. 2004-12-04.
  2. Book: . PDS-PN: A New Proof-Number Search Algorithm . Lecture Notes in Computer Science . 2003 .

Further reading

A. Kishimoto, M.H.M. Winands, M. Müller, and J-T. Saito (2012) Game-tree search using proof numbers: The first twenty years, ICGA, 35(3):131–156, pdf