Parallel Search of Strongly Ordered Game Trees Contents Introduction 1. Sequential Search Algorithms 2. Enhancements to Alpha-beta Searching 2.1 Aspiration Search 2.2 Transposition Table 2.3 Killer Heuristic 2.4 Iterative Deepening 2.5 Other Searching Techniques 3. Approaches to Parallel Tree Search

The \alpha-beta" algorithm forms the basis of many programs that search game trees. A number of methods have been designed to improve the utility of the sequential version of this algorithm, especially for use in game-playing programs. These enhancements are based on the observation that alpha-beta is most eeective when the best move in each position is considered early in the search. Trees that have this so-called \strong ordering" property are not only of practical importance but possess characteristics that can be exploited in both sequential and parallel environments. This paper draws upon experiences gained during the development of programs which search chess game trees. Over the past decade major enhancements to the alpha-beta algorithm have been developed by people building game-playing programs, and many of these methods will be surveyed and compared here. The balance of the paper contains a study of contemporary methods for searching chess game trees in parallel, using an arbitrary number of independent processors. To make eecient use of these processors, one must have a clear understanding of the basic properties of the trees actually traversed when alpha-beta cutoos occur. This paper provides such insights and concludes with a brief description of our own reenement to a standard parallel search algorithm for this problem. INTRODUCTION Chess, checkers, kalah, and go are popular examples of two-person \zero-sum" games|that is, games in which one player's losses are the opponent's gains. There are a number of methods for programming a computer to play such games. The simplest (and most successful) programs have as their basis \brute-force" search, in which an exhaustive examination of all possible sequences of moves is carried out until terminal 1

[1]  A. Degroot,et al.  Thought and choice in chess , 1965 .

[2]  Donald E. Eastlake,et al.  The Greenblatt chess program , 1967, AFIPS '67 (Fall).

[3]  James R. Slagle,et al.  Experiments With Some Programs That Search Game Trees , 1969, JACM.

[4]  James J. Gillogly,et al.  The Technology Chess Program , 1972, Artif. Intell..

[5]  S. Fuller,et al.  Analysis of the alpha-beta pruning algorithm , 1973 .

[6]  Philip H. Enslow,et al.  Multiprocessors and parallel processing , 1974 .

[7]  Donald E. Knuth,et al.  The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm , 1981, ICALP.

[8]  Arnold K. Griffith Empirical Exploration of the Performance of the Alpha Beta Tree-Searching Heuristic , 1976, IEEE Transactions on Computers.

[9]  Gerard Maurice Baudet,et al.  The design and analysis of algorithms for asynchronous multiprocessors. , 1978 .

[10]  James John Gillogly,et al.  Performance analysis of the technology chess program. , 1978 .

[11]  George C. Stockman,et al.  A Minimax Algorithm Better than Alpha-Beta? , 1979, Artif. Intell..

[12]  Monty Newborn,et al.  Recent Progress in Computer Chess , 1979, Adv. Comput..

[13]  Judea Pearl,et al.  Asymptotic Properties of Minimax Trees and Game-Searching Procedures , 1980, Artif. Intell..

[14]  Cay Weitzman,et al.  Distributed micro/minicomputer systems , 1980 .

[15]  Richard S. Bird,et al.  Tabulation Techniques for Recursive Programs , 1980, CSUR.

[16]  T. A. Marsland,et al.  A survey of enhancements to the alpha-beta algorithm , 1981, ACM '81.

[17]  Nils J. Nilsson,et al.  Principles of Artificial Intelligence , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[18]  Selim G. Akl,et al.  Design, Analysis, and Implementation of a Parallel Tree Search Algorithm , 1982, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[19]  K. Thompson,et al.  COMPUTER CHESS STRENGTH , 1982 .

[20]  T. Anthony Marsland,et al.  A Comparison of Minimax Tree Search Algorithms , 1983, Artif. Intell..

[21]  John Philip Fishburn Analysis of speedup in distributed algorithms , 1984 .