Computer Chess Club Archives




Subject: Re: Search behavior in a case of root fail high/low

Author: Sergei S. Markoff

Date: 11:20:29 03/10/04

Go up one level in this thread

I think that MTD(f) or MTD(f)-like schemer are very perspective in
future. But in SmarThink it seems not to work. Because of SmarThink
1) Hasn't any mechanism to keep PV excluding hash-table; 2)
SmarThink hashing scheme isn't quite good to use MTD(f)-drive.
In critical case it frequently produces a larger tree than
current method. Anyway if your engine works well with MTD(f)
you can try some of my ideas. For example in some cases you can
try after first move fail low to search all remaining moves instead
of trying to determine exact score of the first move. Than you can
discover that the first move is the only move that has eval >=
starting bound. Sometimes it's a good idea to stop failing low and
try to determine move singularity. At vice versa, you can try to stop
failing high to find other instead of failed. Be sure that not
all zero-window searches are equal. Larger bound causes a faster
searching (it's obvious, but...).

About null-move. Now only one hint. You have seen, I think, that
in Crafty, for example, zero move search result is using only
if it >= beta. Why not to use this result if it >alpha, but <beta?
Interesting question? In MTD(f) practically usual zero-move works
exactly this way.

It's interesting: I think that in Fritz at least we can see some
non-well-known modifications of null-move search. It frequently
avoids zugzwang in positions that is absolutely ununderstandable
for standart scheme.

SmarThink before regular null-move search is trying to search
zero move to Depth=1 ply. Only if it causes result >= beta, than
SmarThink trying to search null-move to a full width. Anyway it's
not solving a most of null-move search problems.

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