Evaluation tapering methods

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
MartinBryant
Posts: 69
Joined: Thu Nov 21, 2013 12:37 am
Location: Manchester, UK
Full name: Martin Bryant

Evaluation tapering methods

Post by MartinBryant »

There seem to be a number of ways to taper the final evaluation between the opening and endgame scores and was wondering if there is any benefit to one 'phase' calculation over another?

e.g.

You might just count the pieces (initially 14) and if you like powers of 2 you might add in an extra one for each side if they have more than four pawns to make a maximum of 16.

Or you might try to weight the pieces...

Using the traditional 3,3,5,9 values you'd get an initial value of 62 which again you might use the pawns to make it up to 64.
Or a commonly seen weighting is 1,1,2,4 giving you a maximum of 24 (ignoring pawns).

(And I'm sure there are other possibilities!)

Also the tapering you see in open source engines generally seems to be linear but we could easily use a sigmoid table to change its shape.


I suspect I'm worrying about nothing and it'll just be down to personal preference but I just wondered if there were any theoretical benefits to any particular method?
Edsel Apostol
Posts: 803
Joined: Mon Jul 17, 2006 5:53 am
Full name: Edsel Apostol

Re: Evaluation tapering methods

Post by Edsel Apostol »

MartinBryant wrote: Sat Jun 12, 2021 11:32 am There seem to be a number of ways to taper the final evaluation between the opening and endgame scores and was wondering if there is any benefit to one 'phase' calculation over another?

e.g.

You might just count the pieces (initially 14) and if you like powers of 2 you might add in an extra one for each side if they have more than four pawns to make a maximum of 16.

Or you might try to weight the pieces...

Using the traditional 3,3,5,9 values you'd get an initial value of 62 which again you might use the pawns to make it up to 64.
Or a commonly seen weighting is 1,1,2,4 giving you a maximum of 24 (ignoring pawns).

(And I'm sure there are other possibilities!)

Also the tapering you see in open source engines generally seems to be linear but we could easily use a sigmoid table to change its shape.


I suspect I'm worrying about nothing and it'll just be down to personal preference but I just wondered if there were any theoretical benefits to any particular method?
I tune those values in my engine.