Computer Chess Club Archives


Search

Terms

Messages

Subject: Delta Pruning

Author: Stuart Cracraft

Date: 20:41:46 08/10/04


This repy from Bob Hyatt to Alessandro 5 years ago
seems the best explanation so far. Anything to add
anyone? Implementation gotchas?

Mine is (roughly) and untested until the ovenright run:

  quiesce
  :
  baseval = eval();
  :
  while next capture move available
    if (value_of_captured_piece + (2*maxpositionalscoresofar) + baseval
           < alpha)
       continue;
    else
       makemove
       see or mvv/pva, etc.
       decide whether to search further
       unmakemove
    fi
  endloop
  :
  :

maxpositionalscoresofar is for the side on move.

>What is the 'delta" used for? Thank you.
>
>Alessandro
>
>

It is a 'guestimate' of how far up the positional eval can pull the score
in addition to the material being gained(lost) by the capture being
considered. IE suppose alpha is 0 (dead equal game) and when you get to
this node the material score is -400. If you play PxN, you gain 300, so
the score is at -100, which is _still_ well below alpha. What do you
assume your positional score can add? 100? If so, then you ought to try
this capture. 200? Then you definitely want to try this capture? 50?
then that won't pull the score above alpha and there is no point in trying,
if you are pretty _sure_ that 50 is the biggest score you can get...




This page took 0.01 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.