Official Release of OliThink 5.7.5 including a Java-GUI

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

Moderators: Harvey Williamson, bob, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Dann Corbit
Posts: 11626
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by Dann Corbit » Thu Sep 17, 2020 4:20 pm

Tiny Terror Trounces Titans!
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
maksimKorzh
Posts: 334
Joined: Sat Sep 08, 2018 3:37 pm
Location: Ukraine
Full name: Maksim Korzh
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh » Sat Sep 19, 2020 11:04 am

OliverBr wrote:
Wed Sep 09, 2020 11:45 pm
Hello together,
OliThink 5.7.5 has been released and there are some news about it.

- The strength is gaining while code size/complexity is shrinking. 1603 lines of code (45kbyte) with an ELO of almost 2700.
- Executables for Mac64, Linux64 and Win64
- There is an Java Version.
- There is a simple GUI for the Java Version in order to play OliThink "out-of-the-box":

Image

- In order to use this GUI: http://brausch.org/home/chess/OliThinkGUI.jar
(Download, Keep (!) and start with "java -jar OliThinkGUI.jar". Depending on your security settings, you may just double-click the jar-file.)
. It has no pondering and about 1sec/move time, so it won't take much of your computer's resources.
- This Java GUI has less than 200 lines of code and hasn't been changed sind 2009: https://github.com/olithink/olithink5Ja ... Frame.java


PS: A short gauntlet tournament with the C-Version:

Code: Select all

   # PLAYER                   :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
   1 Scorpio_2.8.8 MCTS+NN    :      25     28   268.0     500  53.6  225   86  189  17.2      65
   2 Fruit 2.1                :      18     28   262.5     500  52.5  213   99  188  19.8      89
   3 OliThink 5.7.5           :       0   ----  1084.5    2000  54.2  893  383  724  19.1     100
   4 K2 v.087                 :     -44     28   218.5     500  43.7  158  121  221  24.2     100
   5 Arasan 11.7              :    -122     28   166.5     500  33.3  128   77  295  15.4     ---

White advantage = -0.18 +/- 7.26
Draw rate (equal opponents) = 19.57 % +/- 0.90

Fantastic work, Oliver!
Just wondering WHY did you consider to create your own GUI?
I can hardly imagine what would make me even think about making my own GUI...

OliverBr
Posts: 560
Joined: Tue Dec 18, 2007 8:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr » Sat Sep 19, 2020 11:52 am

maksimKorzh wrote:
Sat Sep 19, 2020 11:04 am
Fantastic work, Oliver!
Just wondering WHY did you consider to create your own GUI?
I can hardly imagine what would make me even think about making my own GUI...
Thank you very much.

The GUI is a very simple. tiny Java program, 200 lines of code. It was done in a matter of few hours. Of course there are not many options in this GUI.
Originally you could play OliThink directly in my homepage, but Java Applets are considered a security risk nowadays.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink

User avatar
maksimKorzh
Posts: 334
Joined: Sat Sep 08, 2018 3:37 pm
Location: Ukraine
Full name: Maksim Korzh
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh » Sat Sep 19, 2020 12:05 pm

OliverBr wrote:
Sat Sep 19, 2020 11:52 am
maksimKorzh wrote:
Sat Sep 19, 2020 11:04 am
Fantastic work, Oliver!
Just wondering WHY did you consider to create your own GUI?
I can hardly imagine what would make me even think about making my own GUI...
Thank you very much.

The GUI is a very simple. tiny Java program, 200 lines of code. It was done in a matter of few hours. Of course there are not many options in this GUI.
Originally you could play OliThink directly in my homepage, but Java Applets are considered a security risk nowadays.
I've done this ones using CSS Bootstrap library
https://maksimkorzh.github.io/bmcp_js/
It's incredibly poor and buggy, so don't judge it too much

I had to port the poor and buggy C version of this "engine" (a very tiny program, inspired by MicroMax by HGM) to achieve that.
But the other option might be creating a web based UCI GUI so the engine could run remotely on a server and controlled from the browser.
Well, obviously this is pretty expensive assuming dynamic billing like in case of AWS EC2.

But probably someone has obviously done something like that before right?

OliverBr
Posts: 560
Joined: Tue Dec 18, 2007 8:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr » Sat Sep 19, 2020 8:58 pm

maksimKorzh wrote:
Sat Sep 19, 2020 12:05 pm
I've done this ones using CSS Bootstrap library
https://maksimkorzh.github.io/bmcp_js/
It's incredibly poor and buggy, so don't judge it too much
This is really great! I love it. I would love to have my engine playable online (again). But Javascript (or even typescript) is quite difficult to translate from C (Here is a fine example that Java and JavaScript are very different program languages).

I would like to present a game. A few weeks ago, I have got a 32 core server and I started developing OliThink with the server. As all my tests go with cutechess-cli I didn't watch any OliThink game for a long time.
Now I let 5.7.9 play against Glaurung 2.1 - 4 CPU on my notebook and I am really stunned. OliThink playing very precise now and a really intriguing style of play. For those who are interested:, Glaurung trades two knights for a rook and then we see that two bishops are actually better than one rook.


Funny fact: When analyzing this game with Stockfish 11 in most cases Stockfish and Glaurung share their opinion about the best move. :)
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink

User avatar
maksimKorzh
Posts: 334
Joined: Sat Sep 08, 2018 3:37 pm
Location: Ukraine
Full name: Maksim Korzh
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh » Sat Sep 19, 2020 9:48 pm

OliverBr wrote:
Sat Sep 19, 2020 8:58 pm
maksimKorzh wrote:
Sat Sep 19, 2020 12:05 pm
I've done this ones using CSS Bootstrap library
https://maksimkorzh.github.io/bmcp_js/
It's incredibly poor and buggy, so don't judge it too much
This is really great! I love it. I would love to have my engine playable online (again). But Javascript (or even typescript) is quite difficult to translate from C (Here is a fine example that Java and JavaScript are very different program languages).

I would like to present a game. A few weeks ago, I have got a 32 core server and I started developing OliThink with the server. As all my tests go with cutechess-cli I didn't watch any OliThink game for a long time.
Now I let 5.7.9 play against Glaurung 2.1 - 4 CPU on my notebook and I am really stunned. OliThink playing very precise now and a really intriguing style of play. For those who are interested:, Glaurung trades two knights for a rook and then we see that two bishops are actually better than one rook.


Funny fact: When analyzing this game with Stockfish 11 in most cases Stockfish and Glaurung share their opinion about the best move. :)
Sorry, but I need to disagree that porting engine from C to JS is difficult
Here I have C and JS versions of the "engine" you've seen:

C: https://github.com/maksimKorzh/bmcp/blo ... ommented.c
JS: https://github.com/maksimKorzh/bmcp_js/ ... ne/bmcp.js

Also VICE has JS port and even stockfich.
I would LOVE to play JS version of OliThink online

re: game
- very impressive, but exchange on f3 seems a bit strange from king's safety perspective. But anyway, I'm deeply impressed.

OliverBr
Posts: 560
Joined: Tue Dec 18, 2007 8:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr » Sat Sep 19, 2020 10:05 pm

maksimKorzh wrote:
Sat Sep 19, 2020 9:48 pm
Sorry, but I need to disagree that porting engine from C to JS is difficult
You might be correct, I will try to have a look into it.
re: game
- very impressive, but exchange on f3 seems a bit strange from king's safety perspective. But anyway, I'm deeply impressed.
Here comes the OliThink "speciality".
OliThink doesn't know anything about "king safety", "king shelter" or even double pawns. The complete evaluation is based on just mobility (there are some rare exception like passed pawn).*

If you have a look at the code, there is not a single square table, everything is generic. OliThink has no chess knowledge except rules and mobility.

The mobility evaluation ist quite simple, too. It's not even considering if a square are controlled by the enemy. This may an idea for improvement.

PS: Neither Leela nor Stockfish would have exchanged on f3. Leela plays rather 11...Rc8 and Stockfish 11...h6 (later 11...Rc8).
For Leela the first mistakes were 28...Rb7 instead of 28...f5 and the next move 29...Rdc8 instead of 29...f5 again.
Leela urgently wants to play ...f5! on several other occasions, too.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink

User avatar
maksimKorzh
Posts: 334
Joined: Sat Sep 08, 2018 3:37 pm
Location: Ukraine
Full name: Maksim Korzh
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by maksimKorzh » Sat Sep 19, 2020 10:24 pm

OliverBr wrote:
Sat Sep 19, 2020 10:05 pm
maksimKorzh wrote:
Sat Sep 19, 2020 9:48 pm
Sorry, but I need to disagree that porting engine from C to JS is difficult
You might be correct, I will try to have a look into it.
re: game
- very impressive, but exchange on f3 seems a bit strange from king's safety perspective. But anyway, I'm deeply impressed.
Here comes the OliThink "speciality".
OliThink doesn't know anything about "king safety", "king shelter" or even double pawns. The complete evaluation is based on just mobility (there are some rare exception like passed pawn).*

If you have a look at the code, there is not a single square table, everything is generic. OliThink has no chess knowledge except rules and mobility.

The mobility evaluation ist quite simple, too. It's not even considering if a square are controlled by the enemy. This may an idea for improvement.

PS: Neither Leela nor Stockfish would have exchanged on f3. Leela plays rather 11...Rc8 and Stockfish 11...h6 (later 11...Rc8).
For Leela the first mistakes were 28...Rb7 instead of 28...f5 and the next move 29...Rdc8 instead of 29...f5 again.
Leela urgently wants to play ...f5! on several other occasions, too.
I love the idea of ONLY mobility evaluation. I will definitely try it out!

OliverBr
Posts: 560
Joined: Tue Dec 18, 2007 8:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr » Sat Sep 19, 2020 11:06 pm

maksimKorzh wrote:
Sat Sep 19, 2020 10:24 pm
I love the idea of ONLY mobility evaluation. I will definitely try it out!
It would be very interesting to know how strong an engine can be with only mobility eval.

PS: I now see that the origin of OliThink 5 was in 2004. Tord (Hands down, one of the best programers ever) was there, too. This is really a long time, 16 years, imagine...
http://www.open-aurec.com/wbforum/viewt ... ?f=4&t=432
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink

OliverBr
Posts: 560
Joined: Tue Dec 18, 2007 8:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch
Contact:

Re: Official Release of OliThink 5.7.5 including a Java-GUI

Post by OliverBr » Sun Sep 20, 2020 12:46 pm

5.8.0 has been released. Here a small tournament with famous names, but ultra quick time control:

Code: Select all

   # PLAYER                     :  RATING  ERROR  POINTS  PLAYED   (%)     W     D     L  D(%)  CFS(%)
   1 Stockfish 11 64            :     752     16  9004.0   10007  90.0  8410  1188   409  11.9     100
   2 Ethereal 12.55 (POPCNT)    :     621     14  7912.0   10005  79.1  7213  1398  1394  14.0     100
   3 Minic 2.16                 :     183     10  3606.0   10005  36.0  2942  1328  5735  13.3     100
   4 Glaurung 2.2               :     119     10  2890.0   10005  28.9  2306  1168  6531  11.7     100
   5 OliThink 5.8.0             :       0   ----  1603.0   10008  16.0  1159   888  7961   8.9     ---

White advantage = 27.74 +/- 2.92
Draw rate (equal opponents) = 23.37 % +/- 0.40
Ethereal was a positive surprise, while Minic a negative one, I would have guessed Ehereal about 520 and Minic about 280.

===========================================================================
Next endeavours for OiThink:

1) Move sorting. It's too simple atm. Noisy moves are ordered by value of the captured piece. Quiet moves are ordered just by one killer and history heuristics.
2) Pruning. Many of the common pruning tricks do not work with OliThink.
3) Mobility evaluation. It's not subtracting point for squares that are (attacked/controlled) by the opponent.
4) More hash: Eval- and Pawnhashs are not efficient, because the Hash probing needs almost as much time as the simple eval-function. Perhaps a KingpawnHash?.
5) Hash-aging: There is no aging yet. Each slot will be overwritten by the next store.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink

Post Reply