What do you use IID for

Discussion of chess software programming and technical issues.

Moderator: Ras

jdart
Posts: 4423
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: What do you use IID for

Post by jdart »

One would have to find moves that leave pieces hanging and reduce them by 4 plies to get the same effect.
SEE can be used to determine if a move hangs a piece (somewhat inexactly).

--Jon
User avatar
hgm
Posts: 28461
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What do you use IID for

Post by hgm »

You are absolutely correct that this is better done in the child, but this basically applies to regular LMR as well. At least when it is implemented as proposed by Tord, using the 'tactical connection' exempting. It also becomes apparent only in the daughter if refutations are tactically connected. So I always implement all these kind of reductions in the daughter, to eliminate needless repetitive calls to search the same position. Re-searching is always a waste of prior effort (generating moves that were already generated, subjecting them to SEE, etc.).
Daniel Shawul
Posts: 4186
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: What do you use IID for

Post by Daniel Shawul »

jdart wrote:
One would have to find moves that leave pieces hanging and reduce them by 4 plies to get the same effect.
SEE can be used to determine if a move hangs a piece (somewhat inexactly).

--Jon
I think it will require a full-board SEE, since the move to be reduced is one that ignores a hanging piece elsewhere. Taking HG's observation of equivalence to LMR, one maybe able to get the same effect using full board swap to sort moves and put those that leave a piece hanging to the end of the list. My LMR reaches reduction depths of 4 there, so if those moves are indeed bad they should fail low.
Daniel Shawul
Posts: 4186
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Is there a grand unified theory of prunings?

Post by Daniel Shawul »

Ok don't laugh, but is it possible that all prunings and reductions can be unified into one, sort of grand unified theory (GUT) of prunings/reductions of all chess engines past and present :)? Nullmove seems to be an exception so that can be taken as the 'quantum' obstacle. That escalated quickly, but on a serious not how many times have you heard this pruning overlaps with that one. Some of them could be reasoned to be equivalent with the only difference being the time wasted in makemove. eg. lazyeval/futility, fail_high_redcutions/nullmove, Reduced search failhigh pruning/LMR, extending some moves vs reducing the rest etc... We all do a bunch of those that happen to work for us, and probably never look back to reason why this pruning and that work well. Other reason for a particular choice could be the degree of aggresivienss that one could apply using a certain pruning, ease of applying the method etc.

Say one starts with a version of LMR that reduces every other move by 1 ply (a very aggresive version), then extensions are applied on top by limiting (not completely turning off) the amont of reductions to candidate moves for extension. Safe capture moves / checks could be fully deserving of not being reduced but , if the reductions elsewhere are very aggresive it maybe necessary to reduce them to to balance the tree. Then bring in the fail-high prunings to their parents to incorporate them into LMR etc.