Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How do program find if a position is in book?

Author: Uri Blass

Date: 12:25:23 05/16/04

Go up one level in this thread


On May 16, 2004 at 12:39:48, Will Singleton wrote:

>On May 16, 2004 at 08:30:48, Uri Blass wrote:
>
>>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).
>
>That's what I do.  Easy and quick.

I do not find it as easy.
The problem is that I do not know a special function to do a binary search in a
file and I do not like to try to write a special function for that purpose.

There is bsearch that performs a binary search of a sorted array but I need to
perform a binary search of a sorted file because I do not like to remember all
the book in RAM.

I start generating the book by doing qsort that performs a quick sort of an
array.

Now I need to copy the array to a file and I think that Crafty's solution is
both faster and simpler than writing a special function to perform a binary
search on a file even in case that the book is book of positions and moves and
not book of positions like Crafty's book so alternatives 2 and 3 seems better
for me and I think that 3 is the best alternative but before I try it I prefer
to read what other people do.

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.