Internal_Iterative_Reductions - peregrineshahin/ChessProgrammingWiki GitHub Wiki


title: Internal Iterative Reductions

Home * Search * Selectivity * Reductions * Internal Iterative Reductions

it 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, genius Michael Chaly revolutionized IIR forever by also having depth decrements on expected cut-nodes, which was introduced into Stockfish, and 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

2020...