P. Villanueva wrote:I´m also trying SEE and having no good results.
I´ve searched your position with a plain PVS algorithm (no null-move, no transposition table, no futility pruning, no LMR). I used SEE for delaying losing captures in alfabeta search and skiping them in quiesce.
The move ordering was MVV/LVA, killer, promotions, history.
I get these results:
Code: Select all
[...]
8 70 782 4863009 e1b4 d7b6 b4e4 c7c6 d3e5 f6e5 e4e5 h8e5 e2e5
9 60 3816 21057382 e1b4 d7b6 b4e4 c7c6 d3e5 f6e5 e4e5 h8e5 e2e5 b6c4
NPS: 601019
Tiempo: 6000
Nodos: 36061184
Without SEE
Code: Select all
[...]
8 70 770 6789137 e1b4 d7b6 b4e4 c7c6 d3e5 f6e5 e4e5 h8e5 e2e5
9 60 3864 32465159 e1b4 d7b6 b4e4 c7c6 d3e5 f6e5 e4e5 h8e5 e2e5 b6c4
NPS: 853947
Tiempo: 6000
Nodos: 51236864
I got a noticeable reduction in nodes for each depth, but the terrible drop in terms of NPS avoid any profit.
I would compare with and without SEE using a fixed depth search, not fixed time as you did. Otherwise you can't tell which version uses less time for the same number of iterations, which would be crucial in my opinion to judge whether SEE helps in your case (for that single position - see below) by returning the same result faster, and therefore being able to search somewhat deeper.
Second point is that doing a comparison based on only one test position is usually not sufficient to draw any conclusion from it. You should use a larger test set at least, but even better in my opinion would be to play a statistically significant number of games.
Also it is difficult for the reader to judge about your results since it is unknown at which point in time your program prints a new PV line:
a) immediately if a new root move improves the old PV, or
b) only at the end of each iteration.
I would assume you do a), which implies that the times that were needed for completing a whole iteration are not visible directly.
Sven