Author: milix
Date: 12:46:18 11/11/04
Go up one level in this thread
On November 11, 2004 at 15:37:47, Alessandro Damiani wrote: >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. 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? >> > >NegaScout: >i = 1: this is the first move. it is searched with a full window. >i > 1: for the remaining moves the null-window test is performed. if the score >is better than the current best score then the move is researched with a full >window. > >One invariant is: alpha <= low >With this, score > low implies score > alpha. > >Alessandro Hi Alessandro My question is: are we really need score > low(alpha) and score<beta to research or just score<beta? Remember this node is a fail high node.
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.