Artificial Intelligence 134 (2002) 57-83



Yüklə 259,28 Kb.
Pdf görüntüsü
səhifə8/10
tarix16.11.2017
ölçüsü259,28 Kb.
#10667
1   2   3   4   5   6   7   8   9   10

M. Campbell et al. / Artificial Intelligence 134 (2002) 57–83

73

7. Evaluation function



7.1. Overview

The Deep Blue evaluation function is essentially a sum of feature values. The chess chip

recognizes roughly 8000 different “patterns”, and each is assigned a value. Features range

from very simple, such as a particular piece on a particular square, to very complex, as will

be described below in Section 7.2. A feature value can be either static or dynamic. Static

values are set once at the beginning of a search. Dynamic values are also initialized at the

beginning of a search, but during the search they are scaled, via table lookup, based on the

value and type of pieces on the board at evaluation time. For example, king safety, passed

pawns, and pawn structure defects are sensitive to the amount of material on the board.

The initialization of the feature values is done by the “evaluation function generator”, a

sub-program which was run on the master node of SP system. The Deep Blue evaluation

function generator is run only at the root of the search tree. It would likely be of great

benefit to run it at other nodes near the root of the tree after a large positional change

has occurred, such as trading queens. Although the dynamic evaluation terms can handle

this type of transition, some static feature values may be left with less than ideal values.

Unfortunately the full evaluation function generator takes measurable wall clock time to

run and download, and partial downloading was considered too complex to implement.

The evaluation function generator has a second role beyond simply adjusting feature

values based on the context of the root position. The large number of distinct feature values

dictate that some sort of abstraction be imposed on the values in order to keep the task

manageable. The evaluation generator makes these abstractions, dictating relationships

between groups of related feature values rather than setting them independently.

There are 54 registers (see Table 4) and 8096 table entries (see Table 5) for a total of 8150

parameters that can be set in the Deep Blue evaluation function.

18

Some of the parameters



correspond to chess situations that are not physically realizable (e.g., pawns on the first

rank), and others are used for control purposes rather than corresponding to a particular

combination of chess features. There are about 8000 actual features that can be detected in

the chess hardware.

It is impossible in a paper like this to describe all the details of the evaluation function.

We will present a detailed example of one table that gives a feel for the nature of

the evaluation function. A brief description of all the registers and tables is given in

Appendix A.



7.2. Extended example: Rooks on files

We now describe in detail the “Rooks on files” table. We will begin by describing the

features that are detected, then discuss the values assigned to each combination of features,

and show how the values are incorporated into the overall position evaluation.

18

In actual fact, the number is even higher than this. Many of the registers and table entries have two, three, or



even four separate values. The extended example in Section 7.2 illustrates one method of using multiple values.


74

M. Campbell et al. / Artificial Intelligence 134 (2002) 57–83

Table 4


Deep Blue evaluation registers

Function


Number of registers

Data bits

Rooks on seventh rank

12

8



Bias

1

8



Opposing rook behind passed

1

9



Mpin and hung

1

7



Pinned and simple hung

1

8



Hung

4

7



Xraying

2

6



Pinned and hung

1

7



Permanent pin and simple hung

1

8



Knight trap

6

8



Rook trap

8

8



Queen trap

2

8



Wasted pawns

2

6



Bishop pair

2

7



Separated passed

2

8



Missing wing

2

10



Bishops of opposite colors

2

6



Evaluation control

2

32



Side to move

2

4



The chessboard is scanned, one file at a time, and a pair of values is looked up, one from

the white rook table and one from the black rook table, for each file. The index bits for

these tables are as follows:

• “unopposed” is a 1-bit subindex, with 0 indicating an enemy pawn on the file, and 1

indicating no enemy pawn on the file.

• “blockage” is a 2-bit subindex with two interpretations, depending on whether or not

there is an enemy pawn on the file. If there are no enemy pawns, 0 indicates that my

rook could safely move to the 7th or 8th ranks, 1 indicates that there is a minor piece

guarded by a pawn that blocks the file, 2 indicates that enemy minor pieces guard the

7th and 8th ranks, and 3 indicates that the 7th and 8th are guarded by the enemy, but

not by minor pieces. If there is an enemy pawn on the file, 0 indicates that the pawn

is unprotected, 1 indicates that there is a minor piece guarded by a pawn that shields

the pawn, 2 indicates that the pawn is protected by a minor piece, and 3 indicates

“granite”, i.e., the pawn is protected by another pawn.

• “semi_open” is a 1-bit subindex, with 0 indicating the presence of a pawn of mine on

the file, and 1 indicating no pawns of mine on the file.




Yüklə 259,28 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə