Author: Robert Hyatt
Date: 09:30:06 08/26/99
Go up one level in this thread
On August 26, 1999 at 03:30:13, Inmann Werner wrote: >On August 25, 1999 at 10:59:45, Robert Hyatt wrote: > >>On August 25, 1999 at 08:21:32, Bas Hamstra wrote: >> >>>My program returns sometimes values outside (a,b), for example MATE. I believe >>>generally when you allow this, it is called "fail-soft". What is the advantage >>>of it? >>> >>>I vaguely have read somewhere that the advantage lies in better bounds >>>information. In interprete that as: you put better bound info in your hashtable. >>>Is that correct? If so, is it a factor? >>> >>>Secondly: I use simple alpha beta (not even pvs) with an aspiration window. Now >>>at some testposition it fails high at the root and score turns out to be 250. >>>New aspiration window is set (200, 300). >>> >>>Now it fails low. However: full (-inf,inf) gives 243!! >>> >>>I use no pruning at all. Could the cause be the returning of values outside >>>(a,b)? I think my basic routines are correct, including hashtable. Only thing I >>>do is strip losing captures from the qsearch. >>> >>>Last: *if* fail soft has advantages, what are the disadvantages? >>> >>>Regards, >>>Bas Hamstra. >> >> >>The advantages are minimal but do exist. >> >>1. when you fail high or low, you have some 'estimate' of how far outside >>the window the true score will end up, so that you might choose to avoid >>setting beta to +inf or alpha to -inf, for example.. >> >>2. you get slightly better bound information stored in the hash table, so >>that there is a better chance that these bounds will be used later. >> > >But isn't that risky. I thought, each score outside alpha-beta can be incorrect, >and then store it in Hashtables for bounds? Can't that give irregular things? > >Werner No.. in the alpha/beta framework, if you get a score < alpha, you can certainly store a bound that says <= score, rather than <= alpha, and be totally correct. Because you _did_ find a score < alpha, and there might be scores even worse than that... Ditto for scores > beta... I have noticed no problems with this at all. I switched to fail-soft when I experimented with mtd(f) a couple of years ago.. and left it in because it worked the same as non-fail-soft and I didn't have to undo all the changes (if value > beta return beta; becomes if value > beta return value;, for example..) > >>3. if you try mtd(f) it is critical to get the better 'estimate'...
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.