Author: Mridul Muralidharan
Date: 17:16:35 12/29/03
Go up one level in this thread
On December 29, 2003 at 20:07:23, Mridul Muralidharan wrote: >On December 29, 2003 at 18:16:39, Tord Romstad wrote: > >>On December 29, 2003 at 16:01:08, Andrew Williams wrote: >>>I make sure that I have a legal move available before pruning stuff. >> >>This is good advice, and reminds me of an amusing bug I had in early versions of >>Gothmog >>(while I was still using normal futility pruning): In positions which were so >>bad that all >>moves were pruned because they had no chance of bringing the score anywhere >>close, >>to alpha, the engine thought: "I have no moves, but I'm not in check -- It's >>stalemate. >>Let's return 0". As a result, the engine would sometimes make horrible >>blunders, and >>print out PVs where it sacrificed almost all its pieces, with a draw score at >>the end of >>the line. >> >>Tord > >Ah ha ! >One of the first ches playing versions of emss had the very same bug :) >So I have company ;) > >Mridul And to answer the question on pruning. I would strongly advice against very basic forms of pruning in general and futility in particular since this seems to be the most famous. I did a bit of research on pruning , including lot of null move related tricks , king safety related tricks , etc , etc. In the end threw all of them out and decided against pruning. Mess is a very very slow searcher - so loss of nps while eciding this was not the deciding factor as is usually in the case with others. (definitely this did worsen situation a bit). In mess I have a very heavy qsearch , and moderately heavy eval (with diap , hiarcs around - cant call my eval big :) ) This along with pruning was disasterous for mess : even very very conservative forms. Well not all methods were flawed , but there were too many "if & if & if" conditions and crazy patterns (which sadly did appear in complex middle games) where they used to fail - so in end decided to remove them. Note - these were related only to mess - maybe for others it will vary. Regards Mridul PS : Geoff , instead of directly calling " takeBack(); /* try next moved at this depth */ continue; " I think the usual convention with (Extended) futility pruning/Razoring is to call QSearch here ....
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.