Stefan Pohl Computer ChessHome of famous UHO openings and EAS Ratinglist
The Cerberus Project
Building one engine out of Patricia, Velvet risky-net and Velvet normal-net...
Download Cerberus here (because I want to avoid any copyright-issues, you have to download the binaries of Velvet and Patricia by yourself. At the bottom of this site and in the ReadMe file in the download, you find a step-by-step manual, what to do (it is very easy!)...) Cerberus is a combination of 2 engines (Patricia 4 and Velvet 8.1.1), using 3 different neural nets (Patricia 4 net, Velvet 8.1.1 risky net and Velvet 8.1.1 normal net). This is the reason for naming the project Cerberus:
I used the Eman Chimera program by Khalid Omar, to make one engine out of these. Which engine/net is used, depends on the number of pieces on the board:
Pieces / EAS-scores (EAS taken from my full UHO-Ratinglist):
This means a decreasing aggressiveness in playing-style in an ongoing game, depending on the number of pieces. But an increasing understanding of chess and a more solid play in endgame, because both nets of Velvet are much bigger than the very small net of Patricia 4 (both nets of Velvet are 24 MByte, Patricia 4 net is only 1.13 MByte !!!)
Here the first 8 of my full EAS Ratinglist:
bad avg.win
Program Celo + - Games Score Av.Op. Draws
The estimated strength of Cerberus is somewhere around Stockfish 11, clearly stronger than Patricia 4 alone (+66 Celo (!)). But still a very aggressive play, especially at the beginning of a game. Followed by much better play (by Velvet 8.1) to convert the attack - started by Patricia - into a win. Or, if the attack of Patricia failed, much more resilant play (by Velvet 8.1), trying to save the game and playing good endgames. Mention, the EAS-Score of Cerberus 21124081r81 is 315346 and the won games with a sac percents are 43.56%, so Cerberus lost only 7.4% EAS-Score compared to Patricia 4 (testruns were identical: 14000 games each, same 14 opponents, same UHO-openings). And Cerberus lost only -3.4% sac percents (Patricia 4 has 46.96% won games with a sac). But Cerberus gained +66 Celo to Patricia 4, because it plays late middlegames and endgames much better!!
Mention, all the Kudos are going to (NOT ME!!!):
Learn more about Patricia, the "heart" of Cerberus, on Patricia - the EAS Engine I did 7 testruns of Cerberus with different first piece-number-limit (PNL), so Velvet risky starts playing later or sooner and Patricia is switched off. Mention, the EAS-Scores of the following testruns are a little bit lower, because the calculation was
Score EAS sacs disconnects Considering these results, I decided to choose Cerberus 21124080r81 as release-version. But, if you dont like this, you can change the piece-number-limit in the settings-file very easily...
Step by step guide to build Cerberus:
1) Download the 2 engines needed: Patricia 4 and Velvet 8.1.1 from GitHub (or the JA binaries of Patricia 4 by Jim Ablett), choose the fastest binaries on your system (mostly avx2)
Velvet 8.1.1 avx2 from GitHub:
https://github.com/mhonert/velvet-chess/releases/download/v8.1.1/velvet-v8.1.1-x86_64-avx2.exe
Jim Ablett Binaries of Patricia 4:
https://drive.proton.me/urls/0GWGH1T6WG#wXMl5y7fwG35
2) Put both binaries in the Cerberus folder.
Explanation of the "version-number" of current Cerberus, which looks really strange:
Cerberus 21124081r81 =
Cerberus 21 12 40 81r 81
digit 1-2: First piece-number-limit (for switching from engine 1 to 2) = 21
digit 3-4: Second piece-number-limit (for switching from engine 2 to 3) = 12
digit 5-6: Version-number of engine 1 = 40 = Patricia 4.0
digit 7-9: Version-number of engine 2 = 81r = Velvet 8.1 risky
digit 10-11: Version-number of engine 3 = 81 = Velvet 8.1
3) Use any editor to open the Cerberus.xml File. This is the settings-file of Cerberus:
<ChimeraUciConfig SwitchingOverheadSeconds="1" SwitchingMode="PieceCount" ShowThreads="false" ShowHash="false">
<Name>Cerberus 21124081r81</Name>
<Engine FromMove="-1" FromPieceCount="32">
<Exe>.\Patricia_4.0_64_JA_bmi2.exe</Exe>
<Arguments />
<Username />
<Password />
<Param Name="Threads">1</Param>
<Param Name="Hash">512</Param>
</Engine>
<Engine FromMove="-1" FromPieceCount="21">
<Exe>.\velvet-v8.1.1-x86_64-avx2.exe</Exe>
<Arguments />
<Username />
<Password />
<Param Name="Threads">1</Param>
<Param Name="Hash">512</Param>
<Param Name="Move Overhead">300</Param>
<Param Name="Style">Risky</Param>
</Engine>
<Engine FromMove="-1" FromPieceCount="12">
<Exe>.\velvet-v8.1.1-x86_64-avx2.exe</Exe>
<Arguments />
<Username />
<Password />
<Param Name="Threads">1</Param>
<Param Name="Hash">512</Param>
<Param Name="Move Overhead">300</Param>
</Engine>
</ChimeraUciConfig>
4) In the <Exe>-lines, you have to change the engine-names to the exact name of the downloaded engine-files of Patricia and Velvet, if necessary. If you want, you can change the 2 piece-switch limits, where Cerberus switches to the next engine (21 and 12), too (FromPieceCount="21", FromPieceCount="12"). If you do so, I recommend to change the <Name>Cerberus 21124081r81</Name> line too, to the new piece-switch limits...
5) Start the Cerberus.exe with doubleclick in console-mode, to check, if Cerberus is working. Cerberus should print out the three installed engines and the piece-switch limit. (Velvet 8.1.1 is displayed twice, because the two Velvets (Style Risky, Style Normal) do not print this setting, so they look similar, but they are not, if you have done everything right...)
6) Now, Cerberus can be used in any (?) GUI. I tried Cutechess-cli, Cutechess GUI, Arena, Fritz. Mention, a MultiPV analysis mode does not exist, because Eman Chimera does not support this feature.
7) It is possible to use other engines in Cerberus (and use only 2 engines, instead of 3) by changing the .xml file. For any advanced computerchess-user, this should be self-explaining... |