OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by Dann Corbit »

I guess with shared hash and threads, about 3500 Elo{*].
i have 64 threads on my box.
[*] CCRL or CEGT scale
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
User avatar
Graham Banks
Posts: 41433
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by Graham Banks »

I will be starting an OliThink gauntlet for CCRL 40/15 this week.
I was going to use 5.6.6, but I guess that I should now use 5.6.8 or later if you release again today?
gbanksnz at gmail.com
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by OliverBr »

Graham Banks wrote: Sun Aug 30, 2020 1:08 am I will be starting an OliThink gauntlet for CCRL 40/15 this week.
I was going to use 5.6.6, but I guess that I should now use 5.6.8 or later if you release again today?
Hi Graham,
Which OS are you using? Windows? I have just released a 5.6.8 using popcnt hardware support for Windows 64:
http://brausch.org/home/chess/OliThink568pop.win64.zip

I am looking forward for your tourney. :)
Last edited by OliverBr on Sun Aug 30, 2020 6:04 am, edited 1 time in total.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
User avatar
Graham Banks
Posts: 41433
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by Graham Banks »

OliverBr wrote: Sun Aug 30, 2020 5:58 am
Graham Banks wrote: Sun Aug 30, 2020 1:08 am I will be starting an OliThink gauntlet for CCRL 40/15 this week.
I was going to use 5.6.6, but I guess that I should now use 5.6.8 or later if you release again today?
Hi Graham,
Which OS are you using? Windows? I have just released a 5.6.8 using popcnt hardware support for Windows 64:
http://brausch.org/home/chess/OliThink568pop.win64.zip
Windows.
I'll use 5.6.8 unless there is a later one once I'm ready to start. :)
gbanksnz at gmail.com
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by OliverBr »

Graham Banks wrote: Sun Aug 30, 2020 5:59 am Windows.
I'll use 5.6.8 unless there is a later one once I'm ready to start. :)
I know, I am releasing a lot of versions nowadays, that's because I have a new toy, a 32-core test computer, so I could improve quite a bit. Anyway the 5.6.8 is good, a newer version is not expected very soon.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by OliverBr »

OliverBr wrote: Sun Aug 30, 2020 6:07 am
Graham Banks wrote: Sun Aug 30, 2020 5:59 am Windows.
I'll use 5.6.8 unless there is a later one once I'm ready to start. :)
I know, I am releasing a lot of versions nowadays, that's because I have a new toy, a 32-core test computer, so I could improve quite a bit. Anyway the 5.6.8 is good, a newer version is not expected very soon.
Hi Graham.. I actually found a little change which improves 5.6.8 another 20 ELO points.. So, yes another version (5.6.9) is coming soon.

Code: Select all

   # PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)     W     D     L  D(%)  CFS(%)
   1 OliThink 5.6.8b    :      22      9  2002.0    3765  53.2  1290  1424  1051  37.8     100
   2 OliThink 5.6.8a    :       0   ----  1763.0    3765  46.8  1051  1424  1290  37.8     ---

White advantage = 21.06 +/- 4.45
Draw rate (equal opponents) = 38.06 % +/- 0.79
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by OliverBr »

5.6.9 has been released. It gains about 25 ELO to 5.6.8, thus OliThink finally has more than ELO 2600.

The trick was a revert of the following change in OliThink 5.1.7 from the year 2008:

5.1.6 has in line 1549:

Code: Select all

    for (i = 0; i < 64; i++) nmobil[i] = bitcnt(nmoves[i])*8;
5.1.7 has:

Code: Select all

    for (i = 0; i < 64; i++) nmobil[i] = (bitcnt(nmoves[i])-1)*6;
5.1.7 has been 25 ELO weaker than 5.1.6 after modification. I couldn't know those days, but now I found it out with a big tournament.
So in 5.6.9 I reverted it, again using a factor 8.



PS: Funny fact: When starting small tournaments with fast timecontrol and another engine like Fruit2.1, it always plays very strong at the beginning.
After about 100 games for each engine:

Code: Select all

   # PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
   1 OliThink 5.6.9	:      70     69    50.5      90  56.1   34   33   23  36.7      68
   2 Fruit 2.1          :      54     65    47.5      90  52.8   33   29   28  32.2      95
   3 OliThink 5.6.8     :       0   ----    38.0      92  41.3   21   34   37  37.0     ---

White advantage = 10.54 +/- 25.14
Draw rate (equal opponents) = 35.92 % +/- 4.31
But with more games this is converging to the expected result:

Code: Select all

   # PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
   1 Fruit 2.1          :      92     21   613.5    1008  60.9  518  191  299  18.9     100
   2 OliThink 5.6.9     :      28     21   478.5    1008  47.5  325  307  376  30.5     100
   3 OliThink 5.6.8     :       0   ----   420.0    1008  41.7  270  300  438  29.8     ---

White advantage = 28.64 +/- 7.94
Draw rate (equal opponents) = 27.16 % +/- 1.17
This is reproducible. What could be an explanation for this?
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
Kieren Pearson
Posts: 70
Joined: Tue Dec 31, 2019 2:52 am
Full name: Kieren Pearson

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by Kieren Pearson »

OliverBr wrote: Sun Aug 30, 2020 11:52 am 5.6.9 has been released. It gains about 25 ELO to 5.6.8, thus OliThink finally has more than ELO 2600.

The trick was a revert of the following change in OliThink 5.1.7 from the year 2008:

5.1.6 has in line 1549:

Code: Select all

    for (i = 0; i < 64; i++) nmobil[i] = bitcnt(nmoves[i])*8;
5.1.7 has:

Code: Select all

    for (i = 0; i < 64; i++) nmobil[i] = (bitcnt(nmoves[i])-1)*6;
5.1.7 has been 25 ELO weaker than 5.1.6 after modification. I couldn't know those days, but now I found it out with a big tournament.
So in 5.6.9 I reverted it, again using a factor 8.



PS: Funny fact: When starting small tournaments with fast timecontrol and another engine like Fruit2.1, it always plays very strong at the beginning.
After about 100 games for each engine:

Code: Select all

   # PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
   1 OliThink 5.6.9	:      70     69    50.5      90  56.1   34   33   23  36.7      68
   2 Fruit 2.1          :      54     65    47.5      90  52.8   33   29   28  32.2      95
   3 OliThink 5.6.8     :       0   ----    38.0      92  41.3   21   34   37  37.0     ---

White advantage = 10.54 +/- 25.14
Draw rate (equal opponents) = 35.92 % +/- 4.31
But with more games this is converging to the expected result:

Code: Select all

   # PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
   1 Fruit 2.1          :      92     21   613.5    1008  60.9  518  191  299  18.9     100
   2 OliThink 5.6.9     :      28     21   478.5    1008  47.5  325  307  376  30.5     100
   3 OliThink 5.6.8     :       0   ----   420.0    1008  41.7  270  300  438  29.8     ---

White advantage = 28.64 +/- 7.94
Draw rate (equal opponents) = 27.16 % +/- 1.17
This is reproducible. What could be an explanation for this?
This is very strange. Does the GUI restart each engine after each match?
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by OliverBr »

Kieren Pearson wrote: Sun Aug 30, 2020 12:39 pm
OliverBr wrote: Sun Aug 30, 2020 11:52 am This is reproducible. What could be an explanation for this?
This is very strange. Does the GUI restart each engine after each match?
No, cutechess-cli is not restarting the engine. There is actually a parameter in the xboard protocol ("reuse") , it's the recommended "1", the engine will not restartet. Actually this should be standard.

I guess that Fruit is a good learner just alone by filling the Hash(TT)Tables. OliThink always replaces hash-entries, so they don't live very long.

After more 3000 games, there is +22 ELO, same as in the battle between the OliThinks

Code: Select all

   # PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)     W    D     L  D(%)  CFS(%)
   1 Fruit 2.1          :      91     12  1931.0    3156  61.2  1644  574   938  18.2     100
   2 OliThink 5.6.9    :      22     12  1474.5    3158  46.7  1015  919  1224  29.1     100
   3 OliThink 5.6.8     :       0   ----  1330.5    3158  42.1   868  925  1365  29.3     ---

White advantage = 28.37 +/- 4.38
Draw rate (equal opponents) = 26.28 % +/- 0.69
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
Kieren Pearson
Posts: 70
Joined: Tue Dec 31, 2019 2:52 am
Full name: Kieren Pearson

Re: OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code

Post by Kieren Pearson »

I find it hard to believe that fruit is able to use transposition entries from different games to observe a noticeable increase in strength over time. There’s no way those entities are surviving that long and if they were future games should have had a different opening and the entires wouldn’t even be useful anyways.

Do you use an opening book for your tournaments?

Two more possibilities: It was just a coincidence that your engine did better for the first 100 games, or maybe your engine has a bug which causes it to have lowered nps over time. I say this because my engine had a similar bug early in its development.