Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Chess program improvement project (copy at Winboard::Programming)

Author: Dann Corbit

Date: 20:59:59 03/06/06

Go up one level in this thread


On March 06, 2006 at 23:55:17, Dann Corbit wrote:

>On March 06, 2006 at 23:39:36, Stuart Cracraft wrote:
>
>>On March 06, 2006 at 22:47:18, Dann Corbit wrote:
>>
>>>On March 06, 2006 at 22:13:56, Stuart Cracraft wrote:
>>>[snip]
>>>>Discouraging Dan. Discouraging.
>>>
>>>Suppose that you are 3 lines away from approximately the same result.
>>>
>>>BTW, I have had a crafty version score 300/300 with the same time controls.
>>>
>>>The only difficult problem in this set is WAC.230.
>>>
>>>I think that WAC is a great set to start working with on a chess engine.
>>>After a few months you are going to graduate to something tougher.
>>>
>>>I guess that there is some simple bug that is costing you 80% or more of the
>>>misses.
>>>
>>>It sounds like an advanced engine from the things I have read so far.
>>>
>>>I think I saw a list of the missed problems by your program.  I guess that I may
>>>see a theme problem when I go over them.
>>
>>Thanks - I look forward to those comments at your availability.
>>
>>I reran the whole 300 suite at 10 seconds each this evening,
>>due to Bob's comment, and pulled the failed 29 (Bob failed 9
>>I believe.)
>>
>>Then I reran against just my 29 and found that only 24 failed the
>>second time, at the same time control.
>>
>>This tells me that there is something about the test that is not
>>reproducible, based on either the ordering of the tests in the suite
>>or aspects being carried from test position to test position (hash
>>tables, history heuristic, etc.) I am not sure what it is.
>>
>>To test this theory, I took the 29 that failed of which only 24 failed
>>the second time and reversed them so that the last came first and retested.
>>This time 4 of the 29 were solved instead of 5. This difference of one is
>>too small to claim an ordering result for just 29 position sample size.
>>
>>Still this indicates that instead of failing 29 I am failing 24-25
>>and I am not sure what would cause it. Before every iterative deepening
>>ply 1 search, I clear out the history heuristic table, the hash tables,
>>and the principal variation arrays.
>>
>>Still that is only 4-5 more leaving 24-25 left, arguably 15-16 if one
>>wants to aspire as high as Crafty.
>>
>>I am at a total roadblock on the subject. As I mentioned, I will be
>>putting money where my mouth is and making a signficant donation to
>>the board sponsors for guidance to a solution of gaining say another
>>10 right above my current 271 at 10 seconds. (Hopefully that's legal
>>here.)
>
>This sounds like a bug.
>If you analyze a new position, you should definitely clear the hash table
>between analysis runs.

Note:
A good way to know you should clear the hash is if the node you are given to
analyze is not a pv node in the hash table.

If the node is a PV node in the hash table, then don't bother to clear it.

>If the results are not exactly the same time after time,
>then there is a bug (unless you introduce randomness or use floating point for
>your eval or other odd things like that).
>Memory overwrite or hashing or something like that may be at fault.
>
>Do you have a way to compute the hash signature from scratch instead of
>incrementally?  If so, I suggest doing a debug build that for every make-move
>computes the hash completely from scratch and then compares the hash signature
>with the incremental hash signature created by make-move.  If anything does not
>match, you may have found the culprit.
>
>Also, valgrind or some other memory checking tool might prove valuable.  If your
>code is ANSI C, you could run SPLINT against it.
>
>If you are not opposed to sending me a copy of your code I will take a look at
>it for you.



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.