Computer Chess Club Archives




Subject: Re: MTD(f)

Author: Josť Carlos

Date: 01:25:40 01/16/04

Go up one level in this thread

On January 15, 2004 at 06:26:47, Tord Romstad wrote:

>On January 14, 2004 at 20:11:53, Dann Corbit wrote:
>>On January 14, 2004 at 16:49:29, Tord Romstad wrote:
>>>Another simple trick is to reduce the resolution of your evaluation
>>>function.  In my pre-MTD(f) days, I used pawn=128.  I still use pawn=128
>>>as the internal unit in my evaluation function, but before returning
>>>the final score I divide the score by 2.  This simple change made my
>>>search noticably more efficient.
>>Did you try other divisors besides 2?
>No, not yet.  When I have cleaned up my source code a bit, I plan to make
>it possible to choose the divisor in my init file.  I don't think bigger
>divisors would result in stronger play, though.  It would make the engine
>faster, but I am afraid a lower resolution would hurt the already poor
>positional knowledge of Gothmog.

  After some thought about this I came to the conclusion that the accuracy of
the centipawn is less important when the eval is very big (positive or
negative), so now I do something like:
  if (abs(eval) >= 30)
    if (abs(eval) >= 150)
      eval -= (eval % 5);
      eval -= (eval % 3);
  I don't have my source here, but that's the idea. I even thought of using an
array to slowly increase the divisor, but I don't think it's worth it to include
a memory reference here. The 1 / 3 / 5 scheme works fine for Averno now.

  Josť C.

This page took 0.02 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.