Qsearch dynamic order besides MVV/LVA

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Aleks Peshkov
Posts: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Qsearch dynamic order besides MVV/LVA

Post by Aleks Peshkov »

What if we keep some additional piece information, for example keep list of pieces in order when they were last moved.
1) It makes sense to capture the last moved piece to avoid quiescent search explosion.
2) Attacks (and discovered attacks) of our own side last moved pieces are also make more sense to explore first.
I think the cases above are helping to avoid the repeating the same futile exchange lines in many similar but different positions.
User avatar
hgm
Posts: 27796
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Qsearch dynamic order besides MVV/LVA

Post by hgm »

This is a bit tricky. With null move you often leave very many valuable pieces hanging, and 'executing' such a 'hostage' is often a better answer than plain recapture. It depends a lot on what the last-moved piece attacks. But this can be taken into account directly, by upgrading the victim value with the value of the highest piece it attacks, and sorting by that. This way you avoid wasting time on capturing a Pawn that did not attack anything, just because it was the last-moved piece, before gobbling up a hanging Rook elsewhere.