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.
Minic version 2
Moderators: hgm, Rebel, chrisw
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Minic version 2
Not yet. On the todo list
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Minic version 2
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 ?
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 ?
-
- Posts: 326
- Joined: Mon May 24, 2010 4:32 pm
Re: Minic version 2
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 !
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 !
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Minic version 2
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
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
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 %
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Minic version 2
Ooops, this release suffer from a threading bug and is only able to play single-threadedxr_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
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 %
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Minic version 2
Fixed in 2.22 with some additional strength also ...
-
- Posts: 3546
- Joined: Thu Jun 07, 2012 11:02 pm
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Minic version 2
So quick ! Thanks a lot !
Can you please just correct the version from 2.2.1 to 2.21
-
- Posts: 3546
- Joined: Thu Jun 07, 2012 11:02 pm