Page 1 of 1

MTD(f) Engines

PostPosted: 25 Nov 2009, 04:16
by Eric Stock
Hello, I am studying MTD chess algorithms and testing them as part of my Masters Dissertation.
I have currently modified Crafty 23.0 to use MTD(f). I still have to modify the transposition table to store both upper and lower bounds. When testing with 500, 1 second games, the MTD(f) Crafty version is able to score around 45%. This is a little bit lower than I expected. Perhaps, I have made some coding errors.

My question is this...Are there any strong present day chess engines which use MTD(f)? I seems that all the present engines today use PVS/Negascout. This makes sense as there are several state of the art open source implementations of PVS/Negascout engines, such as Crafty or Fruit which can aid programmers in learning how to implement various parts of the chess engine to work in harmony with the PVS\Negascout search.

Eric Stock
Author of MagnumChess

Re: MTD(f) Engines

PostPosted: 25 Nov 2009, 09:04
by Stephan Vermeire
Hi Eric,

I once tried MTD(f) in Brutus (that is actually a few years ago). The results were never better than negascout. On the other hand, Brutus wasn't capable of running on old computers anymore because of the enourmous need for memory by the algorithm.

So to conclude, I abandonned the idea and went back to the basic negascout. As far as I know, there are no strong chessprograms using it at his day. (However I must admit that my technical knowledge of other programs is quite limited).

Bets wishes,
Stephan

Re: MTD(f) Engines

PostPosted: 25 Nov 2009, 23:36
by Daniel Shawul
SOS by Rudolf Huber,that comes with Arena, uses it. And it is pretty strong.
I guess that PVS with aspiration windows is better than MTD. If you want you can set
the aspiration window size to a small value and effectively get MTD. About 99% of the nodes
are searched with zero window size already. latest rybka for example does that with aspiration
windows as small as 10. That is the lowest i seen so far.

Danile

Re: MTD(f) Engines

PostPosted: 26 Nov 2009, 05:06
by Eric Stock
Thanks for the replies.

That is interesting that Rykba uses such a small aspiration window. It's evaluation must not change very much between plies for most positions (unless it's search finds something important of course). However, while using a small aspiration window may seem like MTD(f), if the value returned by Rykba's search is outside the window, then Rykba must widen the window correct? This how crafty works.

Eric Stock