Your trusted source for computer chess information!

Differences

This shows you the differences between two versions of the page.

computer_chess:engines:myrddin:index 2022/03/15 20:12 computer_chess:engines:myrddin:index 2023/06/11 14:00 current
Line 5: Line 5:
First of all, thanks very much to Ron Murawski for making this site available and hosting Myrddin here! =) First of all, thanks very much to Ron Murawski for making this site available and hosting Myrddin here! =)
-This version supports SMP via processes (up to 16 instances) and is about 160 ELO stronger than v0.87 at 1 CPU and a further 90 ELO stronger at 4 CPUs. This version has not been formally tested above 4 CPUs so it is unknown how well it will scale above 4 CPUs.+Myrddin 0.90 supports SMP via processes (up to 16 instances) and is about 50 ELO stronger than v0.89 at 1 CPU and a further 80 ELO stronger at 4 CPUs. This version has not been formally tested above 4 CPUs so it is unknown how well it will scale above 4 CPUs.
==== Download ==== ==== Download ====
-[[https://www.dropbox.com/s/v3amg3x4kkpjwqk/Myrddin%20088.rar?dl=0 | Myrddin 0.88]] (released 7/18/21, CCRL rating estimated at 2570 at 1 CPU and 2680 at 4 CPUs)\\+Executable Package - [[https://www.dropbox.com/s/z2fkfkyxigohhp7/Myrddin%20090.rar?dl=0 | Myrddin 0.90]] (released 6/9/23, CCRL rating approximately 2650 at 1 CPU and 2730 at 4 CPUs)\\ 
 +Source Code - [[https://github.com/JVMerlino/Myrddin | Myrddin Source]]
== Old versions == == Old versions ==
-{{myrddin087.rar | Myrddin 0.87}} (released 1/25/15, CCRL rating estimated at 2395 at 1 CPU and 2485 at 4 CPUs)\\ +[[https://www.dropbox.com/s/1ksfgbrtnpahg3o/Myrddin%20089.rar?dl=0 | Myrddin 0.89]] (released 6/3/22, CCRL rating of 2597 at 1 CPU)\\ 
-{{myrddin086-ja.zip | Myrddin 0.86}} (released 12/21/12, CCRL rated approximately 2360)\\+[[https://www.dropbox.com/s/v3amg3x4kkpjwqk/Myrddin%20088.rar?dl=0 | Myrddin 0.88]] (released 7/18/21, CCRL rating of 2560 at 1 CPU and 2629 at 4 CPUs)\\ 
 +{{myrddin087.rar | Myrddin 0.87}} (released 1/25/15, CCRL rating of 2399 at 1 CPU and 2482 at 4 CPUs)\\ 
 +{{myrddin086-ja.zip | Myrddin 0.86}} (released 12/21/12, CCRL rating of 2365)\\
This package contains Windows32/64, Linux32/64, & Android executables compiled by [[http://jim-ablett.co.de/ | Jim Ablett]], and a Mac executable compiled by [[http://predateur-chess.blogspot.com | Julien Marcel]], author of the Prédateur chess engine.\\ This package contains Windows32/64, Linux32/64, & Android executables compiled by [[http://jim-ablett.co.de/ | Jim Ablett]], and a Mac executable compiled by [[http://predateur-chess.blogspot.com | Julien Marcel]], author of the Prédateur chess engine.\\
-{{myrddin085.rar | Myrddin 0.85}} (released 5/3/11, CCRL rated approximately 2220)\\ +{{myrddin085.rar | Myrddin 0.85}} (released 5/3/11, CCRL rating of 2223)\\ 
-{{myrddin084.rar | Myrddin 0.84}} (released 9/17/10, CCRL rated approximately 2115)\\ +{{myrddin084.rar | Myrddin 0.84}} (released 9/17/10, CCRL rating of 2115)\\ 
-{{myrddin083.rar | Myrddin 0.83}} (released 2/22/10, CCRL rated approximately 2015)\\+{{myrddin083.rar | Myrddin 0.83}} (released 2/22/10, CCRL rating of 2010)\\
{{myrddin082.rar | Myrddin 0.82}} (released 9/26/09, estimated CCRL rating of 1915)\\ {{myrddin082.rar | Myrddin 0.82}} (released 9/26/09, estimated CCRL rating of 1915)\\
-{{myrddin_alpha_2.rar | Myrddin Alpha 2}} (released 5/26/09, estimated CCRL rating of 1550)\\ +{{myrddin_alpha_2.rar | Myrddin 0.81}} (released 5/26/09, estimated CCRL rating of 1550)\\ 
-{{myrddin_alpha_1.rar | Myrddin Alpha 1}} (released 3/9/09, estimated CCRL rating of 1150)\\+{{myrddin_alpha_1.rar | Myrddin 0.80}} (released 3/9/09, estimated CCRL rating of 1250)\\
---- ----
==== Release Notes ==== ==== Release Notes ====
-Myrddin 0.89 -- 12/4/21+Myrddin 0.90 -- 6/9/23
Myrddin is a winboard-compliant chess engine to a reasonable degree. It supports protover 1 primarily to support the Chessmaster interface, and also protover 2. Myrddin is a winboard-compliant chess engine to a reasonable degree. It supports protover 1 primarily to support the Chessmaster interface, and also protover 2.
-The 64-bit version of Myrddin should play approximately 2610 ELO against chess engines at 1 CPU (using CCRL rating), and probably 100 points higher against humans. This is an improvement of about 40 points compared to the previous release. Myrddin should play about 110 points stronger at 4 CPU.+The 64-bit version of Myrddin should play approximately 2650 ELO against chess engines at 1 CPU (using CCRL rating), and probably 100 points higher against humans. This is an improvement of about 50 points compared to the previous release. Myrddin should play about 80 points stronger at 4 CPU.
The following winboard commands are supported: The following winboard commands are supported:
Line 59: Line 62:
  * "divide N" -- extension to perft algorithm showing the number of leaf nodes of depth N from the current position, divided among each legal move from the current position.   * "divide N" -- extension to perft algorithm showing the number of leaf nodes of depth N from the current position, divided among each legal move from the current position.
  * "tb" -- toggles Gaviota endgame tablebase support   * "tb" -- toggles Gaviota endgame tablebase support
 +  * "rpt" -- runs a short pre-defined perft test, using bulk counting with only one thread
 +  * "see" -- returns the SEE value of a capture on the current position - example usage "see d4 e5"
None of these commands are supported while Myrddin is searching/analyzing. None of these commands are supported while Myrddin is searching/analyzing.
---- ----
Line 71: Line 76:
-- Myrddin's "Very Lazy SMP" implementation uses (N-1) child processes to fill the transposition, eval and pawn hash tables so the parent process can search deeper in the same amount of time. I believe Myrddin is the only engine that has implemented SMP with this method (and probably rightly so!).\\ -- Myrddin's "Very Lazy SMP" implementation uses (N-1) child processes to fill the transposition, eval and pawn hash tables so the parent process can search deeper in the same amount of time. I believe Myrddin is the only engine that has implemented SMP with this method (and probably rightly so!).\\
-- Myrddin uses Pradyumna Kannan's [[http://www.pradu.us/old/Nov27_2008/Buzz/ | magicmoves]] code for move generation of sliding pieces.\\ -- Myrddin uses Pradyumna Kannan's [[http://www.pradu.us/old/Nov27_2008/Buzz/ | magicmoves]] code for move generation of sliding pieces.\\
--- This the first version of Myrddin to have a tapered eval, and the eval was hand-tuned using a very rudimentary Texel tuning system.\\ +-- Myrddin uses a tapered eval which was tuned using a very rudimentary Texel tuning system.\\ 
--- Search is basic alpha/beta, with reasonable and generally conservative extensions and reductions.\\ +-- Search is basic alpha/beta, with typical extensions and reductions.\\
-- All user-modifiable parameters are supported in the INI file, an example of which is included in the download.\\ -- All user-modifiable parameters are supported in the INI file, an example of which is included in the download.\\
--- Max search depth is 128.\\+-- Max search depth is 128 ply.\\
-- The [[http://members.home.nl/matador/prodeo.htm | ProDeo opening book]] is used by kind permission of Ed Schröder.\\ -- The [[http://members.home.nl/matador/prodeo.htm | ProDeo opening book]] is used by kind permission of Ed Schröder.\\
-- Draw claims from the opponent are not supported. Myrddin does, however, claim all draws by rule, as well as checkmate.\\ -- Draw claims from the opponent are not supported. Myrddin does, however, claim all draws by rule, as well as checkmate.\\
--- There is enough winboard support to play games on ICS. But without support for "draw" I'm sure there are some scary loopholes and/or exploits.\\ +-- There is enough Winboard support to play games on ICS. But without support for "draw" I'm sure there are some scary loopholes and/or exploits.\\
-- When the engine is in analysis mode, positive scores always favor White and negative scores always favor Black. When the engine is thinking or pondering, positive scores favor Myrddin.\\ -- When the engine is in analysis mode, positive scores always favor White and negative scores always favor Black. When the engine is thinking or pondering, positive scores favor Myrddin.\\
-- Logfiles will be in the "logs" folder below the folder where you ran Myrddin. The output of the log is not very interesting -- just PV output and communication reality-check stuff. If you are running Myrddin with multiple CPUs, there will be one logfile for each process.\\ -- Logfiles will be in the "logs" folder below the folder where you ran Myrddin. The output of the log is not very interesting -- just PV output and communication reality-check stuff. If you are running Myrddin with multiple CPUs, there will be one logfile for each process.\\
Line 95: Line 100:
Versions 0.83 through 0.83k participated in [[http://www.open-aurec.com/chesswar/openwar.html|OpenWar 7]]. This was a round-robin tournament with 76 engines. I was hoping that Myrddin would place around 55th and score about 25 points. But, despite some noticeable improvements in Myrddin that went into version 0.84, Myrddin performed poorly and finished in 62nd place, with only 20.5 points (+14 =13 -48). Myrddin's best results were draws against the 11th place engine, WaDuuttie, and the 20th place engine, Rotor. Both of these engines are rated 2500+. Its best win was against the 45th place engine, Sungorus, rated 2300+. The only other good thing that can be said is that Myrddin had good results against the 18 engines that finished immediately above him (+3 =9 -6). Versions 0.83 through 0.83k participated in [[http://www.open-aurec.com/chesswar/openwar.html|OpenWar 7]]. This was a round-robin tournament with 76 engines. I was hoping that Myrddin would place around 55th and score about 25 points. But, despite some noticeable improvements in Myrddin that went into version 0.84, Myrddin performed poorly and finished in 62nd place, with only 20.5 points (+14 =13 -48). Myrddin's best results were draws against the 11th place engine, WaDuuttie, and the 20th place engine, Rotor. Both of these engines are rated 2500+. Its best win was against the 45th place engine, Sungorus, rated 2300+. The only other good thing that can be said is that Myrddin had good results against the 18 engines that finished immediately above him (+3 =9 -6).
== ChessWar XVI == == ChessWar XVI ==
-Version 0.84 participated in the F division of [[http://www.open-aurec.com/chesswar|ChessWar XVI]]. There were 80 engines in the tournament and Myrddin was seeded 70th. Myrddin finished respectably in 49th place with 5 points (+3 =4 -4). Its best performance was a draw against the engine that finished in 6th place.+Version 0.84 participated in the F division of [[http://www.open-aurec.com/chesswar|ChessWar XVI]]. There were 80 engines in the tournament and Myrddin was seeded 70th. Myrddin finished respectably in 49th place with 5 points (+3 =4 -4). Its best performance was a draw against Lime, the engine that finished in 6th place.
== CCRL Amateur Division 7 (Series 23) == == CCRL Amateur Division 7 (Series 23) ==
Version 0.84 (32-bit) was the first version to win any tournament, doing so in the 23rd Series the [[http://www.computerchess.org.uk/ccrl|CCRL]] Amateur Division 7. It competed with nine other engines in a double-round robin and won with a score of 23.5 out of 36 (+20 =7 -9). This victory promoted Myrddin to Division 6. Version 0.84 (32-bit) was the first version to win any tournament, doing so in the 23rd Series the [[http://www.computerchess.org.uk/ccrl|CCRL]] Amateur Division 7. It competed with nine other engines in a double-round robin and won with a score of 23.5 out of 36 (+20 =7 -9). This victory promoted Myrddin to Division 6.
Line 108: Line 113:
== WAC (Win at Chess) == == WAC (Win at Chess) ==
-300 positions at 5s per position. Almost exclusively tactical positions, many leading to mate. Myrddin finds 298 correct moves within the time limit. Regarding the two missed positions (263, 293), they are both found within 15 seconds. This suite can be found [[http://www.bergbomconsulting.se/chess/epdfiles/wac.epd|here]].+300 positions at 5s per position. Almost exclusively tactical positions, many leading to mate. Myrddin finds 297 correct moves within the time limit. Regarding the three missed positions (230, 256, 293), only #256 is found within 15 seconds. The other two are not found within 30 seconds. This suite can be found [[http://www.bergbomconsulting.se/chess/epdfiles/wac.epd|here]].
== Strategic Test Suite == == Strategic Test Suite ==
-A series of (currently, but occasionally expanding) 14 individual suites of 100 positions each, primarily intending to test positional knowledge such as square vacancy, proper recapturing, pawn advancement, control of the center, etc. At 10s per move, Myrddin gets 932 out of 1400 positions correct. This suite is also interesting because it contains "partial credit". In other words, you can still get some points by choosing moves other than the optimal. Myrddin gets 10,820 out of 14,000 points if partial credit is included. You can download this test suite [[http://sites.google.com/site/strategictestsuite|here]].+A series of (currently, but occasionally expanding) 14 individual suites of 100 positions each, primarily intending to test positional knowledge such as square vacancy, proper recapturing, pawn advancement, control of the center, etc. At 10s per move, Myrddin gets 952 out of 1400 positions correct. This suite is also interesting because it contains "partial credit". In other words, you can still get some points by choosing moves other than the optimal. Myrddin gets 10,914 out of 14,000 points if partial credit is included. You can download this test suite [[http://sites.google.com/site/strategictestsuite|here]].
== O'Kelly == == O'Kelly ==
-176 positions at 10s per position. Combinative middlegame and endgame suite. Myrddin finds 135 positions within the time limit. You can download this test suite [[http://www.horizonchess.com/Download.html|here]].+176 positions at 10s per position. Combinative middlegame and endgame suite. Myrddin finds 136 positions within the time limit. You can download this test suite [[http://www.horizonchess.com/Download.html|here]].
== Eigenmann Endgame Test == == Eigenmann Endgame Test ==
-100 positions at 10s per position. Myrddin does not do very well at this suite, getting only 37 correct moves within the time limit. You can download this test suite [[http://computer-chess.org/doku.php?id=computer_chess:wiki:download:epd_contents|here]].+100 positions at 10s per position. Myrddin does not do very well at this suite, getting only 41 correct moves within the time limit. You can download this test suite [[http://computer-chess.org/doku.php?id=computer_chess:wiki:download:epd_contents|here]].
== IQ 8.1 == == IQ 8.1 ==
-182 positions at 10s per position. Challenging tactical suite. Myrddin finds 144 positions within the time limit. You can download this test suite [[http://www.horizonchess.com/Download.html|here]].+182 positions at 10s per position. Challenging tactical suite. Myrddin finds 158 positions within the time limit. You can download this test suite [[http://www.horizonchess.com/Download.html|here]].
====FULL DISCLOSURE==== ====FULL DISCLOSURE====
Line 126: Line 131:
====Version/Change List==== ====Version/Change List====
 +
 +== Version 0.90 (6/9/23) ==
 +-- Fixed two bugs in SEE (stopped the calculation if the first capture was of equal value, and failed to include Kings in the calculation)\\
 +-- Fixed a bug that could cause a save to the hash table even if there was no best move\\
 +-- Tuned PST files for the first time, and re-tuned all other eval terms\\
 +-- Captures with negative SEE value can now be reduced\\
 +-- IID is now more aggressive in its depth reduction and can be applied in PV nodes\\
 +-- LMR reduction is now one depth less for PV nodes\\
 +-- No longer limiting the number of extensions for a single branch\\
 +-- Reduced the number of aspiration windows before performing a full-width search from six to two\\
 +-- Fixed a rare bug such that if a tt probe or IID returned an underpromotion it would not be moved to the front of the movelist\\
 +-- Fixed an issue when receiving the "force" command while pondering, which can happen with some GUIs\\
 +-- Modified the compiler options for magicmoves to improve perft results by 5%.\\
 +-- Various minor optimizations\\
 +-- Added "see" command to return the SEE value of a capture on the current position - example usage "see d4 e5"\\
 +-- Added "rpt" command to run a brief perft test (perft uses bulk counting)\\
 +-- Removed "-64" from version string as there is no longer a 32-bit version\\
 +
 +== Version 0.89 (6/3/22) ==
 +-- Added Late Move Pruning\\
 +-- Late Move Reductions are now more aggressive and use a logarithmic formula\\
 +-- Bad captures are now subject to LMR\\
 +-- Moved killer moves before equal captures in move ordering\\
 +-- Moved bad captures after quiet moves in move ordering\\
 +-- Moves that give check are no longer flagged as such at move generation, but instead during MakeMove()\\
 +-- Reduced the number of fail high/low results at the root before searching on full-width window\\
 +-- BitScan now uses an intrinsic function rather than MS Windows' BitScanForward64() - thank you to Pawel Osikowski and Bo Persson for the suggestion!\\
 +-- Null Move now uses a reduction of 3+(depth/6) instead of just 3\\
 +-- Myrddin will now move instantly if TBs are available and <= 5 men on board. Previously it would "search" all the way to max depth (128) before moving, causing potential buffer problems with some GUIs at very fast time controls.\\
 +-- Minor evaluation tuning adjustments, most notably adding code for Bishop Outposts and a significant increase for pawns on the 7th rank\\
 +-- Increased the aggressiveness of SMP depth adjustment for child processes\\
== Version 0.88 (7/18/21) == == Version 0.88 (7/18/21) ==

Personal Tools