Computer Chess Club Archives




Subject: About history heuristics, killers and my futil. pruning code

Author: Severi Salminen

Date: 14:22:45 12/06/00


First a question about history heuristics: Should I clear or decrease the
counters after a search. Now I do nothing. I just add history value to all non
capturing moves and increase the counters by depth if I find a move whose

How do killers work? More precisely when do I replace a killer move by another?
If I have two killers at each ply with counters should I replace allways the
lowest one? And after the search should I make all ply 1 killers ply 0 killers
and so on?

And then, thanks to all answers about futility pruning. I found a few bugs and
PV code and futility code and now it works a lot better. Below the diagram is
the output:

[D]rnbqkbnr/ppp2ppp/8/3pp3/3PP3/8/PPP2PPP/RNBQKBNR w

    Time  Depth   Score       Nodes PV
    0.00    1      0.10         136 Be3
    0.00    2      0.00        1711 Be3 Be6
    0.11    3      0.10        7218 dxe5 dxe4 Bc4
    0.44    4      0.01       24742 dxe5 dxe4 Bc4 Nc6
    0.77    5      0.10       45588 dxe5 dxe4 Bc4 Qxd1+ Kxd1
    1.87    6      0.06      189766 dxe5 dxe4 Bb5+ c6 Qxd8+ Kxd8
    3.35    7      0.11      381107 dxe5 dxe4 Qxd8+ Kxd8 Bc4 Nc6 Bf4
   12.14    8      0.05     1521228 dxe5 dxe4 Qxd8+ Kxd8 Bc4 Nc6 Bf4 Bb4+

CW: 129 CB: 129 EP: 0
eval:  0.05, nodes: 191295, qnodes: 1329933, NPS: 125307, F: 153159

F means futile moves pruned (total). Without futility pruning I spend about 0.5
s more time and do about 150000 nodes more. Node count is still a bit high, but
it's much less then previously and no more queen sacrifices :)


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