Within a few minutes, the source for Crafty V9.26 will
be on the ftp machine willis.cis.uab.edu, directory is
pub/hyatt. this is a fix version for chess server
crafty clones that solves a "flagging" problem due to
very short time controls. from main.c:
* 9.26 minor bug fixes in time allocation. this mainly affects Crafty *
* as it plays on a chess server. the problem is, simply, that the *
* current internal timing resolution is 1/10 of a second, kept in *
* an integer variable. .5 seconds is stored as 5, for example. *
* this became a problem when the target time for a search dropped *
* below .3 seconds, because the "easy move" code would terminate *
* the search after 1/3 of the target time elapsed if there were no *
* fail lows or PV changes. unfortunately, 2 divided by 3 (.2 secs *
* /3) is "zero" which would let the search quickly exit, possibly *
* without producing a PV with a move for Crafty to play. Crafty *
* would play the first PV move anyway, which was likely the PV move *
* from the last search. this would corrupt the board information, *
* often produce the error "illegal move" when the opponent tried to *
* move, or, on occasion, blow crafty up. on a chess server, Crafty *
* would simply flag and lose. after this fix, I played several *
* hundred games with a time control of 100 moves in 1 second and *
* there were no failures. before the fix, this time control could *
* not result in a single completed game. if you don't run Crafty *
* on a chess server, this version is not important, probably. *
--
Robert Hyatt Computer and Information Sciences
hy...@cis.uab.edu University of Alabama at Birmingham
(205) 934-2213 115A Campbell Hall, UAB Station
(205) 934-5473 FAX Birmingham, AL 35294-1170
Cheers,
Tom
_______________________________________________________________________________
Tom Kerrigan kerr...@frii.com O-
"Cleveland? Yes, I spent a week there one day."
Don't like it. Can burn a lot of time for nothing if you belive that your
first move is really best. I'd rather save the time for the next search
where it might be needed for a fail low or to search a more complicated
position.
The fix of not terminating until the first move of the first iteration has
been searched solved the problem without incurring any overhead at all...
Don't let the thing time out until it has completed at least one ply.
This will stop the problem of you having no PV, and it will also give you
a little bit better chance of getting a good PV than if you allow a
partial ply search.
The time difference between a zero ply and one ply search is probably
undetectable, and you'll score better.
bruce
--
The opinions expressed in this message are my own personal views
and do not reflect the official views of Microsoft Corporation.