Author: Scott Gasch
Date: 15:29:37 08/16/99
Hi there,
Recently I have been working on improving the speed of the qeval routine. I
implemented futility pruning after talking with Bob and others about the
subject. Another thing I did that bit me was this:
Qeval(pos, a, b)
{
(IS_WHITE(pos->to_move)) ?
iBase = pos->material[WHITE] - pos->material[BLACK] :
iBase = pos->material[BLACK] - pos->material[WHITE];
if (iBase >= b) return(b);
...
}
As I think about it this makes sense since my evaluation routine assesses
penalties for certain things (doubled pawns, for instance). This "improvement"
was causing strange play, however, and it took me a while to track down.
My question is this: would it be work re-working the eval routine to not assess
penalties but rather give bonuses for not having bad things. For instance, a
doubled pawn is not worth -8 pts but rather non-doubled pawns get bonuses...
This way the term of the eval routine based on material can act as a strict
lower bound for the eval return and an improvement like the one above could be
implemented.
Scott
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.