Hello,
Apologies in advance if this is a silly newbie question or has been discussed before.
I noticed that in SF (if my reading of the code is correct) that when the tree is pruned because of either a null-move, or the multi-cut "side-effect" of the singular extension, a score is returned right away, without being stored in the TT.
I am trying to understand why that is: to avoid some sort of "double accounting"? Or to avoid complications around storing move stats for the move reordering heuristic? Or maybe there's a simpler answer?
Thanks,
Cristian
Question regarding TT and pruning heuristics
Moderator: Ras
-
- Posts: 13
- Joined: Mon Nov 08, 2021 8:54 pm
- Full name: Cristian Vlasceanu
-
- Posts: 965
- Joined: Fri Aug 21, 2020 1:25 am
- Location: Planet Earth, Sol system
- Full name: Michael J Sherwin
Re: Question regarding TT and pruning heuristics
The TT is a valuable resource that fills up and when it does more valuable entries can be replaced by less valuable entries. Null move is very cheap for the benefit it offers. So one might not want to use up TT entries for null move. An idea I plan on testing is to only use TT entries for null move depths greater than n whatever n will turn out to be.
-
- Posts: 13
- Joined: Mon Nov 08, 2021 8:54 pm
- Full name: Cristian Vlasceanu
Re: Question regarding TT and pruning heuristics
Ah, that sounds reasonable. My own experiments seem to indicate that *not* storing entries from heuristics hurts MTD(f) performance, by lowering the average search depth by about 0.5, measured on WAC at 5 sec per puzzle. But there is variation in the quality of the search when I do store those. Normally my (very beginner's) engine solves all but infamous puzzle # 230 but occasionally it may miss another one or two, which I can associate with multi-core non-determinism plus TT entries being overwritten as you pointed out; either that or just bugs.
Thanks,
Cristian
Thanks,
Cristian