lowerBound + 1) g := AlphaBetaWithMemory(root, β − 1, β, d) if g < β then upperBound := g else lowerBound := g return g First guess for best value. The better the quicker the algorithm converges. Could be 0 for first call. Depth to loop for. An iterative deepening depth-first search could be done by calling multiple times with incrementing and providing the best previous result in . is a variation of Alpha Beta Search that caches previous results. Description MTD(f) calls the zero-window searches from the root of the tree. MTD(f) depends on a transposition table to perform efficiently. Zero-window searches hit a cut-off sooner than wide-window searches. They are therefore more efficient, but, in some sense, also less forgiving, than wide-window searches. However, wider search windows are more forgiving for engines with large odd/even swings and fine-grained evaluation functions. For this reason some chess engines have not switched to MTD(f). In tests with tournament-quality programs such as Chinook (checkers), Phoenix (chess), and Keyano (Othello), the MTD(f) algorithm outperformed all other search algorithms. Recent algorithms like Best Node Search are suggested to outperform MTD(f). References External links Description of MTD(f) algorithm Search algorithms Articles with example pseudocode