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.