By all other signs, it seems to be working well. I'm getting a pretty nice reduction in nodes searched and time to depth. For example for the following position:
[fen]rn1qkb1r/pp2pppp/5n2/3p1b2/3P4/2N1P3/PP3PPP/R1BQKBNR w KQkq - 0 1[/fen]
Blunder gives the following output without PVS:
Code: Select all
go wtime 300000 btime 300000
info depth 1 seldepth 4 score cp 29 time 5 nodes 108
info depth 2 seldepth 5 score cp 9 time 7 nodes 665
info depth 3 seldepth 7 score cp 22 time 8 nodes 4646
info depth 4 seldepth 9 score cp 13 time 17 nodes 17120
info depth 5 seldepth 10 score cp 34 time 33 nodes 52474
info depth 6 seldepth 12 score cp 31 time 142 nodes 236423
info depth 7 seldepth 12 score cp 35 time 354 nodes 769418
info depth 8 seldepth 14 score cp 36 time 1371 nodes 3158661
info depth 9 seldepth 16 score cp 37 time 3398 nodes 7419403
Bestmove: g1e2
Time: 7501ms
Code: Select all
go wtime 300000 btime 300000
info depth 1 seldepth 4 score cp 29 time 1 nodes 110
info depth 2 seldepth 4 score cp 9 time 8 nodes 730
info depth 3 seldepth 7 score cp 22 time 8 nodes 4579
info depth 4 seldepth 9 score cp 13 time 15 nodes 16896
info depth 5 seldepth 9 score cp 34 time 30 nodes 44778
info depth 6 seldepth 11 score cp 31 time 113 nodes 195962
info depth 7 seldepth 13 score cp 35 time 208 nodes 469929
info depth 8 seldepth 14 score cp 36 time 675 nodes 1718405
info depth 9 seldepth 17 score cp 37 time 2205 nodes 5507529
Bestmove: g1e2
Time: 7501ms
I would post a snippet of my PVS search, but I'm pretty confident that's correct and another part of my program is causing a bug, so my full current search file can be found here:
So far, I've tried stripping the search of everything but basic move ordering (MVV-LVA), but I still didn't see much of an Elo gain. I've also heard that the transposition table can cause issues and so I've disabled it but also didn't get an improvement in play.
It seems I either have a nasty bug hiding somewhere in my program, or I'm unaware of certain cases where PVS isn't a win.