Computer Chess Club Archives




Subject: Re: MTD(F) results

Author: Robert Hyatt

Date: 09:52:16 12/17/03

Go up one level in this thread

On December 17, 2003 at 10:24:52, Richard Pijl wrote:

>On December 17, 2003 at 09:49:12, Andrew Williams wrote:
>>On December 17, 2003 at 07:48:55, Anthony Cozzie wrote:
>>>On December 17, 2003 at 02:12:08, Andrew Williams wrote:
>>>>On December 16, 2003 at 21:22:56, Anthony Cozzie wrote:
>>>>>Recently I experimented with adding MTD(F) into Zappa.  It has been an
>>>>>interesting experiment, but I am going back to PVS().
>>>>>I thought that since Zappa has a [UL,LL] paired transposition table and an
>>>>>evaluation granularity of only 1/100 of a pawn, MTD(f) would work quite well,
>>>>>but that does not seem to be the case.  The MTD(f) version of Zappa does
>>>>>slightly better on test suites (113/183 @ecmgcp v 106 @ 10s/move) but in the
>>>>>positional test suites it averaged about 3/4 of a ply less than the PVS()
>>>>>version.  My guess is that because MTD(F) tries all moves, some of the
>>>>>"ridiculously losing captures" ordered near the end by PVS() are tried earlier,
>>>>>which accounts for the increased test suite performance.
>>>>I don't understand the last part of this paragraph. Why would "ridiculously
>>>>losing captures" be tried earlier (than what?) in MTD?
>>>>>If anyone has any suggestions, I'm keeping the MTD(F) code in Zappa (just turned
>>>>>off) and I'm willing to try anything.
>>>In most test suites the winning move is evaluated as losing by the SEE.  So in
>>>PVS() it gets tried last.  In MTD(f) it goes through all the moves every time.
>>Sorry, I still don't understand? I would have thought that move ordering would
>>be pretty much identical for both methods? Am I missing something?
>Moveordering is identical, but in PVS the 2nd move is only tried when the 1st
>move is fully searched. In MTD(f) (as I understood it from Aske Plaat's paper)
>you try all moves with the initial 0-window before, in which case the moves
>ordered last are searched earlier than when using PVS.

That's a valid observation.  In normal PVS the entire N-ply tree is searched
before the last root move is searched.  In mtd(f), the entire root move list
including the last move is searched multiple times, giving that last move a
chance to pop to the top significantly quicker...

>>My engine is MTD(f) but if I were to convert it to PVS I think it would still
>>try all the moves in the same order, all things being equal. You should look at
>>Tord's message as he has some very good advice in there. The convergence
>>accelerator thing is *very* important.

This page took 0.07 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.