Author: Larry Coon
Date: 17:12:05 10/22/98
Go up one level in this thread
On October 22, 1998 at 18:50:37, Robert Hyatt wrote: >your only mistake is "no safety outlet". IE if you only generate >"interesting moves", then you need a safety valve for when those >"interesting mvoes" are no good. The best way is what we all do in >the quiescence search, namely to first call evaluate(), so that you have >a choice of either "standing pat" and accepting the current score, or else >trying and accepting the score from one of the interesting moves, if the >scores are better than the score you get by "doing nothing"... I ended up trying something like that after I posted my question. My move generator now returns a flag that's true if there are addditional moves that weren't returned. At the end of the search routine, before returning alpha, I now check the flag. If it's true and the static eval for the current position > alpha, then I set alpha to the static eval for the current position. (I was already calling evaluate at the start of the routine to detect terminal positions and for a basis for finding killer moves.) This seems to provide a "safety outlet," as you said, but I'm uncomfortable with how safe the safety outlet is. If all the non-interesting moves I didn't evaluate also lead to worse positions, then returning the static eval for the current position will return a misleading value. On the other hand, I guess it's no less reliable than any other static evaluation on a non-terminal position.... Was the way I did it the right way? Larry Coon
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.