Minic version 2

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

Moderators: hgm, Rebel, chrisw

User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Minic version 2

Post by mvanthoor »

Have you also been looking into speeding up make() and unmake() in Minic?

When I last tried it, it ran perft 7 at around 120 seconds on my computer. As it uses magic bitboards, it should be able to reach 80 seconds for perft 7 on my system. That would be a 33% speedup. Even though the evaluation function dwarfs make/unmake, the speedup should account for a few ELO-points.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 2

Post by xr_a_y »

Not yet. On the todo list ;)
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 2

Post by xr_a_y »

I'm currently working on some kind of "personality" feature for Minic.
But I don't want to expose many parameters as I did in Weini (https://github.com/tryingsomestuff/Wein ... onfig.json, everything tunable was maybe too much !).
This time, I'd love to provide only 3 or 4 clear parameters (like attack/defense, positional, ...).

After looking at other engines that have some kind of personality, I came to the decision of using some part of Shashin theory like Shashchess, but in a much simpler form. A side effect of given access to some parameters to the users maybe to try to automatically determine the "type" of the position and scale score accordingly hoping for some strength.

The idea is as follows :
- change almost nothing to eval
- but during eval, collect the following things : material advantage, mobility advantage, forwardness.
- I now "divide" eval score in the following sub score : materialScore, developmentScore, positionalScore, mobilityScore, pawnStructScore, and attackScore
- before using those score, scale them according to the Shashin category of the position (or the one of initial search position, or the use type of personality forced by the user).

I manage to collect everything needed, and make some room for those score scaling. I know wonder how to scale them properly.

My first idea, based on ShashChess, is to :
- verify that materialScore is between -150 .. 150, (if not just don't bother) and use a continuous factor like (max(0,1-(materialScore/150)^2) to scale everything next
- compute a mobility ratio from 0.5 to 2, to get the style of the position : Tal (>1.2), Capablanca or Petrosian (<0.8)
- find a continuous scaling function between those personalities :
* if Tal : scale up attack and positional
* if Capablanca : scale up positional, pawn structure, add a forwardness bonus
* if Petrosian : scale up mobility, add a forwardness malus

What do you think of this plan ? Any inputs ? ideas ?
Jamal Bubker
Posts: 326
Joined: Mon May 24, 2010 4:32 pm

Re: Minic version 2

Post by Jamal Bubker »

Hi Vivien,
It sounds like a great project !!
I ve understood the concept but i don't have any skills in this field ...
But i think it's a good idea !
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 2

Post by xr_a_y »

Minic 2.21 is available with some little speed up and fixes for FRC.

Also, the github repository history has been re-written (to delete big files from it, that has been moved to "Minic-Book_and_Test" repository), so as a consequence, do not try to simply pull Minic, you'd better clone a fresh new copy of it.

Maybe, if CCRL FRC testers have some resources available, it is worth testing as it shall be a lot better than the old 1.15 :D

Code: Select all

Score of minic_1.15 vs minic_2.21: 10 - 69 - 21 [0.205]
Elo difference: -235.4 +/- 71.3, LOS: 0.0 %, DrawRatio: 21.0 %
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 2

Post by xr_a_y »

xr_a_y wrote: Sun May 10, 2020 1:14 pm Minic 2.21 is available with some little speed up and fixes for FRC.

Also, the github repository history has been re-written (to delete big files from it, that has been moved to "Minic-Book_and_Test" repository), so as a consequence, do not try to simply pull Minic, you'd better clone a fresh new copy of it.

Maybe, if CCRL FRC testers have some resources available, it is worth testing as it shall be a lot better than the old 1.15 :D

Code: Select all

Score of minic_1.15 vs minic_2.21: 10 - 69 - 21 [0.205]
Elo difference: -235.4 +/- 71.3, LOS: 0.0 %, DrawRatio: 21.0 %
Ooops, this release suffer from a threading bug and is only able to play single-threaded :oops: :oops: :oops: :oops: :oops:
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 2

Post by xr_a_y »

Fixed in 2.22 with some additional strength also ... :D
Modern Times
Posts: 3546
Joined: Thu Jun 07, 2012 11:02 pm

Re: Minic version 2

Post by Modern Times »

xr_a_y wrote: Sun May 10, 2020 1:14 pm
Maybe, if CCRL FRC testers have some resources available, it is worth testing as it shall be a lot better than the old 1.15 :D
Some interim results are on the site now.
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Minic version 2

Post by xr_a_y »

Modern Times wrote: Tue May 12, 2020 5:49 pm
xr_a_y wrote: Sun May 10, 2020 1:14 pm
Maybe, if CCRL FRC testers have some resources available, it is worth testing as it shall be a lot better than the old 1.15 :D
Some interim results are on the site now.
So quick ! Thanks a lot !
Can you please just correct the version from 2.2.1 to 2.21 ;)
Modern Times
Posts: 3546
Joined: Thu Jun 07, 2012 11:02 pm

Re: Minic version 2

Post by Modern Times »

xr_a_y wrote: Tue May 12, 2020 6:42 pm
So quick ! Thanks a lot !
Can you please just correct the version from 2.2.1 to 2.21 ;)
Done, and testing is complete.