Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: WAC 141 blowup

Author: Tord Romstad

Date: 10:34:32 09/01/04

Go up one level in this thread


On September 01, 2004 at 11:33:12, Stuart Cracraft wrote:

>On September 01, 2004 at 05:28:55, Tord Romstad wrote:
>
>>On September 01, 2004 at 05:00:32, Chris Welty wrote:
>>
>>>What is a Botvinnik-Markoff extension?
>>
>>An extension which is triggered every time the null move fails for the same
>>reason twice in a row.  Whenever the null move fails low (you may want to
>>do it only when it fails low by some margin), you set ThreatMove[Ply] to
>>the move that refuted the null move.  The code for the actual extension
>>is something similar to this (should be located directly after the null
>>move search in your code):
>>
>>  if((null move failed low) &&
>>     (ThreatMove[Ply]==ThreatMove[Ply-2] ||
>>      (ThreatMove[Ply] and ThreatMove[Ply-2] captures the same piece)))
>>    Extend
>
>>Tord
>
>Tord,
>
>By fail low I assume you mean that simply value from null move
>search simply didn't fail high?

In my case, "fail low" and "not fail high" are always equivalent.
My windows always have zero width (I use MTD).  In a PVS search, I
would probably call the null move search with a window of (alpha, beta)
rather than (beta-1, beta), and set ThreatMove[Ply] only if the return
value of the null move search is less than alpha-margin, where margin
is some non-negative number.

>All I do for null is
>
>  if (okay to do null) {
>     makenullmove;
>     value = null() with reduced depth
>     if (value >= beta) { unmakenullmove; return(value); }
>  }
>  /// so I know I have to put something here, but I have no move
>  /// that refutes null move search above. Do you mean that ThreatMove[...]
>  /// should be set to the best move found by the reduced search at its
>  /// first ply?

Exactly.

Tord



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.