Geschrieben von:/Posted by: Dann Corbit at 28 July 2004 02:27:16:
Als Antwort auf:/In reply to: Re: Modified Scidlet (added IID) geschrieben von:/posted by: Geoff at 24. July 2004 18:17:
Hello Dan
Any chance you could post a position or two where there is a measureable speed up to depth x, with and without IID.
According to my understanding adding IID should just be something like the code below. I put this in my seach function just after getting a possible hash move, but before the Null move code.
/* IID experiment */
if ((depth >= 3) && (alpha != beta+1) && (hashMove.u == 0))
{
value = -search(-alpha-1, -alpha, (depth-2), doNull);
}
It not only didnt help my engine, it had a pretty severe adverse effect. No doubt I have probably got something wrong in my understanding of the idea, or the code inverted, backwards or upside down in someway

I did try tinkering with doNull ,making it fixed as TRUE or FALSE
also tinkered with the (alpha != beta+1) clause, no joy in any experiment
I think a zero width search is a waste of time. In fact, Colin's method has a research in it:
/* ----------==== INTERNAL ITERATIVE DEEPENING ====----------- */
/* If we're not doing a NULL move and we don't have a hash move and we're at least 3
* ply away from the quiescence search, then try to get a good guess for the best move
* by doing a shallower search from here. */
if (USE_IID && hashmove==NO_MOVE && NullDepth==0 && depth >= THREEPLY && Skill>8 && !bRushed) {
score = Search(B,talpha,tbeta,depth - TWOPLY,ply,inchk,0,0,LastMove);
/* Re-search properly if the previous search failed low, so that we know we're getting
* a good move, not just the move with the highest upper bound (which is essentially
* random and depends on the search order.) */
if (score