Page 1 of 1

is LVA as in MVV-LVA useless ?

Posted: Tue Jun 04, 2019 10:24 am
by MahmoudUthman
Looking at SF's code it seems to be ordering captures & promotions using MVV only + CaptureHistory, and according to this pull the LVA part is insignificant or even useless, unfortunately I don't have the resources to test such a -"is (such a) right here or should it be just (such)"- subtle difference in Elo, has anyone else tried using MVV only? and if so, how consisting were the results with SF's one?
Also in case of MVV only ordering do you consider the Victim in promotion=V-(promoted piece), or just V ?

Re: is LVA as in MVV-LVA useless ?

Posted: Tue Jun 04, 2019 5:26 pm
by Joost Buijs
I don't see any reason why Stockfish prefers MVV over MVV-LVA, they talk about code complexity but to me it seems that one additional subtraction is not very complex at all, probably it tested 0.1 Elo better.

Re: is LVA as in MVV-LVA useless ?

Posted: Tue Jun 04, 2019 7:58 pm
by mar
Joost Buijs wrote:
Tue Jun 04, 2019 5:26 pm
I don't see any reason why Stockfish prefers MVV over MVV-LVA, they talk about code complexity but to me it seems that one additional subtraction is not very complex at all, probably it tested 0.1 Elo better.
Exactly, LVA serves a sole purpose to resolve ties. A couple of instructions and 70k games later, big mouth arrogant idiots "debunk myths", give me a break :D

Re: is LVA as in MVV-LVA useless ?

Posted: Tue Jun 04, 2019 8:48 pm
by Joerg Oster
mar wrote:
Tue Jun 04, 2019 7:58 pm
Joost Buijs wrote:
Tue Jun 04, 2019 5:26 pm
I don't see any reason why Stockfish prefers MVV over MVV-LVA, they talk about code complexity but to me it seems that one additional subtraction is not very complex at all, probably it tested 0.1 Elo better.
Exactly, LVA serves a sole purpose to resolve ties. A couple of instructions and 70k games later, big mouth arrogant idiots "debunk myths", give me a break :D
LOL :D

Re: is LVA as in MVV-LVA useless ?

Posted: Tue Jun 04, 2019 9:57 pm
by AndrewGrant
I would make the argument that Stockfish as an engine is powerful enough to not rely on relatively simple methods of move sorting. I joined the chess world a bit late to see the massive elo gains from adding various continuation histories to Stockfish, but I think it would be naive to not consider the possibility that Stockfish's move history for captures may far exceed trivial tie breaking rules of MVV-LVA.

Personally, I still use MVV-LVA, with only some minor nuance for dealing with promotions and enpassant. Although, I have not tried capture history in any form, as I have plenty of other ideas to play around with before taking something so non-ubiquitous from Stockfish.

Re: is LVA as in MVV-LVA useless ?

Posted: Wed Jun 05, 2019 1:33 am
by mjlef
MahmoudUthman wrote:
Tue Jun 04, 2019 10:24 am
Looking at SF's code it seems to be ordering captures & promotions using MVV only + CaptureHistory, and according to this pull the LVA part is insignificant or even useless, unfortunately I don't have the resources to test such a -"is (such a) right here or should it be just (such)"- subtle difference in Elo, has anyone else tried using MVV only? and if so, how consisting were the results with SF's one?
Also in case of MVV only ordering do you consider the Victim in promotion=V-(promoted piece), or just V ?
Capture move ordering has changed a few times in Komodo. The last version before a recent change used a form of MVV - LVA, but did it without a subtraction. It merely generated all pawn capturing things first, scoring the move a value equivalent as MVV, then all knight capturings, then bishop, rook, queen and king in that order. Then do a stable sort, which automatically keeps the LVA first as a tie break. Of course stable sorts can sometimes be slower, but few captures are possible in most positions and the time savings of having to do the subtraction did speed it up a bit.

Mark

Re: is LVA as in MVV-LVA useless ?

Posted: Sun Jun 09, 2019 6:15 pm
by konsolas
It's strange that SEE is still used to differentiate good captures from bad captures, yet its score somehow isn't useful in ordering the moves.

Re: is LVA as in MVV-LVA useless ?

Posted: Sun Jun 09, 2019 7:41 pm
by Joost Buijs
SEE is perfectly useable for ordering captures, the problem is that you have to calculate SEE for all captures before you can sort them and this is somewhat slower than calculating MVV-LVA for all captures. In my main search I use SEE throughout for ordering captures, in quiescence I use MVV-LVA for ordering and SEE to determine if a capture is worth playing or not.

Re: is LVA as in MVV-LVA useless ?

Posted: Sun Jun 09, 2019 8:29 pm
by xr_a_y
Joost Buijs wrote:
Sun Jun 09, 2019 7:41 pm
SEE is perfectly useable for ordering captures, the problem is that you have to calculate SEE for all captures before you can sort them and this is somewhat slower than calculating MVV-LVA for all captures. In my main search I use SEE throughout for ordering captures, in quiescence I use MVV-LVA for ordering and SEE to determine if a capture is worth playing or not.
Same for me

Re: is LVA as in MVV-LVA useless ?

Posted: Mon Jun 10, 2019 3:52 pm
by jorose
I recently tried using my full blown move ordering (just without SEE) in QSearch, but it scored something like -8.5 +- 6 at the end of my test. I would imagine the reason was simply how expensive the calculation is.

I am currently intending to train a set of weights on only root QS (as in the first call to QS, not any of the recursive QS calls) to figure out which features are most relevant to predict whether each respective move will either fail high or improve on standing pat. I don't know what we care about more in QS, as while we want to fail high, it also seems counterintuitive for prior move ordering to depend on parts of the search independent of the current board position. Based on the features I have, it could learn MVV-LVA or something much more complicated.

I will get back to this thread with my findings once I have done this.