Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Binary Book Creation

Author: Adrien Regimbald

Date: 12:48:57 06/20/00

Go up one level in this thread


Hello,


>Ignore this.  To parse a move, I do the following:
>
>generate all moves
>
>use the input text to eliminate moves from the list, one by one.  IE if the
>input move starts with N, then I eliminate everything but knight moves.  I
>then parse source/destination/promotion/check/etc and eliminate moves that
>don't fit the requirement.  If I end up with one move, it is _the_ move.  If
>I end up with zero, the move parsed is illegal.  If I end up with more than
>one move left, the move parsed is ambiguous.
>
>Doing this, I can parse way over 1,000 games per second on a single cpu 450mhz
>processor.  It takes me about 20 minutes to parse 1.5M games .  I don't think
>you are going to do this often enough to worry about how long it takes, just
>so it doesn't take a week.
>
>In Cray Blitz, we built the book by parsing each move, and then doing a short
>search from each resulting position to be sure we weren't walking into obvious
>blunders.  If a score was exceptionally low or high, the search was extended
>to a couple of minutes if needed.  It took us a few days to build our book
>because of this, but we didn't do it very often.  And yes, that was _days_ as
>in 24 hour non-stop computing.


I don't think you understand what was meant.

Faile does the following:
- parse the move to get as much of the from/to coordinates as it can
- generate moves once
- loop over the moves to find a match if it can.  If it finds more than one
match, the move was ambiguous

I am using a fairly old computer - a P 233 - and I am getting a rate that is
quite comparable to yours - about 400,000 games in 20 minutes.

Both schemes are in O(const) to process each move, and I imagine that if my book
generation was run on a comparable processor to the one you are using, the value
of const would be almost identical.  I haven't looked at your scheme, but it
might actually be slower than mine, depending on average case analysis of your
elimination scheme.  (no, I'm not going to perform this analysis!)  Further
justification of my scheme speed wise compared to yours is that I believe my
movegen is slower than yours (:P), so you would have to substantially outperform
my scheme to show that yours is any better ;)

In any event, as you said, the concern is not so much the exact speed so much as
it is making sure it doesn't take a week, so the debate about which scheme's
constant is 1.3 times larger than the other is moot :P

Another point for using my scheme is that Sjeng was based on Faile, so
integration of my scheme should be incredibly easy (ie. copy and paste easy :P).


Regards,
Adrien.



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.