Best-First

Home * Search * Best-First

Best-First Search is a state space search to traverse nodes of tree-like data structures (i. e. search trees) in breadth-first manner. It is usually implemented with a priority queue instead of the FIFO of breadth-first, to expand the most promising node of one level first. Best-first turns a uninformed breadth-first into an informed search. Since all nodes of one level must be saved until their child nodes at the next level have been generated, the space complexity and memory requirement is proportional to the number of nodes at the deepest level.

Best-first algorithms like A* are used for path finding in combinatorial search and puzzles. Iterative deepening is a technique to turn depth-first searches into best-first with the advantage space grows linear rather than exponential with increasing search depth, as applied for instance in IDA*.

=Two-Player= Following best-first algorithms were invented and implemented for computer chess programs as well for other two-player zero-sum board game players with perfect information:
 * SSS* and Dual*
 * B*
 * Conspiracy Number Search
 * LCF
 * Monte-Carlo Tree Search
 * Proof-Number Search
 * UCT

=See also=
 * Depth-First
 * MTD(f)
 * NegaC*
 * Perft(15)
 * Priority Queue
 * Queue
 * SSS* and Dual* as MT

=Publications=

1980 ...

 * Judea Pearl (1984). Heuristics: Intelligent Search Strategies for Computer Problem Solving. Addison-Wesley
 * Alexander Reinefeld, Tony Marsland, Jonathan Schaeffer (1985). Is Best First Search Really Best? Technical Report TR 85-16, Department of Computer Science, University of Alberta.
 * Hermann Kaindl, Helmut Horacek, Marcus Wagner (1986). Selective Search versus Brute Force. ICCA Journal, Vol. 9, No. 3
 * Anup K. Sen, Amitava Bagchi (1989). Fast Recursive Formulations for Best-First Search that allow Controlled use of Memory. IJCAI 1989, pdf

1990 ...

 * Steven Skiena (1990). Breadth-First and Depth-First Search. §3.2.5 in Implementing Discrete Mathematics: Combinatorics and Graph Theory with Mathematica, Addison-Wesley
 * Richard Korf (1993). Linear-Space Best-First Search. Artificial Intelligence, Vol. 62, No. 1, pdf
 * Richard Korf, Max Chickering (1993). Best-first Minimax Search: First Results. AAAI'93
 * Weixiong Zhang, Richard Korf (1993). Depth-first vs. best-first search: New results. AAAI'93
 * Deniz Yuret (1994). The Principle of Pressure in Chess. TAINN 1994
 * Aske Plaat, Jonathan Schaeffer, Wim Pijls, Arie de Bruin (1995). Best-First Fixed Depth Game Tree Search in Practice. IJCAI-95, Vol. 1, pdf
 * Richard Korf, Max Chickering (1996). Best-first minimax search. Artificial Intelligence, Vol. 84, Nos 1-2
 * Aske Plaat, Jonathan Schaeffer, Wim Pijls, Arie de Bruin (1996). Best-First Fixed-Depth Minimax Algorithms. Artificial Intelligence, Vol. 87, Nos. 1-2, pdf
 * Ayumu Nagai, Hiroshi Imai (1999). Proof for the Equivalence Between Some Best-First Algorithms and Depth-First Algorithms for AND/OR Trees. Proceedings of the Korea-Japan Joint Workshop on Algorithms and Computation

2000 ...

 * Paul E. Utgoff, Richard P. Cochran (2000). A Least-Certainty Heuristic for Selective Search. CG 2000, pdf » LCF
 * Ayumu Nagai, Hiroshi Imai (2002). Proof for the Equivalence Between Some Best-First Algorithms and Depth-First Algorithms for AND/OR Trees. IEICE transactions on information and systems

2010 ...

 * Jr-Chang Chen, I-Chen Wu, Wen-Jie Tseng, Bo-Han Lin, Chia-Hui Chang (2015). Job-Level Alpha-Beta Search. IEEE Transactions on Computational Intelligence and AI in Games, Vol. 7, No. 1

=Forum Posts=
 * Breadth-first search: revisiting by Sergei S. Markoff, CCC, September 13, 2011
 * Help with Best-First Select-Formula by Srdja Matovic, CCC, June 23, 2012
 * Re: Perft(15): comparison of estimates with Ankan's result by Ankan Banerjee, CCC, August 26, 2017 » Perft(15)

=External Links=
 * Best-first search from Wikipedia
 * Gunter Hampel Group + Jeanne Lee - The Capacity of this Room (1969), YouTube Video
 * Arjen Gorter, Willem Breuker, Pierre Courbois, Gunter Hampel, Jeanne Lee

=References=

Up one Level