MTDf

Home * Search * MTD(f)

M. C. Escher, Ascending and Descending [1] [2] MTD(f),

a search algorithm created by Aske Plaat and the short name for MTD(n, f), which stands for something like Memory-enhanced Test Driver with node n and value f. MTD is the name of a group of driver-algorithms that search minimax trees using null window alpha-beta with transposition table calls.

In order to work, MTD(f) needs a first guess as to where the minimax value will turn out to be. The better than first guess is, the more efficient the algorithm will be, on average, since the better it is, the less passes the repeat-until loop will have to do to converge on the minimax value. If you feed MTD(f) the minimax value to start with, it will only do two passes, the bare minimum: one to find an upper bound of value x, and one to find a lower bound of the same value [3].

C Pseudo Code

Slightly modified pseudo code in C:


int mtdf(int f, int depth) {
   int bound[2] = {-oo, +oo}; // lower, upper
   do {
      beta = f + (f == bound[0]);
      f = alphaBetaWithMemory(beta - 1, beta, depth);
      bound[f < beta] = f;
   } while (bound[0] < bound[1]);
   return f;
}

See Also

Publications

1994 …

2000 …

2010 …

Forum Posts

1997 …

Re: Tree search issues! by Robert Hyatt, rgcc, May 26, 1997 Re: Tree search issues! by Aske Plaat, rgcc, May 27, 1997 1998

Re: New(?) search idea by Don Dailey, CCC, January 22, 1998 MTD(f) (was Re: New(?) search idea.) by Stuart Cracraft, CCC, January 22, 1998 Re: New(?) search idea by Robert Hyatt, CCC, January 22, 1998 » Minimax Wall 1999

2000 …

2001

2002

Re: MTD(f) Problems by Rudolf Huber, CCC, April 11, 2002

Re: Couple of chess programming questions - MDT and parallel by Scott Farrell, CCC, September 10, 2002 » Parallel Search

2003

Re: MTD, IID, fail-low, root-research by Rudolf Huber, CCC, August 14, 2003

Re: MTD(F) results by Rudolf Huber, CCC, December 17, 2003 2004

MTD(f) by Tord Romstad, CCC, January 14, 2004

2005 …

2010 …

2020 …

References

  1. M. C. Escher, Ascending and Descending, 1960, Picture gallery “Recognition and Success 1955 - 1972” from The Official M.C. Escher Website
  2. Penrose stairs from Wikipedia
  3. Quote by Aske Plaat from MTD(f) - A Minimax Algorithm faster than NegaScout
  4. MTD(f) experiments with Crafty by Eric Stock, CCC, December 18, 2009
  5. Eric Stock, David J. King (2010). A new enhancement to MTD(f). Games and Arts, Abertay University

Up one level