Chess - Programming - Iterative Deepening

Iterative deepening starts with a one ply search, then increments the search depth and does another search.

Intuitively, Iterative deepening seems like a dubious idea because each repetition will repeat uselessly all the work done by previous repetitions.


Internal Iterative Deepening

If we do not have a hash move to search first, perform a shallow search (say two ply less).

The best move returned from this search is then searched first.

Note that if we do not have a hash move at depth eight, we also will not have a hash move at depth six, four, two and finally zero, where the quiescence search will provide us with a move to start off with - hence internal iterative deepening.

The extra searches have a negligible cost compared to the time saved by improving the move ordering.