Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question: When to Use Internal Iterative Deepening

Author: Tim Foden

Date: 00:03:16 02/13/01

Go up one level in this thread


On February 13, 2001 at 00:16:24, Robert Hyatt wrote:

>On February 12, 2001 at 23:00:36, William Bryant wrote:
>
>>On February 12, 2001 at 22:39:21, William Bryant wrote:
>>
>>>My understand is, Internal Iterataive Deepening is used when searching the
>>>root PV node and you encounter a position for which there is no hash table
>>>best move.  Specifically, this is done during the full width part of the
>>>tree (rather than the PVS part of the search).
>>>
>>>My program at present tests for this by comparing beta to alpha.
>>>ie if (beta == alpha+1) then this is the PVS part of the tree and IID should
>>>be skipped.
>>>
>>>This doesn't help at all so I think I'm missing something in the implementation.
>>>
>>>Any comments or suggestions would be appreciated.
>>>
>>>William
>>>wbryant@ix.netcom.com
>>
>>For Clarity,
>>
>>if ((there_is_no_best_move) && (beta != alpha + 1)) {
>>	//do internal iterative deepening
>>	}
>>
>>William
>
>
>That is almost what I do...
>
>  if (tree->hash_move[ply]==0 && do_null && depth>=3*INCPLY) do {
>    if (ply & 1) {
>      if (alpha!=root_alpha || beta!=root_beta) break;
>    }
>    else {
>      if (alpha!=-root_beta || beta!=-root_alpha) break;
>    }
>
>Which says (a) no hash move;  (b) null-move is legal here (which means the
>move at the previous ply was _not_ a null-move;  (c) 3 plies of depth left
>to search (or more);  (d) alpha and beta are _exactly_ as they were at the
>start of the iteration.

I think I understand the reasons for (a), (c) and (d) above.  I'm note sure
about (b) -- why do we want to make sure that the previous ply was not a null
move?

Cheers, Tim.



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.