Author: Stuart Cracraft
Date: 08:40:09 07/25/04
So I made the change I read about in the archives where you timeout and backup a timeout value to unwind the recursion rapidly. I put the tests for timeout and immediate return of timeout value at the top of quiescence search and the top of the main search as well as stopping any new move being evaluated (in either) if a timeout had hit, from one of the prior tests being triggered. In that case, it also just immediately returns the timeout. At the same time, at the top of the search I modified it so that if there was a timeout, it would take the first move of the previous completely finished iteration as the move of the program -- rather than the prior behavior of taking the current best move backed up from the partial, time-interrupted, current variation. When I did the above, one thing didn't happen that I expected and one thing did that I was fearing. 1) my time continues to overstep by up to 50% or so for a fixed time search. I expected it to overstep by very little if any after the above change. 2) my moves obviously are frequently different now, picking the last iteration's fist move of the PV and the result on my standard test dropped from 93% to about 50%. So my questions are on #1, where is the best place to put the immediate returns if a timeout flag is set and where is the best palce to set that flag in search and quiescence. On #2, there must be a happy median, like "has it searched the pv from the prior iteration but changed its mind?" There must be some condition that would allow me to accept that change of mind. What is it? Thanks, Stuart
This page took 0.02 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.