Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: MTD(f)

Author: Uri Blass

Date: 05:55:25 07/28/04

Go up one level in this thread


On July 28, 2004 at 08:23:17, Tord Romstad wrote:

>On July 28, 2004 at 07:06:22, Uri Blass wrote:
>
>>How much rating do you earn from dividing the evaluation by 4.
>
>I no longer remember exactly, but I think it was quite a significant
>improvement.  However, it is possible that the improvement is mostly explained
>by a horrible futility pruning bug I introduced while doing the change.  For
>some reason, this bug seems to make the engine much stronger, and all attempts
>to fix it have had catastrophic results.
>
>The bug is the following:
>
>In the qsearch, I prune futile captures with code that looks roughly like
>this:
>
>if(approximate_eval_after_move(move) < alpha-margin)
>   prune move
>
>The approximate_eval_after_move() function takes the static eval of the
>current position and adds the change in material and piece square table
>scores when the move is made.  When I changed from pawn=64 to pawn=32,
>I forgot to modify the approximate_eval_after_move() function.  This
>function still divides by 2 rather than 4, and returns scores with
>unit pawn=64.

If I understand correctly your function give twice the expected value instead of
giving the expected value.

I guess that alpha is near 0 during the game.
Let assume that margin is near 1 pawn

If approximate_eval_after_move(move)<-1 pawn was planned.

If 2*approximate_eval_after_move(move)<-1 pawn was done.
In other words
If approximate_eval_after_move(move)<-0.5 pawn was done.

I suspect that it may be better to correct the bug and also divide margin by 2.
Did you try it?

Uri



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

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