Page 1 of 1

Internal Iterative Deepening Payoffs

Posted: Sat Feb 01, 2014 12:08 am
by CDaley11
I recently added IID into my chess engine. I've noticed that it only starts to payoff at large depths, and actually makes the program slower at shallower depths. Is this normal?

For example, with IID turned off it takes my engine ~5 seconds to search to a depth of 10 from the start position. With IID on it takes ~6 seconds.
However, with IID off it takes ~45 seconds to search to a depth of 11 from the start depth, and only ~30 seconds with IID on.

With the current implementation, my engine only uses IID as a last resort if no move from the tt was found, and no killer moves for the current position exist. Is this normal performance with IID?

Re: Internal Iterative Deepening Payoffs

Posted: Sat Feb 01, 2014 4:29 pm
by hyatt
Overhead seems VERY high. for those shallow depths, IID should never be used. You should always have a best move from the tt until you get near the tips of the tree, and you shouldn't be doing IID out that far. The most common place for IID to be triggered is where the search fails low on the first move and you have to re-search. Or where you fail high at the root, but then you don't get a score back. In a normal search, IID is not triggered.

Re: Internal Iterative Deepening Payoffs

Posted: Sat Feb 01, 2014 7:26 pm
by CDaley11
Ok, thanks for your help! I'll try changing my engine so that it only uses IID in those specific circumstances.

Re: Internal Iterative Deepening Payoffs

Posted: Sat Feb 01, 2014 10:44 pm
by hyatt
CDaley11 wrote:Ok, thanks for your help! I'll try changing my engine so that it only uses IID in those specific circumstances.
My primary condition is alpha != beta - 1, which means it is a PV type node, and hash_hmove == 0, no best move from ttable.

Re: Internal Iterative Deepening Payoffs

Posted: Sat Mar 05, 2022 10:35 am
by Gabrielaaaa
i understand the concept of IID, but i dont know where to put the code in the nega max, is it after you generate the possible moves?