🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.chess
Article #5616

Hashing in gnuchess 4.0 pl 61

#5616
From: Dietmar Wolz
Date: Mon, 26 Apr 1993 12:45
47 lines
2408 bytes
Some ideas about hashing in gnuchess4pl61:

1) routine PutInTTable in util.c

      if (score > beta)
        {
          ptbl->flags = lowerbound;
          ptbl->score = beta + 1;
        }
      else
        ptbl->flags = truescore;

Why beta+1 is stored ? If we have a window (alpha,beta) and a result score
with score > beta, then score should be a lower bound for the real value.
Storing score instead of beta+1 would cause more (correct) cuts.
    
2) routine ProbeTTable in util.c:

#ifdef notdef                   /* Never happens! see search */
          else if (ptbl->flags & upperbound)

Thats true, but why ? Todays machines have large memory resulting in large
transposition tables. Why not also store upper bounds ? This again results
in more cuts during search.

3) routine ProbeTTable in util.c:
  if ((ptbl->depth>= (short)depth) && (ptbl->hashbd == hashbd))
/*     ^^^^^^^^^^^^   we can use some informations of the entry even
                      the depth is not large enough */

I agree to the comment. 
Only when ptbl->depth >= depth you can use the value or bound.
But ptbl->mv is very useful when ptbl->depth >= depth - 1.
ptbl->mv should be the first move evaluated when ptbl->depth == depth - 1,
because ptbl->mv was the move selected during an earlier stage of 
iterative deepening. This should improve the current move ordering heuristics.
To choose the probably best move first is very important, if you want to
enhance the search by singular extensions 
(I currently perform some experiments).


Dietmar Wolz, e-mail: dietmar@cs.tu-berlin.de
Tel. +49-30-31473137, Fax. +49-30-31423516
Technical University Berlin, Fachbereich 20 / Sekr. FR 6-1
Franklinstr. 28/29, 1000 Berlin 10, Germany
 
Technical Details
Message-ID: <1rglhs$l3d@news.cs.tu-berlin.de>
Path: arc1-ca.pugleaf.net!gmd.de!ira.uka.de!math.fu-berlin.de!cs.tu-berlin.de!dietmar

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 10d71d,d290045303a8aad2,start
X-Google-Attributes: gid10d71d,public
X-Google-ArrivalTime: 1993-04-26 05:46:37 PST
Path: arc1-ca.pugleaf.net!gmd.de!ira.uka.de!math.fu-berlin.de!cs.tu-berlin.de!dietmar
From: dietmar@cs.tu-berlin.de (Dietmar Wolz)
Newsgroups: gnu.chess
Subject: Hashing in gnuchess 4.0 pl 61
Date: 26 Apr 1993 12:45:48 GMT
Organization: Technical University of Berlin, Germany
Lines: 47
Message-ID: <1rglhs$l3d@news.cs.tu-berlin.de>
NNTP-Posting-Host: spezi.cs.tu-berlin.de
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit