Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: For Dan C. IID Test Results

Author: GeoffW

Date: 12:05:29 07/28/04

Go up one level in this thread


Hi

>Please describe IID as you see it.

OK I will have a stab.

As you know, good move ordering in Alpha/Beta search is very important to reduce
node counts. Therefore it is not a good idea to embark on a deep search when you
dont know what the likely best move is. (best move being the move stored as best
in the hash table, and searched first)
The idea therefore is similar to the normal iterative deepening, you detect when
the condition occurs and do a shallower search to figure out the best move
before you do the proper deeper search.

There are very few lines of code for IID
Here's my code snippet, sorry the HTML will probably mess up the indents

This is early in the search function, but after the hash table lookup though */

 /*Look to see if we are not a PV node and if we dont have a best move from
the hash table  */
 if ((depth >= 3) &&  (beta != alpha+1)  && (hashMove.u == 0) )
 {
   value = search( alpha, beta, (depth-2), doNull);

/* Research properly if this windowed search failed low, so that we know   we're
getting the best move, not just the move with the highest upper bound (which is
essentially random and depends on the search order.) */
   if (value < alpha)
    /* widen the search window to resolve the fail low */
    value = search( -MATE, alpha+1, (depth-2), doNull);

/* get the best move we have just found into hashmove so we can use it for now
move ordering in the proper deep search */
   hashMove = 	pv[ply][ply];
  }

 rest of the search function is here ..............

     regards Geoff



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.