Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Nondeterminsitic behavior

Author: Andrew Williams

Date: 05:42:58 07/18/99

Go up one level in this thread


On July 18, 1999 at 07:38:35, Dave Gomboc wrote:

>On July 18, 1999 at 04:38:08, Andrew Williams wrote:
>
>>On July 18, 1999 at 03:01:33, Dave Gomboc wrote:
>>
>>>In the past, people have discussed how difficult it can be to debug a chess
>>>program due to non-deterministic behavior.  Clearly, this can arise from a
>>>multi-threaded search.  If, however, the search is single-threaded (and
>>>discounting the play from the start of the game until the end of the opening
>>>book), what factors, if any, might allow a program to still not play identically
>>>each time?
>>>
>>>Dave
>>
>>In my (single-threaded) program, there are:
>>
>>(1) The hash-table - search the previous move for 10 seconds one time and
>>    for 30 seconds the next time and you will have different information
>>    supporting the search.
>
>Okay.  Assume that you search for the same length of time each time, and that
>the background load during both runs is as low as possible (no other user apps
>open.)  You can still get unlucky a very small portion of the time, right?
>

As far as PostModernist is concerned, if it searches one more node or one
less node in a previous search, there's a chance that the HT contents will
yield a slightly different set of nodes and its search may look different.
If PM has searched exactly the same nodes as before, you should not see any
difference in subsequent searches.

>>(2) The order of the pieces in my piecelist[] data structure. For a long
>>    while I was confused by the fact that if I ran postmodernist on a test
>>    position from the command line I got a different search from what I got
>>    running it under Xboard. The problem was that reading a position from fen
>>    put the pieces in a different order from reading the same position from
>>    xboard's "Edit Position" command. (I should say that this depends a bit
>>    on your approach to move generation). I solved this by taking what I
>>    got from "Edit Position", converting it to FEN and reading it back in.
>
>This is something that wouldn't have occured to me right off of the bat either.
>
>>(3) Bugs! I would look at uninitialized variables first.
>
>I haven't written a chess program, so I don't have any bugs to look for. :)
>

Was it you who wrote an Awari (Kalah) program using MTD(f)? If not, my
apologies. If it was, can you tell me what you did about generating a PV?


Thanks

Andrew



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.