I've implemented an alpha beta search with iterative deepening and i've read several techniques to further optimize the algorithm by searching for the best move first that came up from previous depth search.
as far as i understand, can i just store the principal variation from the previous depth search in dynamic length list? for example, suppose i have searched until depth 4 with PV : [1, 0, 2, 3] means that at depth 1, choose move number 1, at depth 2 choose move number 0, at depth 3 choose move number 2 , etc..., and then for depth 5 search, the algorithm will first search the child of the node from that previous depth PV.
is that what you call the refutation tables?
description of refutation table from this link : For each iteration, the search yields a path for each move from the root to a leaf node that results in either the correct minimax score or an upper bound on its value. This path from the d - 1 ply search can be used as the basis for the search to d ply. Often, searching the previous iteration’s path or refutation for a move as the initial path examined for the current iteration will prove sufficient to refute the move one ply deeper.
if it's not the same, can you explain what is refutation table really is(because to me, both seems equal, but im not sure) and what is the advantage of using the refutation tables instead of the way i mentioned first?