New engine: Inanis

Discussion of chess software programming and technical issues.

Moderators: hgm, chrisw, Rebel

Tearth
Posts: 69
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

New engine: Inanis

Post by Tearth »

I'm really happy to announce, that after almost a year of work the brand new engine is ready - this time written in Rust, Inanis is almost 250 Elo stronger than the last version of Cosette. It uses a classical approach, for both search and evaluation, and I hope it will be a good sparring partner for your engines (should handle very fast games without any problem, since that's how I was performing tests). Inanis also supports pondering and multithreading. For more technical information, please check the homepage on GitHub (link below).

Name: Inanis
Version: 1.0.0
Protocol: UCI
Author: Pawel Osikowski
Country: Poland
License: GPL-3.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.0.0
Estimated strength: 2750 Elo

The release contains executables for various platforms, operating systems and instruction sets - I was able to test most of them, so I hope everything will work perfectly. Feel free to ask questions or report bugs (here or on GitHub) if there will be any, I certainly want to develop this engine even further and make the necessary fixes.
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: New engine: Inanis

Post by lithander »

Congratz on the release! Inanais has the perfect strength to serve as a sparring partner for Leorik. It seems to be about 100 Elo stronger on fast time controls.

Sadly my match finished early:

Code: Select all

Started game 323 of 6000 (Leorik 2.0.5 vs Inanis 1.0)
Terminating process of engine Inanis 1.0(5)
Finished game 315 (Leorik 2.0.5 vs Inanis 1.0): 1-0 {Black disconnects}
Score of Leorik 2.0.5 vs Inanis 1.0: 69 - 154 - 95  [0.366] 318
...      Leorik 2.0.5 playing White: 39 - 78 - 43  [0.378] 160
...      Leorik 2.0.5 playing Black: 30 - 76 - 52  [0.354] 158
...      White vs Black: 115 - 108 - 95  [0.511] 318
Elo difference: -95.2 +/- 32.7, LOS: 0.0 %, DrawRatio: 29.9 %
Finished match
This was the problematic game that caused Inanis to crash:

[pgn][Event "?"]
[Site "?"]
[Date "2022.04.02"]
[Round "158"]
[White "Leorik 2.0.5"]
[Black "Inanis 1.0"]
[Result "1-0"]
[ECO "A00"]
[GameDuration "00:00:42"]
[GameEndTime "2022-04-02T16:39:42.081 Mitteleuropäische Sommerzeit"]
[GameStartTime "2022-04-02T16:38:59.995 Mitteleuropäische Sommerzeit"]
[Opening "Benko's Opening"]
[PlyCount "195"]
[Termination "abandoned"]
[TimeControl "3+0.2"]

1. g3 {book} g6 {book} 2. Bg2 {book} Bg7 {book} 3. d4 {book} c5 {book}
4. c3 {book} cxd4 {-0.10/15 0.18s} 5. cxd4 {book} d5 {-0.03/15 0.36s}
6. Nc3 {book} e6 {book} 7. Nf3 {+0.34/13 0.23s} Nc6 {-0.44/14 0.15s}
8. O-O {book} Nge7 {book} 9. b3 {book} a6 {-0.04/14 0.44s}
10. Bb2 {+0.20/11 0.21s} O-O {-0.10/14 0.15s} 11. e3 {+0.09/12 0.50s}
Nf5 {-0.20/14 0.19s} 12. Rc1 {+0.12/11 0.47s} Re8 {-0.35/13 0.17s}
13. Na4 {+0.24/11 0.36s} Nb4 {-0.27/13 0.14s} 14. a3 {+0.25/12 0.21s}
Nc6 {-0.50/15 0.19s} 15. Re1 {+0.34/12 0.50s} a5 {-0.41/12 0.18s}
16. Qc2 {+0.34/11 0.32s} Rb8 {-0.40/14 0.17s} 17. Rcd1 {+0.37/12 0.25s}
Bd7 {-0.40/13 0.18s} 18. Nc5 {+0.33/12 0.31s} Bc8 {-0.42/14 0.23s}
19. e4 {+0.46/11 0.27s} dxe4 {-0.40/13 0.24s} 20. Rxe4 {+0.35/11 0.27s}
Nce7 {+0.06/13 0.15s} 21. g4 {+0.40/9 0.16s} Nd6 {+0.56/15 0.23s}
22. Ree1 {+0.10/12 0.21s} b6 {+0.54/15 0.19s} 23. Ne4 {0.00/12 0.30s}
Bb7 {+0.65/14 0.21s} 24. Ne5 {-0.01/11 0.24s} Nxe4 {+0.81/15 0.18s}
25. Bxe4 {-0.16/13 0.36s} Rc8 {+0.90/15 0.58s} 26. Qd2 {-0.17/12 0.23s}
Bxe4 {+1.07/15 0.23s} 27. Rxe4 {-0.14/12 0.19s} Qd5 {+1.24/15 0.28s}
28. Qd3 {-0.19/12 0.38s} b5 {+1.09/14 0.21s} 29. h3 {-0.18/12 0.40s}
Red8 {+1.21/14 0.32s} 30. Rde1 {-0.21/11 0.22s} Nc6 {+1.43/13 0.21s}
31. Qe3 {-0.30/12 0.37s} b4 {+1.35/12 0.17s} 32. axb4 {-0.35/12 0.20s}
Nxb4 {+1.73/15 0.20s} 33. Qg3 {-0.19/11 0.24s} Nc2 {+2.09/14 0.20s}
34. R1e2 {-1.26/13 0.71s} Qb5 {+2.31/14 0.41s} 35. Qd3 {-1.26/10 0.11s}
Qxd3 {+2.40/16 0.16s} 36. Nxd3 {-1.74/14 0.18s} Bxd4 {+2.11/15 0.17s}
37. g5 {-1.65/13 0.071s} Bxb2 {+2.56/16 0.23s} 38. Nxb2 {-1.65/15 0.22s}
Kg7 {+2.50/16 0.26s} 39. Re5 {-1.48/14 0.16s} Nd4 {+2.51/16 0.21s}
40. R2e3 {-1.65/15 0.21s} Nf5 {+2.49/17 0.28s} 41. Re1 {-1.65/13 0.46s}
Rc2 {+3.26/15 0.19s} 42. Rb1 {-1.94/12 0.20s} Nh4 {+3.28/16 0.27s}
43. Re3 {-2.05/13 0.067s} Rdd2 {+3.60/16 0.16s} 44. Nd3 {-1.89/14 0.13s}
Rc3 {+3.43/17 0.17s} 45. Ne5 {-1.92/16 0.15s} Rxe3 {+3.16/18 0.18s}
46. fxe3 {-1.87/16 0.17s} Re2 {+3.23/19 0.43s} 47. Nc4 {-1.91/16 0.16s}
a4 {+3.78/17 0.29s} 48. bxa4 {-2.35/17 0.22s} Nf3+ {+3.88/20 0.31s}
49. Kf1 {-2.35/18 0.21s} Rc2 {+4.04/19 0.57s} 50. a5 {-2.13/17 0.38s}
Nh2+ {+4.12/19 0.30s} 51. Kg1 {0.00/18 0.12s} Nf3+ {+4.11/20 0.17s}
52. Kf1 {0.00/25 0.17s} Nh2+ {+4.11/19 0.18s} 53. Kg1 {0.00/24 0.18s}
Ng4 {+0.58/18 0.20s} 54. Na3 {0.00/17 0.22s} Ra2 {+0.58/19 0.53s}
55. Rb3 {+0.17/16 0.14s} Ne5 {+0.63/18 0.20s} 56. e4 {-0.27/15 0.32s}
Re2 {+0.58/17 0.14s} 57. a6 {+0.17/16 0.23s} Rxe4 {+0.46/17 0.17s}
58. Nb5 {0.00/16 0.13s} Nc6 {+0.36/16 0.17s} 59. Kf2 {+0.13/15 0.18s}
Ra4 {+0.22/16 0.20s} 60. Ra3 {0.00/14 0.17s} Rf4+ {+0.24/17 0.22s}
61. Ke1 {0.00/14 0.14s} Re4+ {+0.24/17 0.17s} 62. Kd2 {+0.03/16 0.30s}
Re5 {+0.49/18 0.29s} 63. a7 {-0.01/15 0.19s} Nxa7 {+0.33/17 0.13s}
64. Nxa7 {-0.09/14 0.089s} Rxg5 {+0.33/18 0.21s} 65. Nc6 {-0.09/14 0.13s}
Rg2+ {+0.32/17 0.18s} 66. Kd1 {0.00/14 0.13s} Rg5 {+0.21/16 0.35s}
67. Kd2 {0.00/16 0.48s} Rc5 {+0.20/14 0.19s} 68. Nd4 {+0.03/14 0.33s}
Rh5 {+0.20/15 0.12s} 69. Rc3 {0.00/14 0.14s} Rh4 {+0.21/16 0.19s}
70. Nc6 {0.00/13 0.095s} Rh5 {+0.20/17 0.13s} 71. Ke2 {+0.05/15 0.16s}
Kf6 {+0.20/17 0.16s} 72. Kf2 {+0.05/15 0.12s} Rf5+ {+0.19/16 0.15s}
73. Ke3 {+0.04/15 0.55s} Rf1 {+0.19/17 0.36s} 74. h4 {+0.06/14 0.077s}
Rb1 {+0.17/15 0.15s} 75. Kf2 {+0.12/15 0.21s} Rb2+ {+0.11/15 0.15s}
76. Kg3 {+0.14/13 0.087s} Re2 {+0.11/17 0.25s} 77. Rf3+ {+0.23/15 0.12s}
Kg7 {-0.18/18 0.15s} 78. Rf4 {+0.13/14 0.11s} h5 {+0.02/15 0.14s}
79. Nd8 {+0.08/16 0.16s} f5 {+0.04/18 0.17s} 80. Kf3 {+0.14/18 0.21s}
Re5 {+0.04/18 0.18s} 81. Rc4 {+0.15/17 0.60s} Kf6 {+0.02/18 0.39s}
82. Rc7 {+0.09/16 0.081s} Re4 {+0.25/18 0.13s} 83. Rf7+ {0.00/19 0.14s}
Ke5 {+0.04/17 0.13s} 84. Nc6+ {0.00/18 0.079s} Kd6 {+0.37/18 0.14s}
85. Ne7 {0.00/18 0.14s} Rg4 {+0.37/18 0.39s} 86. Nc8+ {0.00/18 0.18s}
Kd5 {+0.35/19 0.17s} 87. Ne7+ {0.00/17 0.20s} Kd6 {+0.35/21 0.25s}
88. Nc8+ {0.00/21 0.17s} Kd5 {+0.35/19 0.51s} 89. Ne7+ {0.00/20 0.19s}
Ke5 {+0.35/20 0.13s} 90. Ke3 {0.00/19 0.24s} Kd6 {+0.35/19 0.17s}
91. Nc8+ {0.00/19 0.16s} Ke5 {+0.35/20 0.15s} 92. Ne7 {0.00/20 0.21s}
Re4+ {+0.35/21 0.25s} 93. Kd3 {0.00/20 0.25s} Rd4+ {+0.35/21 0.40s}
94. Ke2 {0.00/20 0.23s} Re4+ {+0.35/22 0.19s} 95. Kd3 {0.00/21 0.22s}
Rd4+ {0.00/21 0.21s} 96. Ke3 {0.00/21 0.15s} Rg4 {+0.35/21 0.20s}
97. Kd3 {0.00/18 0.22s} Kd6 {+0.35/18 0.14s}
98. Nc8+ {0.00/19 0.15s, Black disconnects} 1-0[/pgn]
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Tearth
Posts: 69
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

Thanks for the report, this is for 90% caused by the imperfect implementation of the move legality check read from the transposition table - I was aware that this is troublesome in very rare cases but hoped it's not that bad and can be resolved later :(. Seems like it's not, so I will focus on it as part of 1.0.1 patch - hopefully I will find some way to resolve this since it's one of these bugs occurring once per x hours of play.

Before it, I recommend everyone to play with -recover option if you use cutechess-cli, or wait for 1.0.1 (but as I said, it might take some time).
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New engine: Inanis

Post by Guenther »

Tearth wrote: Sat Apr 02, 2022 5:14 pm Thanks for the report, this is for 90% caused by the imperfect implementation of the move legality check read from the transposition table - I was aware that this is troublesome in very rare cases but hoped it's not that bad and can be resolved later :(. Seems like it's not, so I will focus on it as part of 1.0.1 patch - hopefully I will find some way to resolve this since it's one of these bugs occurring once per x hours of play.

Before it, I recommend everyone to play with -recover option if you use cutechess-cli, or wait for 1.0.1 (but as I said, it might take some time).
How does your repetition code work?
It's somehow funny that the position could have been a three time rep with Blacks last move except the opponents K position.
Not sure if this is just a strange coincidence with the crash?

[fen]8/4NR2/3kp1p1/5p1p/6rP/5K2/8/8 w - - 16 88[/fen]
[fen]8/4NR2/3kp1p1/5p1p/6rP/4K3/8/8 w - - 22 91[/fen]
[fen]8/4NR2/3kp1p1/5p1p/6rP/3K4/8/8 w - - 36 98[/fen]
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: New engine: Inanis

Post by lithander »

I'm currently writing a tuner for Leorik that will be similar as yours: It's should find all coefficients from scratch without human intervention and should output them in a format that can easily be copy&pasted into the source code. And it should be as fast as possible! ;)

1.) How long does Inanis Texel-approach take to find a fully tuned set of coefficient from scratch?

2.) Does randomization significantly change the results? Aka do you repeat the process and let different seeds compete in selfplay to find good values or is the result basically always the same and/or equally strong?
Last edited by lithander on Sat Apr 02, 2022 6:51 pm, edited 1 time in total.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New engine: Inanis

Post by Guenther »

While feeding the pgn move by move in analysis mode I noticed that it shows very often enormous repetition loop PVs
and not only in the endgame but starting very early in the game. Is this just a symptom? (copying previous PV entries from hash?)

Code: Select all

265.966: > position startpos moves g2g3 g7g6 f1g2 f8g7 d2d4 c7c5 c2c3 c5d4 c3d4 d7d5 b1c3 e7e6 g1f3 b8c6 e1g1 g8e7 b2b3 a7a6 c1b2 e8g8 e2e3 e7f5 a1c1 f8e8 c3a4 c6b4 a2a3 b4c6 f1e1 a6a5 d1c2 a8b8
265.966: > go infinite
266.029: < info time 0 score cp 43 depth 1 seldepth 2 nodes 78 pv f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8
266.029: < info time 0 score cp 27 depth 2 seldepth 3 nodes 322 pv f3e5 c6e5
266.029: < info time 0 score cp 27 depth 3 seldepth 3 nodes 474 pv f3e5 c6e5
266.029: < info time 0 score cp 27 depth 4 seldepth 5 nodes 843 pv f3e5 c6e5 d4e5 c8d7
266.029: < info time 0 score cp 27 depth 5 seldepth 7 nodes 1232 pv f3e5 c6e5 d4e5 c8d7
266.029: < info time 1 score cp 27 depth 6 seldepth 9 nodes 2860 pv f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8 f3d2 b8a8 d2f3 a8b8
266.029: < info time 3 score cp 28 depth 7 seldepth 9 nodes 5054 pv f3d2 b8a8 e1d1
266.029: < info time 4 score cp 28 depth 8 seldepth 13 nodes 7282 pv f3d2 b8a8 e1d1 e8f8 d1e1
266.044: < info time 13 score cp 28 depth 9 seldepth 17 nodes 21517 pv f3d2 b7b5 a4c5 b5b4 a3b4 a5b4 c2d1 b8a8 c5d3
266.060: < info time 34 score cp 26 depth 10 seldepth 18 nodes 56161 pv c2d1 b8a8
266.091: < info time 72 score cp 26 depth 11 seldepth 23 nodes 117105 pv c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8
266.122: < info time 91 score cp 26 depth 12 seldepth 23 nodes 146635 pv c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8
266.153: < info time 130 score cp 26 depth 13 seldepth 23 nodes 208850 pv c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8 c2d1 b8a8 d1c2 a8b8
266.325: > stop
266.325: < bestmove c2d1

Code: Select all

315.543: > position startpos moves g2g3 g7g6 f1g2 f8g7 d2d4 c7c5 c2c3 c5d4 c3d4 d7d5 b1c3 e7e6 g1f3 b8c6 e1g1 g8e7 b2b3 a7a6 c1b2 e8g8 e2e3 e7f5 a1c1 f8e8 c3a4 c6b4 a2a3 b4c6 f1e1 a6a5 d1c2 a8b8 c1d1 c8d7 a4c5 d7c8 e3e4 d5e4 e1e4 c6e7 g3g4 f5d6 e4e1 b7b6 c5e4 c8b7 f3e5 d6e4 g2e4 b8c8 c2d2 b7e4 e1e4 d8d5 d2d3 b6b5 h2h3 e8d8 d1e1 e7c6 d3e3 b5b4 a3b4 c6b4 e3g3 b4c2 e1e2 d5b5 g3d3 b5d3 e5d3 g7d4 g4g5 d4b2 d3b2 g8g7 e4e5 c2d4 e2e3 d4f5 e3e1 c8c2 e1b1 f5h4 e5e3 d8d2 b2d3 c2c3 d3e5 c3e3 f2e3 d2e2 e5c4 a5a4 b3a4 h4f3 g1f1 e2c2 a4a5 f3h2 f1g1 h2f3 g1f1 f3h2 f1g1 h2g4 c4a3 c2a2 b1b3 g4e5 e3e4 a2e2 a5a6 e2e4 a3b5 e5c6 g1f2 e4a4 b3a3 a4f4 f2e1 f4e4 e1d2 e4e5 a6a7 c6a7 b5a7 e5g5 a7c6 g5g2 d2d1 g2g5 d1d2 g5c5 c6d4 c5h5 a3c3 h5h4 d4c6 h4h5 d2e2 g7f6 e2f2 h5f5 f2e3 f5f1 h3h4 f1b1 e3f2 b1b2 f2g3 b2e2 c3f3 f6g7 f3f4 h7h5 c6d8 f7f5 g3f3 e2e5 f4c4 g7f6 c4c7 e5e4 c7f7 f6e5 d8c6 e5d6 c6e7 e4g4 e7c8
315.543: > go infinite
315.621: < info time 0 score cp 67 depth 1 seldepth 1 nodes 22 pv d6e5
315.621: < info time 0 score cp 23 depth 2 seldepth 3 nodes 79 pv d6e5 c8e7
315.621: < info time 0 score cp 23 depth 3 seldepth 3 nodes 134 pv d6e5 c8e7
315.621: < info time 1 score cp 32 depth 4 seldepth 6 nodes 303 pv d6e5 c8e7 e5d6 f3e2
315.621: < info time 1 score cp 23 depth 5 seldepth 6 nodes 548 pv d6e5 c8e7 e5d6 f7g7 g4h4
315.621: < info time 1 score cp 23 depth 6 seldepth 6 nodes 717 pv d6e5 c8e7 e5d6 f7g7 g4h4
315.621: < info time 1 score cp 23 depth 7 seldepth 8 nodes 928 pv d6e5 c8e7 e5d6 f7g7 g4h4 e7g6 h4g4
315.621: < info time 1 score cp 23 depth 8 seldepth 10 nodes 1135 pv d6e5 c8e7 e5d6 f7g7 g4h4 e7g6 h4g4
315.621: < info time 1 score cp 23 depth 9 seldepth 10 nodes 1830 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.621: < info time 1 score cp 23 depth 10 seldepth 10 nodes 1965 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.621: < info time 2 score cp 23 depth 11 seldepth 10 nodes 2406 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.621: < info time 2 score cp 23 depth 12 seldepth 10 nodes 2602 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.621: < info time 2 score cp 23 depth 13 seldepth 10 nodes 2939 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.621: < info time 3 score cp 23 depth 14 seldepth 10 nodes 3267 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.621: < info time 3 score cp 23 depth 15 seldepth 10 nodes 3634 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.637: < info time 3 score cp 23 depth 16 seldepth 10 nodes 4128 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.637: < info time 3 score cp 23 depth 17 seldepth 11 nodes 4730 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.637: < info time 5 score cp 23 depth 18 seldepth 11 nodes 6397 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.637: < info time 21 score cp 23 depth 19 seldepth 20 nodes 40026 pv d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8 d6e5 c8e7 e5d6 e7c8
315.886: > stop
315.886: < bestmove d6e5
https://rwbc-chess.de

[Trolls n'existent pas...]
Tearth
Posts: 69
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

Guenther wrote: Sat Apr 02, 2022 5:41 pm How does your repetition code work?
It's somehow funny that the position could have been a three time rep with Blacks last move except the opponents K position.
Not sure if this is just a strange coincidence with the crash?
I had some bugs related to draw detection in the past, but they were fixed so I would be surprised if that was the reason again - but I will check it for sure.
lithander wrote: Sat Apr 02, 2022 6:47 pm 1.) How long does Inanis Texel-approach take to find a fully tuned set of coefficient from scratch?
Can't recall the exact numbers, but with 4 threads it was a couple of hours to get the satisfying result which wasn't changing much anymore. The most important improvement here was introducing a table with trends that acted as a cache for every parameter, it was saving a massive amount of time because the tuner didn't have to guess every iteration if the parameter's value is going up or down + how much it should.
lithander wrote: Sat Apr 02, 2022 6:47 pm 2.) Does randomization significantly change the results? Aka do you repeat the process and let different seeds compete in selfplay to find good values or is the result basically always the same and/or equally strong?
It doesn't improve the end result much, well, I would even say that the output using random initial values was often worse than when I was starting using pretty bad (but set by me earlier, so they had some logic) values. But it's certainly something that still needs more research and experiments, like you said, running selfplays with different tuner outputs to get the one that performs the best. Overall I've got some massive Elo gain thanks to this tuner (at least +100), so definitely worth trying.
Guenther wrote: Sat Apr 02, 2022 6:49 pm While feeding the pgn move by move in analysis mode I noticed that it shows very often enormous repetition loop PVs
and not only in the endgame but starting very early in the game. Is this just a symptom? (copying previous PV entries from hash?)
Yes, it's basically a loop in the transposition table, pretty common - Inanis has a limit of moves in the PV line (64 if I recall correctly) so we are not stuck in the endless loop, but I think it would be a good idea to detect these repetitions and cut it earlier, to reduce spam in output.
pedrojdm2021
Posts: 157
Joined: Fri Apr 30, 2021 7:19 am
Full name: Pedro Duran

Re: New engine: Inanis

Post by pedrojdm2021 »

Congrats on the relealse Tearth!! your Cosette always have been a huge inspiration for me, i'm curious about the future of your new engine
Tearth
Posts: 69
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

Thanx! I'm glad Cosette is helpful to you, I've learned so many things during this project and the gained experience was one of the main Inanis' foundations.
Tearth
Posts: 69
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

Version: 1.0.1
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.0.1
Estimated strength: 2750 Elo (no change)

Changelog:
- Added a new UCI option "Crash Files" (disabled by default)
- Fixed move legality check which in rare cases was leading to engine crashes
- Fixed PV lines being too long due to endless repetitions

A new version with the most important issues fixed - move legality check has been improved, as it was giving invalid results in very rare cases which were leading to board state corruption and crash. If someone is interested in how I was able to fix it: I created a helper function that was generating completely random (and often not even remotely valid with chess rules) moves, which were then tested by legality check and applied to the board if possible. After millions of iterations it showed me a few edge cases not covered by the old implementation, and after extensive testing (120 hours of search, summarizing all running threads) I didn't notice a single crash, so hopefully it really fixed this bug.