I could make a multi-PV version of Fairy-Max for you, if you wanted. (Would be slightly above 2000 Elo, on the CCRL scale.) But Alas, it is WinBoard, not UCI.
It would be of some interest to do this, because then it would also be the strongest engine to support multi-PV in Knightmate, Gothic Chess, Berolina Chess, Courier Chess, Shatranj, Cylinder Chess...
Yes, that is what I was already afraid of. Then I cannot help you, as all my engines are WinBoard.
As for a multi-PV version of Fairy-Max, I guess I'll make that anyway. I already patched it yesterday night for printing a full PV (based on the triangular-array method), which seems to work fine.
hgm wrote:I could make a multi-PV version of Fairy-Max for you, if you wanted. (Would be slightly above 2000 Elo, on the CCRL scale.) But Alas, it is WinBoard, not UCI.
It would be of some interest to do this, because then it would also be the strongest engine to support multi-PV in Knightmate, Gothic Chess, Berolina Chess, Courier Chess, Shatranj, Cylinder Chess...
Hi H.G.:
How exactly multipv is implemented? does it reduce playing strenght?
When you request more than one PV, it will reduce playing strength, because you spend extra time on evaluating second-best moves, which goes at the expense of the time you spend on evauating the best move. And this time is totally wasted, as you will not play second-best move anyway.
But having the ability to calculate multiple variations in itself does not put a significant burdon on the engine when you ask for only one PV.
The way I wanted to implement it is do a normal alpha-beta search, but in the root, I do not increase alpha to the score, but to score - MARGIN, where MARGIN can be set to the user. This will automatically recover all variations that have a score within MARGIN of the best. By setting MARGIN=0 you will recover the normal behvior.
You can also put a limit on the number of variations; in that case, if the user asks fr, say, 3 variations, when there happen to be more than 3 within MARGIN of the best, you can increase alpha to the score of the third, when that is larger than bestScore - MARGIN.
perejaslav wrote:Which is the weakest UCI chess engine with the Multi-PV support?
I look for it, help me, please!
Ok, I will start the bidding!
Pupsi has MultiPV support. Anyone lower?!
Pupsi is currently around 2375 Ruel on the UCI Engines Ligue list.
By the way, in Pupsi, you can reduce the playing strength using the Hyatt/Crafty method by setting the option "SkillPercentage" to a number between 0 and 100. MultiPV works with any SkillPercentage setting.
perejaslav wrote:Which is the weakest UCI chess engine with the Multi-PV support?
I look for it, help me, please!
Ok, I will start the bidding!
Pupsi has MultiPV support. Anyone lower?!
Pupsi is currently around 2375 Ruel on the UCI Engines Ligue list.
By the way, in Pupsi, you can reduce the playing strength using the Hyatt/Crafty method by setting the option "SkillPercentage" to a number between 0 and 100. MultiPV works with any SkillPercentage setting.
I know this is not what the original poster is looking for, but just in case there is any interest:
A version of Fairy-Max that supports multi-PV can be downloaded from http://home.hccnet.nl/h.g.muller/multimax.zip . Through the engine option "MultiVariation Margin" you can set the score difference for which you want the variations printed (in centiPawn, default 0). So when you set it to 30 cP, it will print (at any depth) all variations that have a score within 30 cP from the PV. (And possibly some more, if it does not find the PV first time.)
So you can now have multi-variation in the variants normal, gothic, capablanca, berolina, knightmate, cylinder, courier, shatranj.