Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What Happened To Crafty(C) Rating At ICC ?

Author: Uri Blass

Date: 16:40:28 03/18/04

Go up one level in this thread


On March 18, 2004 at 18:40:47, martin fierz wrote:

>On March 18, 2004 at 16:44:54, Uri Blass wrote:
>
>[snip]
>
>>I know the algorithm to implement book but the problem is to implement it.
>>I wonder how did you start to think about that problem.
>>Did you start to read source code of free programs.
>>
>>I tried to look at crafty's source code and gave up after an hour.
>>
>>I understood that it has book_file and I also found that it generates it in the
>>first time in the bookup function but I did not understand how it is generated.
>>For some reason only opening the correct book file seem to be a lot of code.
>>
>>I guess that I can understand it if I spend many hours on it but I do not like
>>to do it because it means that I do not make progress for a long time and
>>implementing hash correctly first is more important.
>>
>>Uri
>
>why would you want to understand crafty's book code? of course i've also looked
>at parts of crafty for inspiration, although my program is quite different. but
>i would never even have thought of looking at book code. all you have to do is
>get yourself a list of positions with evaluations, then you stuff them in a big
>hashtable and use that to search the successor positions of the current position
>- then simply choose the move which leads to the best score.

I understand that you do not need to do a binary search and can use a big array
and it does the task easier but I think about a book in a different way.

I think that the basis for the book should be not list of positions and
evaluations(in that case you need to calculate almost always because if your
book has not score for all positions one ply later you may have better move than
a move that leads to book position).

I think that a book should start from 2 files (one with lines for white and one
with lines for black when it is possible that the lines include evaluations and
nodes when the idea is that the program is not going to play the move out of
book if it expects to be able to search more nodes).


I need to have the following programs:

1)A program to translate the lines to epd file of position and move and possibly
more information about score and time.

2)A program to translate the epd file to some arrays of pointers when every
pointer is a pointer to a small set of positions(I think that it is best to give
the users to choose the number of pointers that should be a power of 2 based on
the machine memory and the size of the book).

3)Finding the book moves based on the relevant pointer

4)Choosing a move with the best evaluation or a random move from book when the
evaluation is not more than 0.1 pawns less than the best move(in order not to be
deterministic).

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.