Author: Bo Persson
Date: 04:26:18 08/18/01
Go up one level in this thread
On August 18, 2001 at 01:21:30, Robert Hyatt wrote: >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... And, also: While going thru the move list, you can look for and skip the hash move, as it has already been tried. >The trick is all about avoiding the move generation... Bo Persson bop2@telia.com
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.