Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Reproducing a game (The ultimate dream of the debugger)

Author: Uri Blass

Date: 13:06:00 08/02/01

Go up one level in this thread


On August 02, 2001 at 14:47:20, Dann Corbit wrote:

>On August 02, 2001 at 13:00:27, Miguel A. Ballicora wrote:
>
>>I have an idea for debugging that probably was used before but I want some
>>opinions about it:
>>
>>I am thinking about a system to trace what is going in my engine when I see a
>>weird move during a game. The main problem is that it is extremely difficult
>>to reproduce the same conditions for search. I have seen once in a while a
>>very weird move that I cannot reproduce it if I set the position to search.
>>The obvious reason is because the tables, hash and history bring information
>>that I lack when I try to reproduce.
>>Clearing the tables before each move would be (I think) an easy way out. The
>>engine in this state will be easy to debug but I would be dodging the problem.
>>In that way I would not see problems caused by the tables. I would be debugging
>>probably only part of the engine, dodging the most prone to errors!.
>>Saving the tables is out of the question, I would fill my HD in no time.
>>
>>What I think I can do is to save how many nodes I searched in any particular
>>move. When I ran out of time I keep record of the nodes.
>>When I try to reproduce the game I set the limit of thinking in "nodes", rather
>>than "time". I should be able to reach exactly the same situation in the search
>>in each of the moves of the games. Moreover, I should be able to reproduce the
>>whole thing with the debug version. Maybe I can store a log with all this
>>information and after the game let the program chew it and see if the
>>reproduction is exact.
>>
>>I think that debugging is tedious, boring but extremely important to make the
>>engine play the way we want. Particularly for chess programs where
>>the bugs are nasty because sometimes the program does not crash, it just plays
>>worse "sometimes".
>>
>>I just came up with this idea this morning, is there anything that I am missing?
>>suggestions? Is it obvious and everybody already does this?
>>
>>Regards,
>>Miguel
>>PS: I think that this kind of testing could be done also with pondering!
>>just limiting the pondering to n = nodes.
>
>I think to reproduce the exact state of a computer program will be nearly
>impossible if there is any way for randomness to be introduced (and surely there
>will be such).

Why do you think that there will be randomness?
>
>It's a good idea to try, but don't expect miracles.
>
>Normally, if I want to reproduce something, I just take the EPD position where
>the problem occurred and let the program analyze.  If it *never* makes the same
>choice it made before at any point in time, you have some very serious problem
>anyway (or a large amount of deliberately introduced randomness perhaps).

I disagree.
It is possible that in the game it learned information from previous search and
this is the reason for the fact that it does not produce the same choice again.

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.