Author: Bas Hamstra
Date: 00:43:09 12/04/02
Go up one level in this thread
On December 03, 2002 at 22:45:16, Robert Hyatt wrote: >On December 03, 2002 at 18:59:20, Jon Dart wrote: > >>On December 03, 2002 at 17:16:58, Robert Hyatt wrote: >> >>> >>>the idea is to do anything you can to exclude moves. Because below each move >>>you search, you grow a tree, and that is expensive. If alpha is 0.00, and >>>the current material score is -15.0, then capturing a pawn is not going to >>>help, and avoiding that capture avoids the tree below it. >> >>I've noticed that Crafty uses the material value as a basis for calculating >>futilty. In other words, if material + SEE gain + safety margin < alpha, you cut >>the move (I do something similar at present). >> >>What Mike is suggesting is to use the total position eval, which is also >>something I've experimented with. So: if eval + capture + SEE gain + safety >>margin < alpha, you cut. If you have large positional scores, this is possibly >>safer (the "safety margin" in Crafty is only 1 pawn). > >If you follow the logic carefully, this is also what crafty is doing. At >the top of Quiesce() I grab the positional (stand-pat) score, and if this is >> alpha, then I set alpha to that value. All the pruning is then based off >of this positional (material+positional returned by Evaluate()) score plus the >capture gain, plus a fudge as removing a piece could increase the score but >probably not by a lot... It is not the same IMO. I think Jon means this: suppose Eval is below alpha. Then in Crafty you calculate Delta=Alpha-Mat-Margin. However more accurate might be Delta=Eval-Margin. IE you prune based on Eval rather than material. I tried this, and the result is it will throw out less captures while I see no noticable improvement in accurracy. Bas.
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.