Author: Tony Werten
Date: 08:53:01 11/12/04
Go up one level in this thread
On November 11, 2004 at 14:06:53, milix wrote: >The below pseudocode (slightly modified) comes from the paper >'Fail High Reductions' of Rainer Feldmann, 1996 > >int FHR_negascout(alpha, beta, depth) >{ > e = evaluate(); > t = threat(); > d = depth; > fh_node = false; > if (!in_check AND alpha==beta-1 AND e-t >= beta) { > fh_node = true; > d = d-1; > } > if (d <= 0) return quiescent(alpha, beta); > N = generate_moves(); > low = alpha; high = beta; best = -INF; > for_all_moves m[i], i=1..N { > make_move(m[i]); > score = -FHR_negascout(-high, -low, d-1); > if (score>low AND score<beta AND i>1) { > score = -FHR_negascout(-beta, -score, depth-1); > } > undo_move(m[i]); > low = max(low,score); best = max(best,score); > if (best >= beta) return best; > high = low+1; > } > return best; >} > >My question is about the condition: > if (score>low AND score<beta AND i>1) > >Why score>low and i>1? I think that we expect this node to fail high, >so if it didn't we must research. No, rather the opposite. If you don't fail high, the heuristic was wrong/ search is being unpredictive. >Same for the first move. >So if the above are true the condition of research must be: > if ((fh_node AND score<beta) OR (score>low AND score<beta AND i>1)) > >Am I missing something? Yes, fh_node is a (crappy) heuristic for a fail high node, while (score>alpha etc ) is the real stuff. The fact that fh_node is true doesn't mean the search actually returned with a score>alpha. If it does, you don't want to do a "research" but rather a "how much better is the position" since you were only searching it before with the question "is it better",expecting it to be worse. If the score returned <alpha, there is no point in researching since it can't change the score because it again will produce a score<alpha. If the score returned >beta, there is no point in researching since it again will produce a too big score. If i=1, there is no point in researching since you weren't searching with the "is it better" question before but with "what is the exact score" question ( What you do for all positions where beta!=alpha+1 and you're trying the first move.) Tony > >Thanks in advance, >Anastasios Milikas
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.