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 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.