Author: Ulrich Tuerke
Date: 04:36:45 10/28/98
Go up one level in this thread
On October 28, 1998 at 07:18:47, Pauli Misikangas wrote: >On October 27, 1998 at 15:54:25, Peter McKenzie wrote: > >>On October 27, 1998 at 09:16:59, Mike Stoker wrote: >> >>>Does anyone know if any of the current chess programs perform incremental >>>evaluations of positions. I.e. To evaluate a position after a move is played, >>>just consider the changed features of the position. I think a possible way to >> >>Most programs maintain at least part of their evaluation incrementally, for >>example material, and the piece square table based evaluation. For the pawn >>structure evaluation, using a separate hash table is even faster than >>maintaining the score incrementally. For some other things, incremenatal >>evaluation might get pretty complex. > >In my Shocky (which is mainly a shogi program, but can play also chess, although >quite poorly at the moment) I use fully incremental evaluation. During every >move, I update only those parts of the evaluation that have changed. So, when >the "evaluation function" is called I only sum all evaluation-values (material, >attack, ..., see the list below) together. Currently, the evaluation consists of >the following parts: > >- material >- attack >- defense >- board control >- piece position >- piece movement >- castling (not as in chess, pieces around the king) >- king safety >- hand pieces (in shogi you can drop captured piece back to the board) >- piece freedoms (number of safe squares to which pieces can move) >- blocked pieces (penalty for pieces that cannot move safely) >- plan success (for example, Shocky might have a plan to make a castle) > >I quess that many of those values would make my evaluation extremely slow if >they were calculated each time 'evaluate' is called. With incremental evaluation >they can be calculated at a very low cost. IMO, the drawback is that you have to calculate them always, even when you do not want to evaluate. E.g., you can't use an evaluation window technique to save the static evaluation when the material is out of balance. Or for non-leaf positions you usually do not have to evaluate. In my program for instance, I ususally evaluate far less than half of the nodes (depends on the type of position). Uli > >PS. I don't use bitboards. > >- Pauli Misikangas -
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.