Understanding pv_nodes and improving heuristics

Discussion of chess software programming and technical issues.

Moderator: Ras

Kirill020708
Posts: 1
Joined: Sat Oct 04, 2025 9:12 am
Full name: Kirill Timofeev

Understanding pv_nodes and improving heuristics

Post by Kirill020708 »

I don't understand some tweaks for pruning.
1. Purpose of PV nodes. If I understand correctly it's the nodes in which (beta-alpha)>1 (if we have PVS search). On chess programming wiki on some pruning ideas there is a statement that you should skip it when node is pv/non-pv (for example, in RFP it advices to skip it if node is PV). Why does it matter?
2. Improving heuristics. There are tweaks including it (for example, in RFP you can reduce margin if position is improving). Also, why does it matter?
Aleks Peshkov
Posts: 941
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia
Full name: Aleks Peshkov

Re: Understanding pv_nodes and improving heuristics

Post by Aleks Peshkov »

I am not an expert in any view, but as nobody else wants to respond, I will.

PV move is direct candidate to be the part of the final Principal Variation. Example of importance of PV-node distinction is MTD(f) algorithm (where all nodes are zero-window): there is no PV-nodes and it is known that MTD(f) have difficulties with extracting real PV moves from search. Principal Variation should be a sequence of legal chess moves. Null Move is not legal chess move, that is one of the reasons that make Null Move Pruning is not good for PV-nodes.

The more distance of a zero-window node from the nearest PV-node, the less chance ZW-node will be a part of final PV (chance that PVS research confirm that it is a hidden PV-node). If you agressively prune a good zero-node, another sibling node way not be pruned, or another node may be refutation, that invalidate pruned PV-candidate node. So errors of pruning wrong ZW-node are less fatal if the node is not a PV-node.