I've had some discussion with Thomas (Lithander, from MinimalChess) recently, about PV-move vs. TT-move ordering.
If you have an engine that orders on moves it gets from the TT, does it give you any benefit to also order on moves from the (triangular) PV-table?
The CPW says this:
PV-move
Hash / TT-move:A PV-Move is part of the principal variation and therefor a best move found in the previous iteration of an Iterative deepening framework. It is either a hash move of a stored PV-node inside the transposition table, or - if a triangular PV-Table is applied, a move from that array.
By reading this I am assuming that PV-move ordering is not necessary anymore as soon as you TT-move ordering, as the PV-move must be in the TT; you specifically put it there with an EXACT score if alpha is raised and bèta not beaten. When you probe the TT, the resulting move is either a PV-move, or a cut-move. So if it is there you should get it back out again, as long as it's not overwritten. This is the only reason I can see to also do PV-move ordering: because in the triangular TT, the PV-moves aren't overwritten, so you'll always have them.The Hash Move is a move probed from the transposition table, either a best move of a stored PV-node - a PV-move, or a good enough refutation move to cause a cutoff.
When I added TT-move ordering, the engine gained about 100 Elo. My speedup was very similar to the speedup gained by VICE (BlueFever) and BBC (Maksim Korzh), who added PV-move ordering before they had a TT. Would it be beneficial if I _also_ implemented PV-move ordering? I have a feeling it won't be, except in the case to compensate for an overwritten PV-move in the TT, but I don't know if that would gain much playing strength.