I've made a little test. Baron with no IID vs Baron with recursive IID including some tricks I will explain:
Baron has a built in benchmarking command, that will do a fixed ply search on 10 position. For convenience I've taken these ten positions to make the comparison. On average the search will take 0.5, 1.5, 5, 15 and 45 seconds per position. I'm listing the number of nodes searched.
- Code: Select all
No IID IID Saving
1073998 1067600 0.5%
3476214 3322037 4.4%
11174134 10746308 3.8%
35143077 32445096 7.6%
109395491 97190097 11.2%
As you can see a more than 11% decrease in number of nodes in an on average 45 second search. And savings are rising on longer searches (as can be expected) so on tournament time control this should be really significant.
I'm doing IID everywhere where I do not have a hashmove and remaining depth is at least 2 ply. So also in nullwindow searches.
This picture has improved a bit after taking over Tord's recommendation above to only do IID in nullmove window searches if evaluation returns a value > alpha-pawnvalue. I use a reduced evaluation function for that purpose, which hardly takes time to execute.
Another trick has been posted by Ed Schroeder some time ago (also on his site). If you have a lot of depth left, don't reduce by two ply, but by dividing depth by 2. So my IID depth is the minimum of Depth/2 and Depth-2.
Richard.