Author: Sune Fischer
Date: 02:28:54 04/06/04
Go up one level in this thread
>> else Record(a,ALPHA_FLAG,0); >Here may be the problem and here you deviate from the "full fail-soft" >model as you did not collect the best of the scores < alpha. > >I actually made this post because of the way I do fail-soft and I am not >sure yet I got it right and it posed problems. > >My answer >========= > >Let x_eval = eval() score for the node.(so cannot ignore standpat ) >let best_searched_score be the best score for all moves searched. > >best_searched_score <= alpha You should keep a best_searched_score and check for this independently of alpha. Initialize it to x_eval and if score>best_searced_score you update the best_searched_score along with alpha. >so either :- >a) alpha = x_eval (when set after eval() ) >b) x_eval < alpha (when no alpha improvement and this is your a0) yes, adjusting alpha to x_eval would be good. >my hash is as follow:- > >if (x_eval >= best_searched_score){ > storehash(x_eval, EXACT, depth = 0); > return x_eval;//****** fail low >} > >storehash(best_searched_score, UPPER_BOUND, depth =0); >return best_searched_score;//****** fail low > >Two different way to fail low, but I like exact more than upper bound You shouldn't return on an exact score if you have more moves to search, so this goes to the end of the search. I would write it as: if (best_searched_score > alpha_origial){ storehash(best_searched_score, EXACT, depth = 0); } else { storehash(best_searched_score, UPPER_BOUND, depth =0); } return best_searched_score; //****** fail low or exact -S. >These are the subtleties (or erroneous method) I find. > >Rasjid
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.