Qsearch dynamic order besides MVV/LVA

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Aleks Peshkov
Posts: 887
Joined: Sun Nov 19, 2006 8:16 pm
Location: Russia

Qsearch dynamic order besides MVV/LVA

Post by Aleks Peshkov » Tue May 25, 2021 3:24 pm

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
Posts: 26570
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller

Re: Qsearch dynamic order besides MVV/LVA

Post by hgm » Tue May 25, 2021 8:03 pm

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.

Post Reply