Home * Evaluation * Tapered Eval
Polyphony2.JPG

Tapered Eval,
a technique used in evaluation to make a smooth transition between the phases of the game using a fine grained numerical game phase value considering type of captured pieces so far. The technique requires aggregating two distinct scores for the position, with weights corresponding to the opening and endgame. The current game phase is then used to interpolate between these values. The idea behind Tapered Eval is to remove evaluation discontinuity.
Paul Klee, Ad Parnassum, 1932 [1] [2]

History

Though Tapered Eval has been used for many years (for example The King, as described in 1991 [3] and Phalanx), the technique gained massive popularity only during the past few years, with the release of Fruit and the growing awareness among programmers of the sensitivity of the evaluation function to discontinuity. [4]. Zurichess by Alexandru Moșoi uses the TensorFlow library for automated tuning - in a two layers neural network, the second layer is for phasing endgame and middlegame scores [5].

Implementation example

Tapered Eval is done as follows in Fruit. (similar implementations can be found in engines like Crafty and Stockfish etc.)

The scaling looks like this:
eval = ((opening * (256 - phase)) + (endgame * phase)) / 256
Where opening is the evaluation of the position with middle game in mind (e.g. keep kings protected behind their pawn covers) and endgame is the evaluation with endgame in mind (e.g. activate the kings). Both these evaluations are done in parallel when evaluating a position.

The phase is evaluated like this (code specifics left out):
PawnPhase = 0
KnightPhase = 1
BishopPhase = 1
RookPhase = 2
QueenPhase = 4
TotalPhase = PawnPhase*16 + KnightPhase*4 + BishopPhase*4 + RookPhase*4 + QueenPhase*2
 
phase = TotalPhase
 
phase -= wp * PawnPhase // Where wp is the number of white pawns currently on the board
phase -= wn * Knight    // White knights
...
phase -= br * RookPhase
phase -= bq * QueenPhase
 
phase = (phase * 256 + (TotalPhase / 2)) / TotalPhase
 
 
Example
White and black each has NNBR and the evaluation for opening is +100 and endgame is +300

According to the above numbers we then get:

phase = (14 * 256 + (24 / 2)) / 24 = 149 ## Where 14 is 24 - 1 - 1 - 1 - 2 - 1 - 1 - 1 - 2 (TotalPhase - phases of all pieces)

eval = ((100 * (256 - 149)) + (300 * 149)) / 256 = 216 tapered eval

See also


Forum Posts

2005 ...

2010 ...

2015 ...


External Links


References

  1. ^ Paul Klee - Ad Parnassum, 1932, oil colors, stamped lines, dots stamped in white color and later repainted, on casein paint on canvas on stretcher frame, Museum of Fine Arts Berne, Paul Klee from Wikipedia
  2. ^ Gradus ad Parnassum - Wikipedia
  3. ^ Don Beal (1991). Report on the 11th World Microcomputer Chess Championship. ICCA Journal, Vol. 14, No. 2
  4. ^ Re: Secrets of Rybka and Fruit from my point of view by Stuart Cracraft, CCC, December 15, 2005
  5. ^ Re: Deep Learning Chess Engine ? by Alexandru Mosoi, CCC, July 21, 2016

What links here?


Up one level