Introduction

Until the advent of TECH [76] and CHESS 4.X [191] in 1972-1973 most chess programs were highly selective alpha-beta searchers. They mainly relied on knowledge-intensive plausible move generators that cut off statically ``implausible'' moves at nodes of all levels and thus pruned large parts of the search tree. But as soon as brute-force searchers like CHESS 4.X reached depths  >= 5 plies in the middle game, they routinely punished the tactical shortcomings of plausible move generation and started their own reign. Except for the triggering of variable-depth search extensions, typical brute-force chess programs of this era featured no selectivity at all in the full-width parts of their searches. Avid proponents of the brute-force search paradigm deem any kind of forward cutting too suspicious and unsafe as to employ it in their alpha-beta searchers. These true brute-forcers do not even trust normal futility pruning at frontier nodes (see Section 1.3.4).

In 1989-1990 Beal [20] and Goetsch & Campbell [77] reported about their experiments with the null move which initiated a renaissance of selective searching in computer chess. Null-move pruning exhibits only minor tactical weaknesses and scales very well with search depth. The spectacular success of null-move pruning in microcomputer chess made it one of the most popular alpha-beta enhancements today. State-of-the-art chess programs using null-move pruning easily reach search depths of 10-12 plies in the middle game on fast microcomputers. Thence, the field of computer chess now needs new techniques that make alpha-beta searching more scalable at high search depths > 10 plies. The prospect of ever more powerful computers further adds to this need.

We believe that selective forward-pruning schemes promise good chances for improvement in this area. A prerequisite for the practical success of any such scheme will be to preserve the tactical strength of the search. Our new pruning techniques extended futility pruning (see Section 1.3.5) and limited razoring (see Section 1.3.6) fulfill this requirement and scale nicely.




Created by Ernst A. Heinz, Thu Dec 16 23:28:11 EST 1999