New engine: Mora

Discussion of anything and everything relating to chess playing software and machines.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
jp
Posts: 754
Joined: Mon Apr 23, 2018 5:54 am

Re: New engine: Mora

Post by jp » Thu Sep 19, 2019 4:45 am

gonzaloarro wrote:
Wed Sep 18, 2019 4:50 am
MikeB wrote:
Tue Sep 17, 2019 10:49 pm
Do you know your searches are non-deterministic with one core/thread ( at least for me) .
I think I know why. It's because the set of Zobrist keys used for hashing are generated at random when the engine starts. For 2 different executions of the program, the entries in the tranposition table are going to be different. The final results should be the same if the engine would inspect the whole search tree no matter the transposition table, but I also used some pruning techniques. So when you combine that with different values from the tranposition table it can finally lead to non deterministic searches.

Non determinism was definitely a big problem when I had to test the engine, but I think it shouldn't affect the strength.
What does Stockfish (or other open-source engines) do? Is there an easy way to hack SF so you can turn on non-determinism in they way your engine has it? Sometimes you want it (e.g. playing a bookless match), and maybe you want more than just multi-threading to provide it.

MikeB
Posts: 3391
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: New engine: Mora

Post by MikeB » Thu Sep 19, 2019 3:42 pm

jp wrote:
Thu Sep 19, 2019 4:45 am
gonzaloarro wrote:
Wed Sep 18, 2019 4:50 am
MikeB wrote:
Tue Sep 17, 2019 10:49 pm
Do you know your searches are non-deterministic with one core/thread ( at least for me) .
I think I know why. It's because the set of Zobrist keys used for hashing are generated at random when the engine starts. For 2 different executions of the program, the entries in the tranposition table are going to be different. The final results should be the same if the engine would inspect the whole search tree no matter the transposition table, but I also used some pruning techniques. So when you combine that with different values from the tranposition table it can finally lead to non deterministic searches.

Non determinism was definitely a big problem when I had to test the engine, but I think it shouldn't affect the strength.
What does Stockfish (or other open-source engines) do? Is there an easy way to hack SF so you can turn on non-determinism in they way your engine has it? Sometimes you want it (e.g. playing a bookless match), and maybe you want more than just multi-threading to provide it.
Honey X5j has a "variety" option which is used with a "Jekyll & Hyde"option to maximize variety . The settings below are the max setting for max variety and it plays crazy moves often ...a good setting for more normal play is using 8 or below for both. If either setting is set to zero - it is off.

start Honey

Code: Select all

Mac-Pro:cluster.mfb michaelbyrne$ Honey-X5j
Honey X5j by M. Byrne and scores of others...
set Variety 15
Confirmation: Variety set to 15  // value 0 is off, value 15 is max variety
set Jekyll_&_Hyde 15
Confirmation: Jekyll_&_Hyde set to 15 //value 0 is off , value 15 is max craziness 
set Clean_Search true   // just noticed this needs to be fixed , next update coming soon 
Confirmation: Clean_Search set to true
set Minimal_Output true
Confirmation: Minimal_Output set to true
1st run
max variety - will play crazy moves

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5650 nodes 58 nps 29000 tbhits 0 time 2 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 5622 nodes 125 nps 62500 tbhits 0 time 2 pv e2e4 b7b6 f1c4
info depth 4 seldepth 4 multipv 1 score cp 5296 nodes 448 nps 224000 tbhits 0 time 2 pv e2e4 e7e6 f1c4 g7g6
info depth 5 seldepth 5 multipv 1 score cp 5655 lowerbound nodes 472 nps 157333 tbhits 0 time 3 pv e2e4 e7e6 f1c4 g7g6 d1f3
info depth 6 seldepth 8 multipv 1 score cp 5711 lowerbound nodes 718 nps 179500 tbhits 0 time 4 pv e2e3 e7e6 e3e4 d7d6 b2b4
info depth 7 seldepth 17 multipv 1 score cp 6144 lowerbound nodes 5257 nps 404384 tbhits 0 time 13 pv d2d4 d7d5 e2e3 b7b6 c2c3 c8d7 d1d3
info depth 8 seldepth 28 multipv 1 score cp 5695 nodes 17397 nps 457815 tbhits 0 time 38 pv c2c3 b7b6 d2d4 e7e6 d1a4 g7g6
info depth 9 seldepth 17 multipv 1 score cp 5783 lowerbound nodes 18436 nps 449658 tbhits 0 time 41 pv c2c3 b7b6 e2e4 e7e6 d2d3 c8b7 g1e2 g7g6 d1b3 g8e7 b3a4 b7c6 a4d4
info depth 10 seldepth 25 multipv 1 score cp 5971 lowerbound nodes 24120 nps 455094 tbhits 0 time 53 pv c2c3 b7b6 e2e4 e7e6 d2d3 c8b7 g1f3 g8e7 b1a3 g7g6 a1b1 c7c5 c1d2
info depth 11 seldepth 32 multipv 1 score cp 6081 lowerbound nodes 30510 nps 455373 tbhits 0 time 67 pv c2c3 b7b6 e2e4 e7e6 d2d4 g8e7 f1d3 e7g6 g1e2 f8e7 e1g1 e8g8 e2f4 g6f4 c1f4 c8b7 f1e1
info depth 12 seldepth 33 multipv 1 score cp 6341 lowerbound nodes 38974 nps 447977 tbhits 0 time 87 pv c2c3 b7b6 e2e4 e7e6 d2d4 g8e7 f1d3 e7g6 d3c2 f8e7 g1e2 e8g8 e4e5
bestmove c2c3 ponder b7b6

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 20000 tbhits 0 time 1 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 6014 nodes 77 nps 77000 tbhits 0 time 1 pv c2c4 d7d6
info depth 3 seldepth 4 multipv 1 score cp 6014 nodes 132 nps 132000 tbhits 0 time 1 pv c2c4 d7d6 d1a4 b7b5 c4b5
info depth 4 seldepth 5 multipv 1 score cp 5455 nodes 358 nps 179000 tbhits 0 time 2 pv c2c3 d7d6 d1a4 b7b5 a4a3
info depth 5 seldepth 6 multipv 1 score cp 5451 nodes 602 nps 301000 tbhits 0 time 2 pv e2e4 d7d6 c2c3 b8c6 d1a4
info depth 6 seldepth 8 multipv 1 score cp 5747 lowerbound nodes 853 nps 284333 tbhits 0 time 3 pv a2a3 d7d5 e2e4 b8c6 e4d5 d8d5
info depth 7 seldepth 16 multipv 1 score cp 5630 lowerbound nodes 2050 nps 341666 tbhits 0 time 6 pv g1f3 d7d6 e2e3 g8f6 e3e4 f6e4
info depth 8 seldepth 21 multipv 1 score cp 5715 lowerbound nodes 4234 nps 384909 tbhits 0 time 11 pv g1f3 d7d6 e2e3 g8f6 e3e4 b8c6 f1c4 f6e4 e1g1 b7b5 f1e1 b5c4 e1e4 f7f6 e4c4 c6e5 f3e5
info depth 9 seldepth 27 multipv 1 score cp 5447 lowerbound nodes 15826 nps 452171 tbhits 0 time 35 pv e2e4 b8c6 a2a3 e7e5 g1f3 f8c5 c2c3 g8f6 d2d4
info depth 10 seldepth 42 multipv 1 score cp 5464 lowerbound nodes 49461 nps 426387 tbhits 0 time 116 pv a2a3 d7d5 e2e3 e7e5 d1h5 c7c6 e3e4
info depth 11 seldepth 37 multipv 1 score cp 5521 lowerbound nodes 109628 nps 421646 tbhits 0 time 260 pv a2a3 e7e6 e2e4 d8h4 g1f3 h4e4 d1e2 e4c2 b1c3 f8e7 e2e4 c2e4 c3e4 d7d6 e4g5
info depth 12 seldepth 44 multipv 1 score cp 5419 lowerbound nodes 229763 nps 411761 tbhits 0 time 558 pv a2a3 b8c6 d2d4 e7e5 d4e5 c6e5 b1c3 e5g4 c1e3 g4e3 f2e3 d8g5 h2h4
bestmove a2a3 ponder b8c6

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 20000 tbhits 0 time 1 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5703 nodes 58 nps 58000 tbhits 0 time 1 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 5675 nodes 125 nps 125000 tbhits 0 time 1 pv e2e4 b7b6 f1c4
info depth 4 seldepth 4 multipv 1 score cp 6194 lowerbound nodes 249 nps 124500 tbhits 0 time 2 pv h2h4 b7b6 b1a3 e7e6
info depth 5 seldepth 5 multipv 1 score cp 6202 lowerbound nodes 402 nps 201000 tbhits 0 time 2 pv h2h4 b7b6 a2a4
info depth 6 seldepth 6 multipv 1 score cp 5891 nodes 659 nps 219666 tbhits 0 time 3 pv h2h4 e7e5
info depth 7 seldepth 11 multipv 1 score cp 6364 lowerbound nodes 1379 nps 344750 tbhits 0 time 4 pv a2a4 b7b6 e2e4 e7e6 a4a5 b6a5 a1a5 d7d5 e4d5 e6d5 h2h4 d8e7 d1e2 e7e2 g1e2
info depth 8 seldepth 17 multipv 1 score cp 6058 nodes 7605 nps 422500 tbhits 0 time 18 pv h2h4 e7e6 e2e4 d7d5 e4d5 d8d5 d1e2 d5f5
info depth 9 seldepth 24 multipv 1 score cp 5435 lowerbound nodes 21222 nps 451531 tbhits 0 time 47 pv d2d4 e7e6 c2c3 b7b6 h2h4 g8e7 c1g5 c8b7 g5e7 e8e7
info depth 10 seldepth 23 multipv 1 score cp 5715 lowerbound nodes 21803 nps 454229 tbhits 0 time 48 pv d2d4 e7e6 c2c3 b7b6 h2h4 g8e7 c1g5 c8b7 g5e7 e8e7 d1d2 b7e4 g1f3 e4f3 e2f3 d7d6 d4d5 e6d5 d2d5 b8d7 b1d2
info depth 11 seldepth 32 multipv 1 score cp 5719 lowerbound nodes 27358 nps 455966 tbhits 0 time 60 pv d2d4 e7e6 c2c3 d7d5 e2e4 d5e4 b1d2 b8d7 d2e4 b7b6 d1f3 d7f6 e4f6
info depth 12 seldepth 28 multipv 1 score cp 5763 lowerbound nodes 33637 nps 454554 tbhits 0 time 74 pv d2d4 e7e6 e2e4 d7d5 e4d5 e6d5 c2c3
bestmove d2d4 ponder e7e6
moderate variety

Code: Select all

set Variety 8 
Confirmation: Variety set to 8
set Jekyll_&_Hyde 8 
Confirmation: Jekyll_&_Hyde set to 8

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5767 nodes 58 nps 29000 tbhits 0 time 2 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 5739 nodes 126 nps 63000 tbhits 0 time 2 pv e2e4 b7b6 f1c4
info depth 4 seldepth 4 multipv 1 score cp 5659 nodes 287 nps 143500 tbhits 0 time 2 pv d2d4 e7e6 e2e4
info depth 5 seldepth 5 multipv 1 score cp 5292 nodes 904 nps 301333 tbhits 0 time 3 pv d2d4 d7d5 e2e3
info depth 6 seldepth 7 multipv 1 score cp 5419 nodes 1852 nps 370400 tbhits 0 time 5 pv d2d4 d7d5 d1d3
info depth 7 seldepth 9 multipv 1 score cp 5193 nodes 7244 nps 557230 tbhits 0 time 13 pv e2e3 e7e6 a2a3 c7c6 c2c4 d7d5 b1c3
info depth 8 seldepth 11 multipv 1 score cp 5349 nodes 12810 nps 582272 tbhits 0 time 22 pv d2d4 d7d5 c2c4 c7c6 b1c3 g8f6 c4d5 f6d5
info depth 9 seldepth 12 multipv 1 score cp 5345 nodes 21715 nps 571447 tbhits 0 time 38 pv d2d4 d7d5 c2c4 b8c6 b1c3 e7e6 c4c5 f8e7 g1f3 g8f6 c1g5
info depth 10 seldepth 16 multipv 1 score cp 5284 nodes 48521 nps 570835 tbhits 0 time 85 pv c2c4 b8c6 d2d4 e7e6 d4d5 c6e5 g1f3 f8b4 c1d2 e5f3 e2f3
info depth 11 seldepth 18 multipv 1 score cp 5325 nodes 80433 nps 574521 tbhits 0 time 140 pv e2e3 e7e6 d2d4 c7c6 c1d2 d7d5 f1d3 g8f6 b1c3 f8d6 g1f3 e8g8
info depth 12 seldepth 17 multipv 1 score cp 5284 nodes 114156 nps 579472 tbhits 0 time 197 pv e2e4 e7e5 d2d4 d7d5 d4e5 d5e4 d1d8 e8d8 g1e2 b8c6 e2g3 c8d7 g3e4 c6e5
bestmove e2e4 ponder e7e5

Code: Select all

ucinewgame 
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5537 nodes 58 nps 29000 tbhits 0 time 2 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 5508 nodes 127 nps 63500 tbhits 0 time 2 pv e2e4 b7b6 f1c4
info depth 4 seldepth 4 multipv 1 score cp 5275 nodes 479 nps 159666 tbhits 0 time 3 pv c2c4 d7d6 e2e4 e7e6
info depth 5 seldepth 7 multipv 1 score cp 5234 nodes 1372 nps 343000 tbhits 0 time 4 pv d2d4 c7c6 e2e4
info depth 6 seldepth 8 multipv 1 score cp 5165 nodes 2106 nps 421200 tbhits 0 time 5 pv e2e4 e7e6 d2d4 f8b4 c1d2
info depth 7 seldepth 10 multipv 1 score cp 5614 lowerbound nodes 3998 nps 444222 tbhits 0 time 9 pv d2d4
info depth 8 seldepth 10 multipv 1 score cp 5189 nodes 11121 nps 585315 tbhits 0 time 19 pv c2c3 b8c6 d2d4 e7e6 g1f3
info depth 9 seldepth 11 multipv 1 score cp 5320 nodes 14399 nps 575960 tbhits 0 time 25 pv g1f3 e7e6 d2d4
info depth 10 seldepth 13 multipv 1 score cp 5292 nodes 36075 nps 581854 tbhits 0 time 62 pv g1f3 g8f6 d2d4 d7d5 e2e3 e7e6 c2c3 c8d7 f1d3 f6e4 e1g1 c7c5
info depth 11 seldepth 17 multipv 1 score cp 5316 nodes 84076 nps 587944 tbhits 0 time 143 pv c2c4 d7d5 d2d4 e7e6 e2e3 b8c6 b1c3 g8f6 g1f3 f8b4 f1d3
info depth 12 seldepth 21 multipv 1 score cp 5234 nodes 140495 nps 595317 tbhits 0 time 236 pv c2c4 e7e6 d2d4 g8f6 e2e3 d7d5 c4c5 b8c6 b1c3 d8e7 g1f3 e6e5
bestmove c2c4 ponder e7e6

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 20000 tbhits 0 time 1 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5598 nodes 58 nps 58000 tbhits 0 time 1 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 5569 nodes 127 nps 127000 tbhits 0 time 1 pv e2e4 b7b6 f1c4
info depth 4 seldepth 4 multipv 1 score cp 5460 nodes 323 nps 161500 tbhits 0 time 2 pv b1c3 b7b6 e2e4
info depth 5 seldepth 5 multipv 1 score cp 5185 nodes 1324 nps 441333 tbhits 0 time 3 pv e2e4 d7d5 d2d4
info depth 6 seldepth 6 multipv 1 score cp 5370 nodes 1371 nps 342750 tbhits 0 time 4 pv e2e4 d7d5 d2d4
info depth 7 seldepth 10 multipv 1 score cp 5267 nodes 5604 nps 509454 tbhits 0 time 11 pv g1f3 g8h6 e2e3 b8c6 c2c4 e7e5
info depth 8 seldepth 10 multipv 1 score cp 5353 nodes 7747 nps 516466 tbhits 0 time 15 pv g1f3 d7d5 e2e3 b8c6 f1b5 a8b8 d2d4
info depth 9 seldepth 13 multipv 1 score cp 5296 nodes 13440 nps 537600 tbhits 0 time 25 pv g1f3 d7d5 e2e3 b8c6 d2d4 g7g6 c2c4 f8g7 b1c3 e7e5
info depth 10 seldepth 17 multipv 1 score cp 5234 nodes 43093 nps 559649 tbhits 0 time 77 pv g1f3 d7d5 d2d4 d8d6 c2c4 d5c4 b1c3 b8c6 d1a4
info depth 11 seldepth 16 multipv 1 score cp 5284 nodes 75415 nps 567030 tbhits 0 time 133 pv g1f3 d7d5 e2e3 g8f6 c2c4 e7e6 b1c3 b8c6 d2d4
info depth 12 seldepth 16 multipv 1 score cp 5271 nodes 118192 nps 573747 tbhits 0 time 206 pv g1f3 d7d5 e2e3 g8f6 f1e2 c7c5 d2d4 c5d4 e2b5 b8c6 e3d4 f6e4 b1c3 e4c3
bestmove g1f3 ponder d7d5
less variety

Code: Select all

set Variety 4 
Confirmation: Variety set to 4
set Jekyll_&_Hyde 4 
Confirmation: Jekyll_&_Hyde set to 4

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5959 nodes 55 nps 27500 tbhits 0 time 2 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 5943 nodes 143 nps 71500 tbhits 0 time 2 pv d2d4 e7e6 e2e4
info depth 4 seldepth 4 multipv 1 score cp 6066 lowerbound nodes 161 nps 80500 tbhits 0 time 2 pv d2d4
info depth 5 seldepth 5 multipv 1 score cp 6089 nodes 332 nps 166000 tbhits 0 time 2 pv d2d4 e7e6 d1d2
info depth 6 seldepth 6 multipv 1 score cp 5573 nodes 2264 nps 323428 tbhits 0 time 7 pv e2e4 b8c6 b1c3 e7e6 d2d4 d7d5
info depth 7 seldepth 9 multipv 1 score cp 5398 nodes 4188 nps 418800 tbhits 0 time 10 pv b1c3 b8c6 e2e4 e7e6 d2d4
info depth 8 seldepth 12 multipv 1 score cp 5480 nodes 7298 nps 429294 tbhits 0 time 17 pv b1c3 d7d5 d2d4
info depth 9 seldepth 13 multipv 1 score cp 5460 nodes 13513 nps 500481 tbhits 0 time 27 pv e2e4 d7d5 e4d5 c7c6 d2d4
info depth 10 seldepth 17 multipv 1 score cp 5382 nodes 31778 nps 520950 tbhits 0 time 61 pv e2e4 d7d5 e4d5 d8d5 d1e2 d5e6 h2h4 g8h6 g1f3
info depth 11 seldepth 16 multipv 1 score cp 5406 nodes 57589 nps 518819 tbhits 0 time 111 pv c2c4 g8f6 b1c3
info depth 12 seldepth 18 multipv 1 score cp 5411 nodes 104560 nps 522800 tbhits 0 time 200 pv e2e4 d7d5 e4d5 d8d5 b1c3 d5e6 f1e2
bestmove e2e4 ponder d7d5

Code: Select all

ucinewgame 
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 20000 tbhits 0 time 1 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5987 nodes 54 nps 54000 tbhits 0 time 1 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 6458 nodes 132 nps 132000 tbhits 0 time 1 pv d2d4 d7d6 e2e4
info depth 4 seldepth 4 multipv 1 score cp 6042 nodes 325 nps 162500 tbhits 0 time 2 pv d2d4 e7e6 e2e4 b7b6
info depth 5 seldepth 5 multipv 1 score cp 5699 nodes 1029 nps 343000 tbhits 0 time 3 pv e2e4 c7c5 e4e5
info depth 6 seldepth 6 multipv 1 score cp 5406 nodes 3424 nps 428000 tbhits 0 time 8 pv b1c3 d7d5 d2d4 b8c6 e2e4 d5e4
info depth 7 seldepth 8 multipv 1 score cp 5353 nodes 6540 nps 503076 tbhits 0 time 13 pv d2d4 d7d5 g1f3 b8c6 d1d3 g8f6
info depth 8 seldepth 10 multipv 1 score cp 5345 nodes 10455 nps 522750 tbhits 0 time 20 pv d2d4 d7d5 c1f4 b8c6 e2e3 e7e6 g1f3
info depth 9 seldepth 11 multipv 1 score cp 5386 nodes 17000 nps 548387 tbhits 0 time 31 pv d2d4 d7d5 c2c3 g8f6 g1f3 f6e4 b1d2
info depth 10 seldepth 13 multipv 1 score cp 5443 nodes 22835 nps 556951 tbhits 0 time 41 pv d2d4 e7e6 e2e4
info depth 11 seldepth 13 multipv 1 score cp 5390 nodes 36547 nps 545477 tbhits 0 time 67 pv d2d4 d7d5 c2c3 g8f6 g1f3 e7e6 f3e5
info depth 12 seldepth 18 multipv 1 score cp 5390 nodes 89376 nps 528852 tbhits 0 time 169 pv d2d4 d7d5 e2e3 c7c6 g1f3
bestmove d2d4 ponder d7d5

Code: Select all

ucinewgame
go depth 12
info depth 1 seldepth 1 multipv 1 score cp 5983 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 5999 nodes 54 nps 27000 tbhits 0 time 2 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 6469 nodes 132 nps 66000 tbhits 0 time 2 pv d2d4 d7d6 e2e4
info depth 4 seldepth 4 multipv 1 score cp 6183 nodes 298 nps 149000 tbhits 0 time 2 pv d2d4 e7e6 e2e4 b7b6
info depth 5 seldepth 5 multipv 1 score cp 5783 nodes 1742 nps 348400 tbhits 0 time 5 pv b1c3 e7e5 e2e4
info depth 6 seldepth 6 multipv 1 score cp 5398 nodes 3082 nps 385250 tbhits 0 time 8 pv d2d4 d7d5 b1c3 b8d7 g1f3
info depth 7 seldepth 9 multipv 1 score cp 5361 nodes 5780 nps 444615 tbhits 0 time 13 pv d2d4 d7d5 c2c4 e7e6 e2e3 d5c4 b1c3 b8c6
info depth 8 seldepth 11 multipv 1 score cp 5415 nodes 9597 nps 479850 tbhits 0 time 20 pv d2d4 d7d5 c2c4 b8c6 b1c3
info depth 9 seldepth 10 multipv 1 score cp 5357 nodes 12322 nps 492880 tbhits 0 time 25 pv d2d4 d7d5 e2e3 b8c6 c2c4 e7e5 d4e5 d5c4 d1d8 e8d8
info depth 10 seldepth 14 multipv 1 score cp 5411 nodes 35171 nps 517220 tbhits 0 time 68 pv e2e4 d7d5 e4d5 d8d5 b1c3
info depth 11 seldepth 18 multipv 1 score cp 5366 nodes 59181 nps 519131 tbhits 0 time 114 pv e2e4 d7d5 e4d5 d8d5 g1e2 d5f5 b1c3
info depth 12 seldepth 19 multipv 1 score cp 5357 nodes 128406 nps 528419 tbhits 0 time 243 pv e2e4 d7d5 e4d5 g8f6 c2c4 e7e6 d1e2
bestmove e2e4 ponder d7d5

MikeB
Posts: 3391
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: New engine: Mora

Post by MikeB » Thu Sep 19, 2019 6:28 pm

A small sample of variety when using the Variety and Jekell & Hyde options both set to 10 with no opening book..


MikeB
Posts: 3391
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: New engine: Mora

Post by MikeB » Thu Sep 19, 2019 6:41 pm

Here's Honey playing 10 games with Variety not enabled, 10 straight Sicilians with this very micro bullet time control.

All games started with 1. e4 c5 2,, Nc3 or Nf3 then e6 9 times with one 2 ...Nc6 with the first 4 moves. The variety above weakens Honey tremendously but obviously suitable for human play.


gonzaloarro
Posts: 7
Joined: Sat Aug 31, 2019 2:23 am
Full name: Gonzalo Arro

Re: New engine: Mora

Post by gonzaloarro » Thu Sep 19, 2019 11:24 pm

jp wrote:
Thu Sep 19, 2019 4:45 am
gonzaloarro wrote:
Wed Sep 18, 2019 4:50 am
MikeB wrote:
Tue Sep 17, 2019 10:49 pm
Do you know your searches are non-deterministic with one core/thread ( at least for me) .
I think I know why. It's because the set of Zobrist keys used for hashing are generated at random when the engine starts. For 2 different executions of the program, the entries in the tranposition table are going to be different. The final results should be the same if the engine would inspect the whole search tree no matter the transposition table, but I also used some pruning techniques. So when you combine that with different values from the tranposition table it can finally lead to non deterministic searches.

Non determinism was definitely a big problem when I had to test the engine, but I think it shouldn't affect the strength.
What does Stockfish (or other open-source engines) do? Is there an easy way to hack SF so you can turn on non-determinism in they way your engine has it? Sometimes you want it (e.g. playing a bookless match), and maybe you want more than just multi-threading to provide it.
I just want to be clear that I was not trying to achieve non determinism, it was an unexpected consequence of my implementation. But if you want non determinism without opening books there should probably be a better way to do it (not that I know how).

And I'm also sure that many engines provide some kind of option to adjust variety without having to hack the code, like the example MikeB posted.

jp
Posts: 754
Joined: Mon Apr 23, 2018 5:54 am

Re: New engine: Mora

Post by jp » Fri Sep 20, 2019 10:28 am

gonzaloarro wrote:
Thu Sep 19, 2019 11:24 pm
I just want to be clear that I was not trying to achieve non determinism, it was an unexpected consequence of my implementation. But if you want non determinism without opening books there should probably be a better way to do it (not that I know how).
Yes, I understood (but it can be useful if it can be turned on and off).

jp
Posts: 754
Joined: Mon Apr 23, 2018 5:54 am

Re: New engine: Mora

Post by jp » Fri Sep 20, 2019 10:34 am

MikeB wrote:
Thu Sep 19, 2019 6:41 pm
The variety above weakens Honey tremendously but obviously suitable for human play.
But if we want variety but still close to full strength, will setting Variety to 10 and J&H to 1 do it?

MikeB
Posts: 3391
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: New engine: Mora

Post by MikeB » Fri Sep 20, 2019 12:14 pm

jp wrote:
Fri Sep 20, 2019 10:34 am
MikeB wrote:
Thu Sep 19, 2019 6:41 pm
The variety above weakens Honey tremendously but obviously suitable for human play.
But if we want variety but still close to full strength, will setting Variety to 10 and J&H to 1 do it?
It will be, nut the variety will be much more limited. In fact last night I re-did the variety function to make it just a single checkout box.

It will play with sufficient variety that that I would expect one would nave have anything close to a duplicate game with no opening book ( but I suppose it could happen) and the user will be able to set it off or on whether they are playing full-strength or one of the weaker Elo levels.

At the middle Elo levels from 1600 to 1800, the variety function will costs about ~200 Elo, so if you normally play at Elo 1500 against Honey, you would want to move up to about 1700 with the variety switch turned on. At the higher Elo levels, the impact is about 300 Elo or a little more.


Here's is the impact from using Variety on playing strength Elo at various Elo levels ( using the Honey play by Elo function with Elo identified in the engine name below , the "v" signals Variety was turned on

Code: Select all

 Rank Name             Rating   Δ     +    -     #     Σ    Σ%     W    L    D   W%    =%   OppR 
 ---------------------------------------------------------------------------------------------------------
    1 Honey-X5j-1800    1809   0.0   16   16  2500 2020.0  80.8 1923  383  194  76.9   7.8  1543 
    2 Honey-X5i-1700    1700 109.0   14   14  2500 1662.0  66.5 1549  725  226  62.0   9.0  1564 
    3 Honey-X5j-1600    1584 115.3   14   14  2500 1244.5  49.8 1143 1154  203  45.7   8.1  1588 
    4 Honey-X5j-1800v   1572  12.9   14   14  2500 1191.0  47.6 1086 1204  210  43.4   8.4  1590 
    5 Honey-X5i-1700v   1474  97.7   15   15  2500  835.0  33.4  733 1563  204  29.3   8.2  1610 
    6 Honey-X5j-1600v   1384  90.2   16   16  2500  547.5  21.9  472 1877  151  18.9   6.0  1628 
 ---------------------------------------------------------------------------------------------------------
 
 Rank Name             Rating   Δ     +    -     #     Σ    Σ%     W    L    D   W%    =%   OppR 
 ---------------------------------------------------------------------------------------------------------
    1 Honey-X5i-2200    2213   0.0   17   17  2500 2094.0  83.8 1978  290  232  79.1   9.3  1896 
    2 Honey-X5i-2100    2100 113.5   15   15  2500 1766.0  70.6 1621  589  290  64.8  11.6  1919 
    3 Honey-X5i-2000    2000 100.2   14   14  2500 1429.0  57.2 1277  919  304  51.1  12.2  1939 
    4 Honey-X5i-2200v   1876 123.3   14   14  2500  995.5  39.8  831 1340  329  33.2  13.2  1964 
    5 Honey-X5i-2100v   1789  87.3   15   15  2500  711.5  28.5  579 1656  265  23.2  10.6  1981 
    6 Honey-X5i-2000v   1716  72.8   16   16  2500  504.0  20.2  403 1895  202  16.1   8.1  1996 
 ---------------------------------------------------------------------------------------------------------
 
Rank Name             Rating   Δ     +    -     #     Σ    Σ%     W    L    D   W%    =%   OppR 
---------------------------------------------------------------------------------------------------------
   1 Honey-X5i-2700    2710   0.0   15   15  2500 2118.5  84.7 1913  176  411  76.5  16.4  2375 
   2 Honey-X5i-2600    2610 100.1   13   13  2500 1846.0  73.8 1586  394  520  63.4  20.8  2395 
   3 Honey-X5i-2500    2500 109.6   12   12  2500 1503.5  60.1 1205  698  597  48.2  23.9  2417 
   4 Honey-X5i-2700v   2334 165.6   12   12  2500  910.0  36.4  574 1254  672  23.0  26.9  2450 
   5 Honey-X5i-2600v   2256  78.8   13   13  2500  668.5  26.7  407 1570  523  16.3  20.9  2466 
   6 Honey-X5i-2500v   2177  78.6   14   14  2500  453.5  18.1  242 1835  423   9.7  16.9  2482 
---------------------------------------------------------------------------------------------------------
Sample game, playing Honey at Elo 1500 with variety turned on, no opening book. Elo 1500 sees about 700 nps, there is no randomization with the Elo play except any the lowest Elo levels, the strength is limited by reducing the nps, thus shortening the Horizon .


jp
Posts: 754
Joined: Mon Apr 23, 2018 5:54 am

Re: New engine: Mora

Post by jp » Thu Oct 10, 2019 6:23 am

MikeB wrote:
Fri Sep 20, 2019 12:14 pm
At the middle Elo levels from 1600 to 1800, the variety function will costs about ~200 Elo, so if you normally play at Elo 1500 against Honey, you would want to move up to about 1700 with the variety switch turned on. At the higher Elo levels, the impact is about 300 Elo or a little more.
Thanks for that info. It's interesting that the elo drop is so large. If we use a huge number of threads to add variety, I wouldn't guess the elo drop would be huge, but maybe that sort of variety is also limited.

the_real_greco
Posts: 2
Joined: Thu Sep 19, 2019 3:55 am
Full name: Andy Erly

Re: New engine: Mora

Post by the_real_greco » Fri Oct 11, 2019 12:43 am

gonzaloarro wrote:
Sat Sep 14, 2019 2:39 am

"MORA" doesn't actually stand for anything, it is just the name of my cat who was happen to be at my desk when I started to code, so I decided to name the engine in her honor haha.
Does anyone else find this explanation sort of... regressive?

Post Reply