|Tom Kerrigan's Home Page|
An issue with ABDADA is that you can defer a move that ends up failing high, and you won't find out that the move failed high until you finish searching the rest of the moves and loop back to the deferred moves.
All the time spent searching a position after a move failed high is wasted effort.
There's an easy way to (partially) address this problem: check the transposition table in your search function's inner loop to see if the position you're searching has failed high. I call this idea "Cutoff Checks." Here's the pseudocode, with implementation notes:
Pseudocode for Cutoff Checks