Well, so I left out the "anymore", obviously there has been a time when MVV/LVA was quite popular, and perhaps considered top-of-the-bill. We could argue if Hydra counts as a serious engine. I would say it is an oddity. Comparing hardware implementations with PC software is comparing apples and oranges. Anyway, if people are still using pure MVV/LVA, it is not because they are not aware that better orderings exist, but do it for other reasons, such as code size (uMax), educational reasons (TSCP), hardware limitations (Hydra). That was my point.bob wrote:Can we stop with the blanket statements that are wrong? "no serious engine uses MVV/LVA". Let me name a few, from older to newer:
(1) Belle
(2) chiptest
(3) deep thought
(4) deep blue
(5) dark thought
(6) Hydra
Well, even pure MVV/LVA is certainly a viable technique that reliably suppresses search explosion in QS. But I doubt that amongst the orderings that do not take into account if pieces are defended, it would be the best ordering. Similar schemes that push HxL captures a bit down the line, seem hardly more difficult to implement in hardware. (E.g. sorting not on VV but on VV-0.5*AV only requres an extra 3-bit adder) Do you also have performance data on such 'improved' MVV/LVA schemes? It would be interesting to know by how much these outperform pure MVV/LVAbob wrote:MVV/LVA is the only viable solution when using special-purpose hardware. But plenty of programs have used it (my list above is not complete) with reasonable results. As I mentioned, I produced _real_ data on this comparison about 15 years ago, and SEE only improves on MVV/LVA by 10% if you don't do the prune losing captures trick And it is significantly faster. In fact, it is fast enough to be a "break-even" deal compared to SEE, without the bad capture pruning feature turned on...
Furthermore, keeping track of if pieces are defended or not does not seem so awfully difficult in hardware. (Not to say almost trivial. A cross-bar like 64x64 array of AND-OR ripple-carry propagators in 8 directions would suffice.) So using BLIND in stead of MVV/LVA seems also an option.
One can always come up with such a 'what if'. The NxR with a SEE of +2 obviously has the Rook defended, or it would have a SEE of +5. The probability that it would be exactly this Rook that is defending the Q is not a-priori any larger than the probability that the Q would be defending the R. In that case starting with QxQ would up the score of the second capture to +5.bob wrote:What if after QxQ, RxQ the NxR is no longer possible because the rook retreated to capture the queen. The best plan, period, is to search the move with the best potential gain. NxR is better than QxQ unless QxQ has a higher SEE score because the queen is undefended...
In the absence of hard statistcs, I consider it likely that arguments of this type (i.e. dependence of the various exchanges through sie effects) weaken your case more than they advance it. Exchanges make pieces disappear from the board, and (especially when heavy pieces disappear) this might alter the attack/defence status in many places on the board. This is generally in the avantage of the side that has the inititive, i.e. he who started the exchange, as he has first pick.
You have given me one idea, though: there is one case of obvious depenence that is also very easy to detect. This is where more captures are available to the same piece. Obviously, if you have the choice between QxQ (defended, SEE=0) and QxB (undefended, SEE=+3), it seems wise to try the QxB first. Although from a defensive point of few, the QxQ is safer. Who knows what that Q was attacking that had to remain defended by your Q. But this is not a-priori clear, it would have to be tested. To completely specify the new algorithm: if a HxL capture with a piece P has a positive SEE, go back to all LxH and ExE captures of that same piece, (which were ranked before it in the list based on their higher victim), to calculate their SEE as well, and let it replace the VV in their sort key.
The point is that if you can do QxQ, he can do it to. You cannot escape a QxQ being searched. It is either yours, of which you know the outcome (SEE=0), and to which he will have only one non-futile reply, or it is his in a side branch to the immediate recapture of the winnig exchange. Because he will be in an all node, and capturing something as big as Q will not be futile. And the SEE gives you no clue as how that might end, except that it can only end worse (as QxQ is at least equal).bob wrote:
I don't buy that either. The queen is not always _the_ piece that is causing difficulty. That is a dynamic characteristic of the position that you are attempting to generalize on and recognize using static criteria. alpha/beta is sensitive to producing scores outside the window as quickly as possible. You seem to be suggesting that playing moves that win more slowly are more efficient, which I don't buy at all.
So are you testing Tord's way (SEE only to weed losing captures out of the MVV/LVA ordering) or my way (replace victim value by SEE score for all LxH captures in the sort key), or both?bob wrote: However, there's apparently little reason to continue down this argument, although I will post my SEE + MVV/LVA results when they are done. Early results were worse, but I am running a lot of positions to be sure.