Author: Robert Hyatt
Date: 19:53:20 07/19/00
Go up one level in this thread
On July 19, 2000 at 20:37:45, Hugh Cumper wrote: >The chess programs I have seen evaluate every position as if the pieces had just >been set up that way. Humans do not work like that nad I see no reason why >programs should. Most of the work in an evaluation function relates to >individual pieces - its value, whether the square it is on is in general a good >one for that rype of piece; or a small cluster of pieces - whether a pawn is >isolated, doubled etc. Most moves do not change these things for an arbitrarily >chosen piece so why work it all out again each time? The evaluation functions >could be distributed around the move generation and search code which would >maintain running totals. This would require a form of evaluation to be performed >at all nodes not just terminal ones but overall it would be more efficient. Has >anyone done this, or can someone explain why? This is called incremental evaluation, and it works until you get into what I would term second-order evaluations. I call first-order evaluation those terms that are piece specific. IE a knight on a given square with no regard to other pieces. I don't think most strong programs evaluate like this, for obvious reasons. A knight's value on a particular square depends on other pieces. If you try to incrementally update that, it gets very complex and slow, because every piece movement affects the scores for _all_ the other pieces and pawns. And then it becomes cheaper to do it once at each endpoint, rather than 15 times moving down the 15 ply set of moves leading to that endpoint...
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.