ELO rating of Fairy max?
Posted:
17 Jul 2016, 09:55
by rks_chess
Just curious : I would like to know the ELO rating for the Fairy-max 4.8Q engine. I read that it's code is based off of the
Micro-Max engine which looks so small (I mean the source code in C). How complicated can this engine be? What is it's rating?
Is it the same as Micro-Max which is rated at 1940 by the site :
http://www.computerchess.org.uk/ccrl/4040/.
I cannot believe that such a small piece of code can be rated at 1940. Does some one know the rating?
Re: ELO rating of Fairy max?
Posted:
03 Nov 2016, 20:49
by H.G.Muller
Sorry for the tardy response; I normally do not read this forum section.
And yes, for normal Chess Fairy-Max is essentially micro-Max 4.8. The main difference is that the move-generator tables that describe how the pieces move are not in the code as initialized data, but are read from a file (fmax.ini). There is a whole lot of code added to do that, without any attempt to minimalize it, but that is all in the interface part, not in the AI (which basically consists only of the Search routine D()).
The code of that search routine has been extended by some 40%, but only to be able to handle more complex pieces than plain sliders and leapers, and for orthodox Chess this is just overhead that perhaps slows down the node rate by a few percent. (But 1% of speed is approximately 1 Elo only.) A compensation is that the Pawn double-moves are handled in a different way from micro-Max, also to be able to generalize to other pieces that have extra initial moves: the initial double push is now treated as a separate move 'direction' from the single push, and in the game description is defined first. This conveys a slight advantage: in micro-Max Pawn double pushes could not be hash moves, because then they would fail to set the e.p. flag. So if a Pawn double-push was best, there was no hash move, indicated by invalidating the to-square of that move. But move generation would still start with the piece on the from-square, i.e. the Pawn. So in micro-Max the double push would then be generated second, after the single push. But in Fairy-Max it would be generated first, so the fact that it could not be hash move does not hurt at all. This should more than make up for a potential slowdown by the generalization.
I should say that the Fairy-Max I bundle with WinBoard is a simple gcc compile that I make myself under Cygwin, while the micro-Max tested by CCRL was a special PGO optiomized executable made by Denis Mendoza, which is 1.75 times faster. That would make it some 60 Elo stronger. But Fairy-Max is open source, and anyone interested in squeezing every Elo out of it could make his own fast compile. (But why would they? There are other engines, which are 1000 Elo stronger...) The goal of Fairy-Max is to make an entertaining but beatable opponent to play against in all kind of Chess variants.