Author: Robert Hyatt
Date: 22:21:30 08/17/01
Go up one level in this thread
On August 18, 2001 at 00:27:04, Bob Green wrote: >I'm confused. Should the sequence be: > > generate movelist > for each move in movelist > apply move > generate hash > checkHash > if [depth enough&cutoff] > break > evaluate > etc. > endfor > >or should the sequence be: > > generate hash > check hash > if [hashExists && depth enough && cutoff] > don't generate movelist > else > do movelist > for each move in movelist > evaluate > alphabeta , etc. > endfor > endif > >Or, most likely, I have it totally fubar'd and neither is right. > >Bob "neophyte" Green None of the above. :) first, check hash entry to see if you can avoid searching, by looking at the draft, the bount stored, etc. If you can stop searching, then you are done. If the draft is insufficient, or the bound is useless, then you look to see if a move (best move) was stored in the table. If so, make it and search, without doing a move generation. If that move causes a cutoff, then you just got a cutoff without using your move generator at all, which is a significant savings of computation operations. If you don't get a cutoff, then you generate captures and try the good ones, etc... The trick is all about avoiding the move generation...
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.