Evaluation-Function Factors

The heart of a chess program is its evaluation function, since it is this component which characterizes the style of play. A typical program evaluates a move by computing a weighted sum of the features that it considers. It is important to make the best selection of the relative weights of these features. They may be used not only to assess horizon nodes in the game tree, but also to order moves at the other nodes so that alpha-beta searching efficiency is improved. Standard optimization techniques can be used to find the weights, provided a suitable cost function can be found. This paper assesses the properties of several cost functions, and presents a method for finding optimum weightings for any set of features. Introduction Some modern chess programs combine knowledge in complex ways; others follow Shannon’s suggestion [5] and evaluate material and strategic factors by computing a weighted sum of the "values" of such features as are recognized. To do so one must first tabulate all the relevant features in chess. This is difficult enough in itself, but determining their relative importance is ev en harder. Often the resulting decision is arbitrary and subject to the programmer’s biases. In principle it is possible to determine those relative weightings mathematically. In practice this is not only computationally expensive, but also fraught with difficulty because what passes for chess expertise is sometimes inconsistent. We are all aware of arguments about the preferred placement of pieces (and yet have no difficulty finding exceptions) and of rules about the advantages of bishops over knights, on which there is little agreement. Similarly, while doubled pawns are usually weak, there are often compensating advantages such as a half open file or control of a key square. Most of these apparent contradictions occur because of interactions between knowledge. Thus not all features in a chess position are independent; some are important only if others are present. We must, therefore, seek relative weights for the features, but these can only be correct in the statistical sense (more often right than wrong).