Author: Tijs van Dam
Date: 02:24:39 02/02/00
Go up one level in this thread
On February 02, 2000 at 00:01:04, Robert Hyatt wrote: >On February 01, 2000 at 11:38:48, Tijs van Dam wrote: > >>On February 01, 2000 at 09:30:05, Robert Hyatt wrote: >> >>>> >>>>I use hash at root for my program GKJunior. But I won't let the root search >>>>fail high or low on the hash, just use an exact value with its "best move" or >>>>use a move with not enough draft to search first. This way, a best move will >>>>always be found at ply=1. I have no problems and the code is not messy. >>> >>>you just mentioned one messy detail. "no fail high or low". This means that >>>for _every_ hash probe, you must be checking to see if you are at ply=1 before >>>you do the fail high or fail low? All for no benefit at all. >>> >> >>No, like Crafty I use a different funtion for the root search. >> >>> >>> >>>> >>>>An advantage is that the search will continue very fast when the opponent makes >>>>the same move as i was pondering, or to start pondering after making a move. >>>>There is almost no delay, while crafty seems to take a few seconds to get to the >>>>same PV as it had before the move was made. >>>> >>> >>> >>>I do this differently. If I complete a 12 ply search, and start to ponder, >>>I ponder the 2nd move in the PV, I shift the PV two moves left to get rid of >>>the move I made and the move i am pondering. I then start the search at old >>>depth-1 since I already have the PV from old depth-2 done... >>> >>I see, I hadn't thought of that. But then this has the same result as storing >>and probing at root, because depth 1...depth-2 are found immediately. This makes >>it easier to implement pondering / using the ponder result, because every search >>can start at depth 1 without cost. > > >Suppose you search very deeply, so that at the end of the search you store the >best move. You search (say) for 30 minutes waiting on your opponent, so you get >_way_ deep. He plays the right move (you are expecting it) so you dump your >best move and PV. And then start searching (pondering). You get nothing >but hash hits at the root. Until you finally overrun the needed depth and >the hash entries are no good. What PV do you search from iteration N-1, since >you don't have one? > >Internal Iterative Deepening will help, but it isn't optimal... When I get a hash entry that has not enough depth, but the hashtable indicates that it is an exact value, a best move comes with it and I search this one first, as it was best at a lower depth. Is that a smart thing to do? My branch factor is still too big... So when I get to the depth where the hash is no good, I still use it and search the same PV first. Of course, a problem may arise when, using a small hashtable, the PV has been found a while ago. A lot of the hash entries may be overwritten. A solution is to re-store the PV positions at the end of the search. Grts, Tijs
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.