Author: Robert Hyatt
Date: 19:03:20 07/26/01
Go up one level in this thread
On July 26, 2001 at 17:51:01, Artem Pyatakov wrote: >I was looking at the source codes of Gerbil and Crafty and noticed that they >handle the following problem differently: as part of the iterate/think loops >both programs try to force their program to search the PV nodes from the >previous iteration first, which makes sense, but the implementation of this is >very different. > >Gerbil just saves the PV into a separate array, while Crafty saves the PV into >the hash table. > >Now for my questions: > >1) What are the advantages/disadvantages of each of these implementations? 1. The plus for the crafty approach is that you _already_ have a hash move move ordering in your search. This means it is 100% free with no extra code needed in the move ordering procedure at all. All you need is some code to make sure thaat the PV moves are stuffed into the hash table after you complete an iteration. 2. I didn't do it this way in Cray Blitz, I did it like Bruce does I think. That is, I had a special bit of "PV moves go first" ordering in the code that generated and then sorted the moves. The drawback is that this code is in the ordering procedure and has to be skipped every time, which costs a tiny bit of speed... > >2) I don't understand how Gerbil solves the following problem, because from what >I see it only checks if the current move is equal to the PV move: what if the >current move matches the PV move AT THIS PLY, but what if the moves in the PLIES >BEFORE are different? the PV move is really probably a good move all the time. But you are right, if it does that, it might be suspect as the hash move stored might be better. If there isn't one, a PV move is not a bad choice. > >3) I don't understand how HashStorePV works - the code is kind of confusing for >a bitboards neophite like myself. In particular: what depth is it inserting the >moves as? With what score? It is complicated. Here is what I do: 1. If there is a hash entry already, I stick the hash move in it. It probably has the hash move, but I make sure it does. 2. If there is no hash entry, I stuff a "dummy" entry in the table with a depth of zero, a "worthless" flag (rather than exact, lower or upper) and the PV move. > >Thank you in advance for answering/clarifying these. > >Artem Pyatakov
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.