BubbaTough wrote:bob wrote:BubbaTough wrote:Do not discard any pawn captures/promotions; just try them all without bothering with a SEE score.
How can a pawn capture can ever be losing, and at worst not even (under SEE)?
Hi Brian,
When I tried a superset of this (don't do SEE when capturing a piece >= the capturer) it did not seem to help (in fact it hurt results slightly) assumably due to move ordering in the Q search. Has your finding been different?
-Sam
I suspect he doesn't use that score for ordering, just for inclusion/exclusion. Most are using MVV/LVA to order the captures that pass the inclusion / exclusion test, so the above is just an efficiency issue for me. No reason to use Swap() to evaluate a capture if it is pxanything, as it can't possibly be a SEE loser. And since we don't need the SEE score if we know it doesn't lose material, it passes the inclusion test and we resort to MVV/LVA which doesn't change at all so long as you don't exclude moves you would have previously included.
I found that his test simply made crafty slightly faster, no change in total nodes searched whatsoever.
Ahh. It is unintuitive to me that MVV/LVA is better than see order. It seems to me if you are going to go through the bother of doing SEE, you might as well use the superior information. Alas, intuition is not always right. If you are going to skip SEE for pawn captures, why not skip SEE for the superset of cases I described: capturer <= captured. I suspect it will very minorly speed up your very minor crafty speedup

.
-Sam
There have been a ton of discussions on this, but the bottom line is that there is definitely value in capturing the highest values piece first unless it is actually losing. Put the losers late in the list, but everything else you might as well use MVV/LVA. There is a very minor reduction in nodes searched when done this way - hardly noticeably but many program authors have noticed it.
But you can also do optimizations on see() if all you want to know is whether a move is losing. So you might get a very minor reduction in nodes, and in addition a minor speedup - you can get your cake and eat it too!
I agree that it is unintuitive why a winning capture could be better than an even capture - for instance QxQ is better than PxN even if neither is losing. But the answer seems to be two-fold:
1. By capturing the queen first, you reduce the tree - no queen running around now.
2. Delaying PxN is not the same as throwing it away - it will still be possible on the next move as the opponent must respond to QxQ. So little real damage has been done.
It's probably the case that in many positions PxN will have the greatest benefit to tree size, but statistical evidence seems to indicate that on average QxQ is still best, even if the Queen is subject to recapture. Probably because if you don't take the queen now, the queen can stir up more tactics, captures, etc. The trick is to reduce the tree as soon as possible by getting rid of the big pieces and everything else is very quickly played out.
Does that make more sense now?