Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: General Tips and Tricks for debugging a search.

Author: Dann Corbit

Date: 16:07:27 06/15/05

Go up one level in this thread


On June 15, 2005 at 16:36:54, Eric Oldre wrote:

>
>I was wondering if anyone would like to volunteer any tricks they've
>used to help find certain bugs in their search function.
>
>I think that the ideas of using perft for move generation and
>reversing the board to find bugs in the evaluation have both
>been really useful to me. I was wondering if anyone has used
>techniques similar to these to help find search bugs.
>
>I understand that just because a engine can properly pass these
>and other tests doesn't mean it's free of bugs. But they certainly
>help detect at least some of them.
>
>I'm certain that there must be plenty of bugs in Latista's search
>and I think it's time for me to work on discovering them. If
>you don't have any automated tricks like above. Does anyone
>have any general advise to help me spot some bugs?
>
>Eric Oldre
>
>PS. I have at various spots in my program tried to follow a similar
>model of asserts as in fruit. I'm sure taking some time to
>do this at more parts of my program would help.

Function to dump the current board [an absolute necessity].
Function to generate the hash from scratch and also incrementally and compare
the two (bad hash and the search is hosed)
Function to mirror the board and see if solutions are identical (but mirrorred)
Function to change colors and side to move and see if solutions are identical
(but reversed for color)
Function to list node counts by type (normal, qsearch, hashhit...)
Function to check for capture of a king
Function to check for both sides in check
Function to save complete move state with memcpy and then compare with
makemove/unmakemove to see that they are identical
Function to count hash collisions
Function to count hash table transposition hits (found it, regardless of depth)
Function to count hash table transposition success (found it, deep enough to
use)

Probably lots more things, but these spring to mind.  Some are more eval
oriented, but are also helpful if the search has gone bonkers.



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.