Author: Uri Blass
Date: 05:30:48 05/16/04
Suppose that you have a book of 2^20 positions. Suppose that you need in average 16 bytes for every position(to store positions,moves and some more information like learning value for every move). I do not like the idea to store only positions in book and I think that the the job of making all moves in book positions to find more book moves can be done in the time of creating the book. I can think of 3 ways to find if a position is in book 1)To do a binary search in the file that has the positions(Disadvantage:you do more searches in the file relative to other ways and you basically need to probe the file 20 times only to find if a position is in book). 2)To have a special file that has the exact place that you need to search based on the last 20 bits of the hash key(disadvantage if you add a single position to your book you may need to change almost 2^20 numbers in this file because if the place of one position is changed the place of all positions after it is changed) 3)Not to have a special file of the exact places but to know the right place to search because you know that your book has 96 bytes for every 20 bits of the hash key when usually part of the bytes have meaningless 0's. Distadvantage:Your book is bigger than neccesary(96 Mbytes instead of 16 Mbytes) and there is a risk that it is not going to be enough to store all the positions and moves(the main problem is not having many positions with the same last 20 bits in the hash key but having many moves for the same position that can increase the bytes that you need for one position significantly if you need 4 bytes for every move). Uri
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.