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.
Though Tapered Eval has been used for many years (for example The King, as described in 1991 [3] and Phalanx), and was already mentioned by Hans Berliner in 1979 [4], 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. [5]. 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 [6].
Implementation example
Tapered Eval is done as follows in Fruit. (similar implementations can be found in engines like Crafty and Stockfish etc.)
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)
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.
Table of Contents
History
Though Tapered Eval has been used for many years (for example The King, as described in 1991 [3] and Phalanx), and was already mentioned by Hans Berliner in 1979 [4], 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. [5]. 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 [6].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:
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):
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
Selected Publications
Forum Posts
2005 ...
2010 ...
2015 ...
Re: Tapered Eval between 4 phases by Jonathan Rosenthal, CCC, October 16, 2017 » Winter
External Links
Pierre Courbois, Jasper van 't Hof, Toto Blanke, Sigi Busch, and Heiner Wiberny
References
What links here?
Up one level