Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: bugs, Bugs and BUGS!

Author: Tord Romstad

Date: 02:18:13 05/28/04

Go up one level in this thread


On May 27, 2004 at 07:39:37, milix wrote:

>Sometimes CEBUGS are very productive and when they are
>eliminated the engine's strength drops about 50-150 points.

Yes.  This kind of CEBUG is particulary annoying.  I have a particulary
annoying one in the futility pruning in my qsearch.  The code for my
futility pruning is similar to this:

if(approximate_eval_after_move(move) < alpha - margin)
  Don't search this move

The internal resolution of my evaluation function is pawn=128.  Until
a few months ago, the external resolution was pawn=64 (I divided all
scores by two before returning from the static eval).  A few months ago,
I changed the external resolution to pawn=32.  I then had to modify my
search functions a lot of places, dividing by 4 where I had previously
divided by 2.

I forgot, however, to change the approximate_eval_after_move() function.
I was horrified when I noticed that this function still divided its
return value by 2 rather than 4.  Of course I expected a huge leap in
playing strength when I fixed this bug.

Exactly the opposite happened.  Fixing the bug made the engine more than
twice as slow and about 100 Elo points weaker.  I still don't understand why.
Probably I have two bugs which somehow neutralize each other, but I cannot
find the second bug.

:-(

Tord



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.