Minic version 3

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

Moderator: Ras

User avatar
xr_a_y
Posts: 1872
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 3

Post by xr_a_y »

MOBMAT wrote: Fri Jan 20, 2023 9:01 pm No, this is a x64 machine and OS.
I frequently use dozens of other x64 bmi2 chess engines.
Oh maybe you used git to download it, but without lfs activated !
What is the size of the executable ? If it is very small, this is probably what happened.

In this case using the download link will work (https://github.com/tryingsomestuff/Mini ... inic3/3.32)
MOBMAT
Posts: 417
Joined: Sat Feb 04, 2017 11:57 pm
Location: USA

Re: Minic version 3

Post by MOBMAT »

xr_a_y wrote: Sat Jan 21, 2023 8:56 am
MOBMAT wrote: Fri Jan 20, 2023 9:01 pm No, this is a x64 machine and OS.
I frequently use dozens of other x64 bmi2 chess engines.
Oh maybe you used git to download it, but without lfs activated !
What is the size of the executable ? If it is very small, this is probably what happened.

In this case using the download link will work (https://github.com/tryingsomestuff/Mini ... inic3/3.32)
OK! that worked!
The size of the files I had downloaded were only 146K
What is
lfs activated
mean?

Thanks!

Vince
i7-6700K @ 4.00Ghz 32Gb, Win 10 Home, EGTBs on PCI SSD
Benchmark: Stockfish15.1 NNUE x64 bmi2 (nps): 1277K
User avatar
xr_a_y
Posts: 1872
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 3

Post by xr_a_y »

MOBMAT wrote: Sat Jan 21, 2023 5:54 pm
xr_a_y wrote: Sat Jan 21, 2023 8:56 am
MOBMAT wrote: Fri Jan 20, 2023 9:01 pm No, this is a x64 machine and OS.
I frequently use dozens of other x64 bmi2 chess engines.
Oh maybe you used git to download it, but without lfs activated !
What is the size of the executable ? If it is very small, this is probably what happened.

In this case using the download link will work (https://github.com/tryingsomestuff/Mini ... inic3/3.32)
OK! that worked!
The size of the files I had downloaded were only 146K
What is
lfs activated
mean?

Thanks!

Vince
As exe are huge (because they include the nets) I need to use git-lfs on my github repo. Read this for more details : https://git-lfs.com/
User avatar
xr_a_y
Posts: 1872
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 3

Post by xr_a_y »

Krzysztof Grzelak wrote: Tue Apr 04, 2023 10:38 am I have a request if you can post a download link for version 3.33.
I'm working on 3.37 currently, it will be ready soon.

Regards
User avatar
xr_a_y
Posts: 1872
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 3

Post by xr_a_y »

Hi all,

long time no see ! I was quite busy this year professionally and personnally, so I didn't invest much time in chess programming.

Anyway a new Minic version is finally available (Minic 3.39 https://github.com/tryingsomestuff/Mini ... s/tag/3.39). This release includes a new net named "nyctophobic narwhal", some good search patches and some minor bug fixes. Overall it shall play near 30Elo better than last release in self test at short TC.

Binaries shall be found here : https://github.com/tryingsomestuff/Mini ... inic3/3.39

Have fun !
Frank Quisinsky
Posts: 7572
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Minic version 3

Post by Frank Quisinsky »

Hello Vivien,

at first, thanks for your new version.

Two questions only ...
1. What exactly do you mean by ContemptMG ...

2. Should I set a higher "PawnHash", maybe to 64 or higher ...
if I am using the time control 40 moves in 20 minutes "repeatedly"

Best
Frank
User avatar
xr_a_y
Posts: 1872
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 3

Post by xr_a_y »

Hello Frank,

Two good questions.

To compute dynamic contempt, Minic (and many other engines) are relaying on
- 2 values
- a dynamic "view" on the game
- opponent level if provided

The two values are equal 12 by default

Code: Select all

ScoreType    contempt         = 12;
ScoreType    contemptMG       = 12;
before each search, we use this formula

Code: Select all

         contempt = {ScoreType((p.c == Co_White ? +1 : -1) * (DynamicConfig::contempt + DynamicConfig::contemptMG) * DynamicConfig::ratingFactor),
                     ScoreType((p.c == Co_White ? +1 : -1) * DynamicConfig::contempt * DynamicConfig::ratingFactor)};
 
contempt is then a "phased" value, one for middle game and the other for end-game. As you see, in MG, both values are added, while in end-game only one is used. You also see here a "ratingFactor" thing that will take the opponent strength into account (if given).

A last, the dynamic part arrives and it depends on current score using some tanh formula.

Code: Select all

         contempt += static_cast<ScoreType>(std::round(25 * std::tanh(currentScore[multi] / 400.f))); 


PawnHash is now a total value, so if you plan to use many threads, I'd suggest to use here 16* number_of_thread, it will be enough


Regards
Frank Quisinsky
Posts: 7572
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Minic version 3

Post by Frank Quisinsky »

Hi Vivien,

I like to read that ... contempt for mid-games and endgames and the rating-factor.
All is fine for me!

Most important for me is to reduce the "move-average" and all the boring endgames, runs longer and longer if engines try to avoid in clearly draw position the draw in endgames.

Please give me a second tipp!
If I like to reduced the move-average with resign=off games ...

I should give your engine (if I understand) ...

Contempt=0 ... parameter for mid-games and endgames in combination!
ContemptMG=0

Or better ...
I think contempt for mid-games is absolutely OK (like that) because the move-average for games with resing=off goes not to high.
In most of cases I think contempt for endgames is the main-reason for a lot of boring endgames with resign=off.
From a lot of engines the move-average with resign=off are over 100 moves today.

After all I understand I set with the first contempt parameter mid-game & endgame.
In this case I have to set contempt=0 if I like to reduce the move-average!?

Maybe I have a part from your explanation not understand ...
The only reason is my bad english.

Best
Frank

If I understand ...
Maybe better is to create ...

Contempt Mid-game=12
Contempt End-game=0

But in this case
ContemptMG= the good idea will not working if contempt End-game=0

PawnHash is clear :-)
Frank Quisinsky
Posts: 7572
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Minic version 3

Post by Frank Quisinsky »

Hi Vivien,

sorry that I used your time in reading my bad English.

I know, normally I should not changed any default settings by the programmers for eng-eng tourneys.
Programmers know here baby better ...

But if I looking in all the long games in detail (without resign-mode more clear) ... I saw very rarely a game where contempt in endgame helps an engine for a better result. In neural-network times I think contempt for endgames isn't necessary if I study the game results. For some years, before NN, the situation has turned completly. Contempt for endgames helps a lot vs. weaker engines for a better game results and it can give +15 Elo for stronger engines. Tested out in selfwork for some years with Stockfish.

Contempt for endgames for stronger engines are maybe 1-3 Elo more today ... and the move average or calculating / computing time is no longer in any relation for 1-3 Elo more.

Contempt for mid-games is fine for me!
If more as around 18 pieces on board ... contempt = on is right ... if the engine is super-strong.

And each intelligent idea to find out the playing strength of the opponent during the game is still running with a mainipulated contempt is in my opinion very nice.

Best
Frank

For engines around 200 Elo or more weaker as Stockfish it can be interesting to forced draw, also in mid-games if over a longer time (example first 20 own calculated moves) the own eval goes not higher. To forced a draw give in most of cases more Elo as to avoid a draw. Easy, the super-strong engines can't exploit the endgame power. Very important for engines weeker in endgames or engines with a more speculative and aggressive playing-style. If I am looking in detail in game stats from our engines ... different programmers do that or somewhat like this. Explain the lesser move-average ... more clearly to see with resign=off games. Loud thinking ...
Last edited by Frank Quisinsky on Sun Oct 29, 2023 9:19 pm, edited 1 time in total.
matejst
Posts: 374
Joined: Mon May 14, 2007 8:20 pm
Full name: Boban Stanojević

Re: Minic version 3

Post by matejst »

Thanks, Vivien!