Author: Tord Romstad
Date: 08:10:55 01/26/04
Go up one level in this thread
On January 26, 2004 at 02:53:37, José Carlos wrote: >On January 24, 2004 at 17:12:45, Tord Romstad wrote: > >>On January 24, 2004 at 15:57:50, Mike Siler wrote: >> >>>In an average middlegame position, around 80-85% of the nodes my program >>>searches are quiesce nodes. I have a static exchange evaluator and I only search >>>captures with SEE value > 0. It seems like other engines are always under 25% >>>qnodes. What else should I be doing to reduce these numbers? >> >>Use the SEE more aggressively. When the static eval is below beta, but >>static_eval+(value of capturing biggest hanging enemy piece) > beta+margin, >>return beta. This is too risky unless your SEE is very sophisticated. > > This doesn't make sense unless you do a real qsearch in your SEE, which is >ridiculous of course. Yes. That is why I don't do this at all nodes, but only when the evaluation function reports that the current position is "sufficiently close to quiescent" that it is safe to rely on the relatively simple SEE. Consider the simplest possible example: Assume that the side to move has no hanging, pinned or overloaded pieces, and that the opponent has an undefended hanging piece. If the static eval plus the value of the hanging piece is considerably bigger than beta, it is reasonably safe to return beta. This works even with a very simple SEE. >Otherwise, you simply assume the opponent doesn't have a >capture anywhere else on the board that can bring his score above alpha >again. I do not understand why you assume that. You are right, the presence of hanging pieces for the side to move elsewhere on the board is one of the conditions you should look out for when deciding whether you should search the captures or just return the SEE value of the biggest capture. Tord
This page took 0.01 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.