Author: Robert Hyatt
Date: 18:05:18 03/07/99
Go up one level in this thread
On March 07, 1999 at 17:29:38, Peter McKenzie wrote: >On March 07, 1999 at 16:34:47, Robert Hyatt wrote: ><snip> >>I have done this two ways: >> >>(1) first root move fails low, continue searching, hoping that another move >>will not fail low and you get something useful. If you search all moves and >>the score == alpha, you have to relax alpha and search again. >> >>(2) first root move fails low, relax alpha immediately and search it again to >>get the true score for the first move. >> >>I do (2) at present, for a couple of reasons: (a) I want to know how far the >>score dropped so I have some idea of how much trouble I am in and how much extra >>time I might want to allocate; (b) It is not uncommon to 'win' a pawn in early >>iterations only to see later that you can't hold on to it. So the old best >>move is still best, but with a much lower score. It is more efficient to re- >>search it immediately than to try all the other moves (which will also fail >>low) and then try again. >> >>Which is better is a good question. I have seen cases where I wished I would >>just continue searching, and others where I am glad I re-search after the first >>move fails low. > >I do (1) in my program, I was thinking about this the other day and don't know >which is best. Method (1) bets that if the first move fails low, there will >usually be another move that doesn't fail low. Perhaps I'll add some stats to >see if this is true or not. > >Perhaps an in between method is worthwhile: if the first move fails low, try >another couple of moves with the existing alpha beta bounds. If they fail low, >restart the search with the new apha beta bounds. > >cheers, >Peter This was one of the complex things we did in Cray Blitz, that was probably good, but also a lot of trouble. We noted a sudden 'eval jump' and a fail low was instantly researched (first move) when this happened. IE last move the score was +.125, after the opponent moves, the score jumps to +1.300 for several iterations, but near the end it fails low. In this case, when the first move fails low, we re-started the search on that move with a less optimistic alpha value. In more 'normal' cases (ie last search was +.125, after opponent moves the score is +.2, then if we failed low we searched _all_ moves before lowering alpha. That worked and pretty well caught most of the cases that were 'catchable'... But I didn't do this in crafty, simply to keep things easy to understand. I may do this again at some point in time..
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.