Author: Robert Hyatt
Date: 13:34:57 02/20/99
Go up one level in this thread
On February 20, 1999 at 11:08:30, Peter Kasinski wrote: >I am having problems interupting search at an arbitrary point. >Unless it completes the iteration I get strange results. Typically I get the PV >move and all is fine. Sometimes I get a PV move with a strange (usually very >low) score. And once in a while I get a moronic move with a low score. >I don't allow this before first iteration is completed. >Any idea what is going on? > >Thank you, >PK. this is easy and hard. When you decide to 'time out' all you have to do is start 'returning' to back your way out of the recursive calls. But you _must_ be certain that you know you are 'backing out'.. you do _not_ store any hash stuff on the way back, you do not test for cutoffs, you do not back up scores or PVs, you don't modify scores or the PV, ie you do _nothing_ but return. If you don't notice you are 'aborting' and update something you will get wildly bogus results... In crafty, I do this _everywhere_ I call Search: val=-Search(-beta,-alpha,etc).. if (abort_search) return(0); abort_search is a global variable that is set 'true' when the time check says 'stop searching. You _must_ put this after _every_ call to search(), quiesce() or any other recursive routine you might use to do selective stuff... that prevents any score/pv update after that variable has been set..
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.