Tuning evaluation, first with my own python script then one based on Andrew's paper, has given something in the ballpark of 250 elo alone
It seems you too are making great strides recently after improving your testing methodology
Moderators: hgm, Rebel, chrisw
Tuning evaluation, first with my own python script then one based on Andrew's paper, has given something in the ballpark of 250 elo alone
I am having a look into your code and I am really impressed. It's by far the second smallest (4.5k lines of code) chess engine >ELO2500 I have found. (after OliThink 1.6k lines of code)
The biggest asset is the 32core server which allows me to play 1000s of games within hours. But it's not always easy, there are changes which do not improve OliThink against its former version, but against some other engines.It seems you too are making great strides recently after improving your testing methodology
Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%) W D L D(%) CFS(%)
1 Murka 3 x64 : 200 18 1061.5 1400 75.8 928 267 205 19.1 100
2 Weiss 0.10 : 163 18 1004.5 1400 71.8 865 279 256 19.9 100
3 Glaurung 2.2 : 113 17 919.0 1400 65.6 796 246 358 17.6 100
4 OliThink 5.8.1 : 0 ---- 1215.0 4200 28.9 819 792 2589 18.9 ---
Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%) W D L D(%) CFS(%)
1 Weiss 1.0 : 205 27 534.0 700 76.3 478 112 110 16.0 51
2 Murka 3 x64 : 204 28 533.5 700 76.2 485 97 118 13.9 100
3 Glaurung 2.2 : 97 24 444.5 700 63.5 388 113 199 16.1 100
4 OliThink 5.8.1 : 0 ---- 588.0 2100 28.0 427 322 1351 15.3 ---
Yeah, until 1.0 I had a bug that caused rare crashes due to a mistake when checking if the TT move was pseudo-legal. 1.0 and on should be crash free iirc.OliverBr wrote: ↑Sat Sep 26, 2020 5:46 pmI am having a look into your code and I am really impressed. It's by far the second smallest (4.5k lines of code) chess engine >ELO2500 I have found. (after OliThink 1.6k lines of code)
I find your code very good readable, really well structured. Furthermore, I never really liked C++ and always preferred C.
The biggest asset is the 32core server which allows me to play 1000s of games within hours. But it's not always easy, there are changes which do not improve OliThink against its former version, but against some other engines.It seems you too are making great strides recently after improving your testing methodology
I know that most engines are only testing against themselves, I prefer testing against other engines. At the moment the sparring partners are Glaurung 2.2, Murka 3 and Weiss (0.10, now 1.0):
Weiss 0.10 has a little bug and crashes/hangs so every 2-3000 games, so now I will test from now against Weiss 1.0, which is about 40 ELO stronger:Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%) W D L D(%) CFS(%) 1 Murka 3 x64 : 200 18 1061.5 1400 75.8 928 267 205 19.1 100 2 Weiss 0.10 : 163 18 1004.5 1400 71.8 865 279 256 19.9 100 3 Glaurung 2.2 : 113 17 919.0 1400 65.6 796 246 358 17.6 100 4 OliThink 5.8.1 : 0 ---- 1215.0 4200 28.9 819 792 2589 18.9 ---
Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%) W D L D(%) CFS(%) 1 Weiss 1.0 : 205 27 534.0 700 76.3 478 112 110 16.0 51 2 Murka 3 x64 : 204 28 533.5 700 76.2 485 97 118 13.9 100 3 Glaurung 2.2 : 97 24 444.5 700 63.5 388 113 199 16.1 100 4 OliThink 5.8.1 : 0 ---- 588.0 2100 28.0 427 322 1351 15.3 ---
There was a bug that caused even rarer crashes for 10 years in olithink, until another programmer found it 2018. (vgl. http://talkchess.com/forum3/viewtopic.php?f=7&t=74821)
I like this.Weiss itself is probably closer to 2500 lines if you exclude the syzygy library and tuner code
Pseudo-legal seems to make sense by not wasting time testing perfect legality of more moves than necessary (many, many positions only need 1 or a few moves to be cut). Don't really know if it's worth much if anything tho.OliverBr wrote: ↑Sat Sep 26, 2020 9:17 pmThere was a bug that caused even rarer crashes for 10 years in olithink, until another programmer found it 2018. (vgl. http://talkchess.com/forum3/viewtopic.php?f=7&t=74821)
Since 5.3.3 it's gone.
About pseudo-legel moves: Is there common sense about it's better to generate pseuso-legal or just legal moves (like OliThink)?
I like this.Weiss itself is probably closer to 2500 lines if you exclude the syzygy library and tuner code