Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Distributed Evaluation Functions

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.