What IID gives you that a hash table does not is to provide an estimate if the move is not *already* in the hash table.AndrewShort wrote:So it seems to me that if you already have hash-best-move implemented, that the only benefits of iterative deepening are:
(1) the ability to time-out with a good move at hand
(2) increased efficiency by filling up the hash table between iterations
Seems to me you don't have to bother with passing each iteration the previous iteration's PV, as the hash table gives you all that benefit already.
On the other hand, the only real benefit of IID is better move ordering. If you have perfect move ordering, then the benefit of IID is actually less than zero, since there is a cost to the shallower searches. If you have really good move ordering, then it is about break even. If you have bad move ordering then it is a huge win, as it will reduce your branching factor.