Pruning a bad capture because it seems "bad" due to material considerations, took me about 2 seconds to refute, as a chess player. Let's consider the following position:You can't discard QxP in MVV/LVA, because it's very possible that the pawn is undefended, which would mean that QxP is a good move. Of course, if the pawn is defended, I doubt that you gain anything significant by searching this move at all. With a SEE, you can figure out if QxP is a losing capture, and if so, either order the capture so that it is searched last, or simply prune it.
[d]r5k1/2p2ppp/1p6/8/7q/7P/1Q3PP1/2R3K1 w - - 0 1
White is two pawns down, and basically lost; he just played Rf1-c1, in the hopes of snagging the two pawns on the queen-side. The CORRECT move int his position for black is Qh4-f4, which both defends pawn c7, and attacks rook c1, basically pinning the queen to b2 to keep defending the rook. Rustic finds this move in no-time, even in its current state with only material + PST evaluation:
Code: Select all
info score cp 230 depth 1 seldepth 4 time 0 nodes 71 nps 0 pv h4f4
info score cp 220 depth 2 seldepth 6 time 0 nodes 387 nps 0 pv h4f4 c1d1
info score cp 215 depth 3 seldepth 10 time 1 nodes 4710 nps 4710000 pv h4f4 g2g3 f4d6
info score cp 205 depth 4 seldepth 11 time 8 nodes 34353 nps 4294125 pv h4f4 g2g3 f4d6 c1e1
info score cp 220 depth 5 seldepth 12 time 63 nodes 297575 nps 4723413 pv h4f4 c1e1 a8d8 b2e5 f4e5 e1e5
info score cp 195 depth 6 seldepth 15 time 483 nodes 1962939 nps 4064056 pv h4f4 g2g3 f4d6 b2c2 c7c5 c2e4
info score cp 210 depth 7 seldepth 16 time 3608 nodes 16197700 nps 4489385 pv h4f4 c1e1 a8b8 b2b5 b8f8 b5d5 c7c5
info score cp 200 depth 8 seldepth 18 time 24281 nodes 94803316 nps 3904424 pv h4f4 g2g3 f4d6 b2c2 c7c5 c2e4 a8a2 c1e1
Let's say Black makes the colossal mistake of playing Ra8-a7 to defend the pawn, leading to this position:
[d]6k1/r1p2ppp/1p6/8/7q/7P/1Q3PP1/2R3K1 w - - 0 1
Because black now gives up the back rank, this opens the door to a tactical move, which loses both pawns and equalizes the game. Can you see it? Rustic can:
Code: Select all
info score cp -180 depth 1 seldepth 5 time 0 nodes 40 nps 0 pv b2e5
info score cp -190 depth 2 seldepth 8 time 0 nodes 995 nps 0 pv b2e5 c7c5
info score cp -105 depth 3 seldepth 9 time 0 nodes 3473 nps 0 pv b2b6 c7b6 c1c8 h4d8 c8d8
info score cp -10 depth 4 seldepth 11 time 7 nodes 30398 nps 4342571 pv b2b6 a7a8 c1c7 h4e4
info score cp 5 depth 5 seldepth 13 time 57 nodes 223776 nps 3925895 pv b2b6 a7a8 b6b7 a8d8 c1c7
info score cp -5 depth 6 seldepth 15 time 501 nodes 2079270 nps 4150240 pv b2b6 a7a8 b6c7 f7f5 c1c4 a8a1 c4c1 a1c1 c7c1
info score cp 0 depth 7 seldepth 17 time 4066 nodes 15705074 nps 3862537 pv b2b6 a7a8 b6c7 a8e8 c7c6 h4e4 c6e4 e8e4
info score cp -10 depth 8 seldepth 20 time 33879 nodes 136903079 nps 4040942 pv b2b6 a7a8 b6c7 a8e8 c1c4 h4g5 c7d6 g5f5
If you just evaluate SEE like so: Qb2xb6 +100 ... pawn defended ... c7xb6 ... now more captures... oh, -800. Bad move. Prune it.
In that case you prune your only chance of actually equalizing this position and taking advantage of black's blunder. You _CAN'T_ just prune a move on the only basis that it is a bad material exchange. On a purely material counting basis, Qb2xb6 is about the worst move you could ever make, but it works because c7xb6 DOESN'T work for black.
Is there something about SEE that I'm not SEE-ing correctly here?
The only thing you could do, is put Qb2xb6 last in the list, but then you put your best move last.