Author: Robert Hyatt
Date: 07:13:12 01/20/99
Go up one level in this thread
On January 19, 1999 at 21:57:11, William Bryant wrote: >On January 19, 1999 at 08:08:13, Robert Hyatt wrote: > >>On January 18, 1999 at 20:00:39, William Bryant wrote: >> >>>When a position is evaluated with a score that is > than alpha, that position >>>then replaces alpha, and gets stored in the hash table as an EXACT score. >>>If this move is the move backed up to PV[ply][ply], is the 'Best Move' that is >>>stored in the hash record the move at PV[ply][ply + 1]; ie the next move to >>>take from this position? >> >>easy answer. if search_value == beta, then the move to store is the current >>move you just searched (in my case, current_move[ply]). If search_value is >>> alpha and < beta, then you store the move in the pv[ply] array. If the >>search_value is <= alpha, you have no best move to store. >> >> >>> >>>If it is, then when getting a hash table hit, with an appropriate draft, is the >>>best move then used as the move to search next by returning it to the pv >>>at the position PV[ply][ply + 1]? >> >> >>when you do a hash probe and 'hit' you try the hash move first no matter what >>is going on... >> > >Thank you, but I'm still unclear on using the best move. > >You arrive at a new position, its hash signature matches an entry in the >hash table whose draft is sufficient to make the score useful. You return >this score rather than search this position further. BestMove is the next move >to make from this position, but at present your are through searching this >position as you already have a score which you may or may not use depending >on the rest of the search. > >I suspect, the value of the best move is to guide the search when you are >searching to a greater depth (the next iteration or so). >The the best move is the move to search first from this position when >searching to a greater depth (when the draft is insufficient) ie, when you >go deeper, start with this move to try and produce early cutoff's. > >Am I close? > >Thanks. > >William >wbryant@ix.netcom.com Yes. If you can avoid searching, do so. But if the 'draft' of the table entry isn't large enough, you can't use the scores/bounds at all. But you _can_ use the suggested best move... IE I have a variable (array) hash_move[ply]. When I call HashProbe() if it gets a signature match it copies the best move to hash_move[ply] while it is checking the draft and so forth. If the lookup is useless, search calls NextMove() to choose the first move, and the one I try is hash_move[ply] (making sure it is still a valid move here). And I get to do this _before_ I generate any moves at all...
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.