jonathanmcdermid / Clovis

MIT License
4 stars 2 forks source link

Different PV's #4

Closed SzotsGabor closed 2 years ago

SzotsGabor commented 2 years ago

I have compiled the 1.3 sources which I found under Assets. My command line was: g++ .cpp tuner/.cpp -Ituner -O3 -march=native -flto -oClovis_1.3-x64-SzG.exe.

What I find strange is that my compile and yours produce different evaluations when issuing go depth 15. This is yours: id name Clovis v1.3 id author Jonathan McDermid uciok info depth 1 score cp 27 nodes 1 time 0 pv e2e4 info depth 2 score cp 0 nodes 22 time 1 pv e2e4 e7e5 info depth 3 score cp 32 nodes 117 time 1 pv d2d4 d7d5 c1g5 info depth 4 score cp 1 nodes 753 time 3 pv b1c3 g8f6 d2d4 d7d5 info depth 5 score cp 25 nodes 1714 time 5 pv b1c3 e7e5 e2e4 f8b4 c3d5 info depth 6 score cp 3 nodes 7768 time 22 pv e2e4 b8c6 g1f3 g8f6 f1d3 e7e5 info depth 7 score cp 23 nodes 13060 time 37 pv g1f3 d7d5 d2d4 b8c6 b1c3 c8g4 c1g5 info depth 8 score cp 4 nodes 26244 time 74 pv e2e4 e7e5 g1f3 g8f6 f3e5 f8d6 e5c4 f6e4 info depth 9 score cp 17 nodes 40329 time 111 pv e2e4 b8c6 g1f3 d7d5 e4d5 d8d5 b1c3 d5e6 f1e2 g8f6 info depth 10 score cp 7 nodes 67884 time 184 pv g1f3 d7d5 d2d4 g8f6 b1c3 c8f5 c1g5 b8c6 a1c1 f6e4 info depth 11 score cp 16 nodes 234088 time 694 pv g1f3 d7d5 d2d4 g8f6 b1c3 c8f5 c1g5 b8c6 a1c1 h7h6 g5h4 info depth 12 score cp 10 nodes 574780 time 1709 pv e2e4 e7e5 g1f3 g8f6 f1d3 f8d6 e1g1 e8g8 c2c3 b8c6 f3g5 a8b8 info depth 13 score cp 22 nodes 679322 time 1989 pv e2e4 e7e5 g1f3 g8f6 d2d4 d7d5 e4d5 e5d4 d1d4 d8d5 d4d5 f6d5 c1g5 info depth 14 score cp 12 nodes 1061898 time 3080 pv e2e4 e7e5 g1f3 g8f6 b1c3 b8c6 f1b5 f8b4 e1g1 e8g8 f1e1 c6d4 f3d4 e5d4 info depth 15 score cp 15 nodes 1768099 time 5121 pv e2e4 e7e5 g1f3 g8f6 f3e5 d7d6 e5c4 f6e4 f1d3 d6d5 e1g1 d8h4 c4e3 c8e6 b1c3 bestmove e2e4

And here is mine: id name Clovis v1.3 id author Jonathan McDermid uciok info depth 1 score cp 27 nodes 1 time 0 pv e2e4 info depth 2 score cp 0 nodes 22 time 0 pv e2e4 e7e5 info depth 3 score cp 31 nodes 77 time 0 pv e2e4 g8f6 f1d3 info depth 4 score cp 1 nodes 692 time 2 pv b1c3 g8f6 e2e4 e7e5 info depth 5 score cp 27 nodes 1734 time 4 pv b1c3 b8c6 e2e4 c6d4 c3d5 info depth 6 score cp 3 nodes 6291 time 13 pv e2e4 b8c6 g1f3 g8f6 f1d3 e7e5 info depth 7 score cp 23 nodes 14458 time 31 pv d2d4 d7d5 g1f3 c8g4 c1g5 b8c6 b1c3 info depth 8 score cp 5 nodes 24008 time 55 pv e2e4 e7e5 g1f3 g8f6 f1b5 f6e4 d1e2 a7a6 info depth 9 score cp 20 nodes 45313 time 107 pv e2e4 d7d5 e4d5 d8d5 b1c3 d5e5 f1e2 b8c6 g1f3 e5h5 info depth 10 score cp 11 nodes 73245 time 169 pv e2e4 b8c6 g1f3 g8f6 e4e5 f6e4 d2d3 e4c5 c1e3 e7e6 info depth 11 score cp 22 nodes 114595 time 269 pv e2e4 e7e5 g1f3 g8f6 f1d3 f8d6 e1g1 e8g8 b1c3 b8c6 f3g5 info depth 12 score cp 12 nodes 340602 time 867 pv b1c3 d7d5 d2d4 c8f5 g1f3 g8f6 c1f4 b8c6 e2e3 a8c8 f1d3 f5g4 info depth 13 score cp 16 nodes 863927 time 2152 pv g1f3 g8f6 e2e3 d7d5 d2d4 e7e6 f1d3 f8d6 e1g1 e8g8 b1d2 b8c6 f3g5 info depth 14 score cp 9 nodes 1807248 time 4584 pv g1f3 g8f6 e2e3 d7d5 d2d4 e7e6 f1d3 f8d6 e1g1 e8g8 b1c3 b8c6 f3g5 e6e5 info depth 15 score cp 21 nodes 4831200 time 12534 pv e2e4 e7e5 g1f3 b8c6 f1b5 g8f6 e1g1 a7a6 b5c6 d7c6 b1c3 c8g4 h2h3 g4h5 d2d3 bestmove e2e4

Any suggestions?

jonathanmcdermid commented 2 years ago

The seed used in random.h is not constant, so it will likely produce a different PV every time you run it. You can change the argument in std::srand() to make the seed constant. Is it standard practice to have a constant seed so PVs are always the same? I was under the impression that some variance was desirable to make sure the engine doesn't lose to the same string of moves every time its attempted.

SzotsGabor commented 2 years ago

'Is it standard practice to have a constant seed so PVs are always the same?'

I have no idea. You could ask that at CCC's Technical Dicussion section, I'm sure you'll get an answer.