Internal Iterative Reductions
Home * Search * Selectivity * Reductions * Internal Iterative Reductions
Internal Iterative Reductions is an idea first introduced by Ed Schroder into his engine Rebel in 2020. It is used as a replacement or in conjunction with Internal Iterative Deepening, although the name is a bit of a misnomer.
Internal Iterative Deepening (IID) and Internal Iterative Reductions (IIR) are both meant to handle nodes where no hash move is found. IID would attempt to fix this by running an internal, reduced depth search. However, IIR instead opts to simply reduce the depth of the entire node, in the hope that the node must not be very important as there was no hash move present. In early implementations, IIR was used on all types of nodes (in the case of Rebel) and only on PV-nodes (in the case of Stockfish). However, in 2021, Michael Chaly introduced IIR on expected cut-nodes in Stockfish, and was later adapted by Ethereal. There is also an idea of reducing depth by more if the node has been searched before at a depth greater than or equal to current depth, but yet no hash move is found.
Conditions
Where to use IIR is also an important question. Limiting the depth is an obvious condition (only use IIR if depth > 5, say). Most only use IIR in PV-Nodes and expected cut-nodes, but some implementations use IIR on all-nodes as well.
See also
Forum Posts
- An alternative to IID by Ed Schroder, CCC, August 13, 2020 » Internal Iterative Reductions