This also means that the value of a position depends on which side has the
David Fotland fot...@cup.hp.com
Most let the search rip the queen, if it can be ripped. Otherwise, the
static evaluator looks at the location of the queen and decides how good
or bad it is standing there, but usually doesn't try to figure out whether
it is hanging or not, because that's difficult to do with an evaluator,
but easy to do with a tree search...
> The evaluation function is supposed to give a value that indicates who is
> ahead and by how much. Just considering material (to keep the question
> simple), do all programs just add up material, or do they try to predict
> the future material balance? For example, if your queen can be captured,
> and it is your opponent's turn to move, do you could full value for the
> queen, zero for the queen, or something in between? It seems that if you
> reduce the value of the queen, you more accurately predict the evaluation
> of the next ply.
CSTal tries to assess the winning/losing of material and adjusts the score
accordingly. I suspect I take this further than anybody else :) For
example, if I leave two pieces, same rank, 1 file apart (say d4,f4) and an
enemy pawn can get to e5 and fork the, then I adjust the score by (smallest
piece - pawn). This is a material look-ahead within the eval function of 4
ply. most people would call this madness :)
Of course I also test for checks and stuff that could cause one of the
pieces to get out of the way with tempo and so on.
My guess is that some programs use the 'exchange evaluator' process you
describe, while others just leave it to the capture extensions to run out
and then add up the material.
> This also means that the value of a position depends on which side has
Any use of exchange eval or whatever will cause the position value to be
dependant on side to move. but then this is true if its mate next move
also, its only mate next move if you're on the move. or promo a pawn or,
> David Fotland fot...@cup.hp.com
The model used for many years by many programs has been to evaluate "quiescent"
positions. These are positions were all of the immediate tactics have been played
If your queen is really hanging the opponent does get an opportunity to snap it
Programs do attempt to evaluate future material balance, or I should say, the far
future at which point someone is mated or the game is a draw. Every positional
term is an attempt to do this.
Just as an aside to what Bruce and Hyatt posted, I think early versions of
Sargon might have run a Static Exchange Evaluator on pieces in the
evaluation function. I remember reading an article on Sargon's SEE
published in some ancient magazine, and I don't think they were using it
for search related things.
Actually, many early programs used a SEE procedure *instead* of a quiescence
search. The last move made would be evaluated with a SEE procedure to see if
it was a safe move. This eliminated a few horizon effects, since often the
last move would be a capture, since there were no moves made *after* that
move. A very early version of Blitz (1972-ish) used this trick...
>Just as an aside to what Bruce and Hyatt posted, I think early versions
>Sargon might have run a Static Exchange Evaluator on pieces in the
>evaluation function. I remember reading an article on Sargon's SEE
>published in some ancient magazine, and I don't think they were using it
>for search related things.
Correct. Sargon used the SEE instead of a quiescense routine, simply
because of the amount of time a quiescence search would have taken on the
processor they were using (a 2MHz Z80). It is far from perfect, but it
still made Sargon a fair chess opponent for the average club player.