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. || toc =History= Though Tapered Eval has been used for many years (for example The King, as described in 1991 and Phalanx), and was already mentioned by Hans Berliner in 1979, 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. . 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.
 * Home * Evaluation * Tapered Eval**
 * [[image:Polyphony2.JPG link="https://en.wikipedia.org/wiki/File:Polyphony2.JPG"]] ||~  || **Tapered Eval**,
 * Paul Klee, Ad Parnassum, 1932 ||~   ||^   ||

=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: code format="cpp" eval = ((opening * (256 - phase)) + (endgame * phase)) / 256 code 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): code format="cpp" 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

code White and black each has NNBR and the evaluation for opening is +100 and endgame is +300
 * Example**

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=
 * Evaluation Discontinuity
 * Evaluation Philosophy
 * Game Phases
 * Neural Networks
 * Stockfish Evaluation Guide

=Selected Publications=
 * Hans Berliner (**1979**). //[|On the Construction of Evaluation Functions for Large Domains]//. [|III. Smoothness], IJCAI 1979, Tokyo, Vol. 1

=Forum Posts=

2005 ...

 * [|designing neural networks] by Gerd Isenberg, CCC, August 31, 2007
 * [|Re: Lemming Poll] by Robert Hyatt, CCC, September 22, 2008 » Crafty, LearningLemming
 * [|Superlinear interpolator: a nice novelity ?] by Marco Costalba, CCC, September 20, 2008 » SIMD and SWAR Techniques
 * [|Re: talk about IPP's evaluation] by Richard Vida, CCC, November 07, 2009 » Ippolit, SIMD and SWAR Techniques

2010 ...

 * [|My experience with Linux/GCC] by Richard Vida, CCC, March 23, 2011 » C, Linux, SIMD and SWAR Techniques
 * [|two values in one integer] by Pierre Bokma, CCC, January 18, 2012
 * [|Tapered evaluation] by Marco Pampaloni, CCC, March 18, 2014
 * [|advanced tapered evalutation] by Marco Belli, CCC, August 08, 2014 » SSE

2015 ...
> [|Re: Tapered Eval between 4 phases] by Jonathan Rosenthal, CCC, October 16, 2017 » Winter
 * [|Why do some programs evaluate MidGame and EndGame together?] by Syed Fahad, CCC, March 01, 2015
 * [|Tapered Eval] by Robert Pope, CCC, August 05, 2015
 * [|is phase a good indicator of game progress?] by Alexandru Mosoi, June 23, 2016 » Game Phases
 * [|Re: Deep Learning Chess Engine ?] by Alexandru Mosoi, CCC, July 21, 2016 » Deep Learning, Zurichess
 * [|Tapered Evaluation Questions] by Jayakiran Akurathi, CCC, October 01, 2016
 * [|couple of questions about stockfish code ?] by Mahmoud Uthman, CCC, October 26, 2016 » SIMD and SWAR Techniques, Stockfish
 * [|Define end game] by Laurie Tunnicliffe, CCC, November 16, 2016 » Endgame
 * [|Early / middle / end game transitions?] by notachessplayer, OpenChess Forum, February 19, 2017
 * [|Tapered Eval between 4 phases] by Andrew Grant, CCC, October 16, 2017

=External Links= > Pierre Courbois, Jasper van 't Hof, Toto Blanke, [|Sigi Busch], and [|Heiner Wiberny] > media type="youtube" key="YPFEcXTxcMA"
 * [|Stockfish Evaluation Guide] » Stockfish Evaluation Guide
 * [|Tapered Eval] from [|Mediocre Chess] by Jonatan Pettersson
 * [|Taper from Wikipedia]
 * [|Cone (geometry) from Wikipedia]
 * [|Interpolation from Wikipedia]
 * [|Fuzzy logic from Wikipedia]
 * [|T-norm fuzzy logics from Wikipedia]
 * [|Linear taper potentiometer from Wikipedia]
 * [|Sigmoid function from Wikipedia]
 * Association P.C. - Frau Theunissen´s Kegel, [|Erna Morena] (1973), [|YouTube] Video

=References= =What links here?= include page="Tapered Eval" component="backlinks" limit="120"
 * Up one level**