First ever Minic draw versus Stockfish (Minic playing white here). This is just a lucky pawn structure...
[pgn]
1. Nf3 d5 2. d4 Bf5 3. e3 {+0.26/9} e6 {-0.04/15} 4. Bd3 {+0.08/12} Bxd3 {-0.16/18} 5. cxd3 {+0.01/12} c5 {-0.22/18} 6. Qb3 {+0.48/13} b6 {-0.02/15} 7. O-O {+0.83/12} cxd4 {+0.14/15} 8. Nxd4 {+0.52/13} Bc5 {-0.04/18} 9. Nc3 {+0.58/12} Nf6 {+0.00/18} 10. Bd2 {+0.32/15} O-O {+0.14/17} 11. Rac1 {+0.32/14} Qd7 {+0.19/17} 12. Qa4 {+0.27/15} Rc8 {+0.01/18} 13. Rfe1 {+0.27/15} a6 {+0.19/14} 14. Qb3 {+0.21/15} Bxd4 {+0.29/16} 15. exd4 {+0.15/15} Nc6 {+0.31/19} 16. Ne2 {+0.10/14} Qb7 {+0.35/18} 17. Be3 {+0.12/15} b5 {+0.47/16} 18. Ng3 {+0.21/14} h6 {+0.57/15} 19. Rc5 {+0.33/14} Nd7 {+0.58/17} 20. Rc3 {+0.25/18} a5 {+0.69/17} 21. Rec1 {+0.26/18} b4 {+0.68/21} 22. a4 {+0.24/18} Ne7 {+0.70/19} 23. f3 {+0.07/15} Rab8 {+0.67/17} 24. R3c2 {+0.03/20} Rxc2 {+0.60/20} 25. Qxc2 {+0.08/18} Rc8 {+0.70/18} 26. Qd2 {-0.11/16} Rxc1+ {+0.58/14} 27. Qxc1 {-0.12/16} Qc6 {+0.66/18} 28. Qxc6 {-0.01/23} Nxc6 {+0.57/20} 29. b3 {-0.01/21} g5 {+0.57/19} 30. Ne2 {-0.05/20} Kg7 {+0.56/23} 31. h3 {-0.04/17} Ne7 {+0.52/22} 32. g4 {-0.10/18} Ng6 {+0.54/20} 33. f4 {+0.06/20} f6 {+0.52/22} 34. Kg2 {+0.03/19} Kf7 {+0.43/21} 35. Kg3 {+0.01/22} Nh4 {+0.41/23} 36. fxg5 {+0.00/21} hxg5 {+0.74/19} 37. Kf2 {+0.00/24} Nf8 {+0.74/26} 38. Bd2 {+0.00/21} Ke7 {+0.72/25} 39. Kg3 {-0.08/27} Nfg6 {+0.66/29} 40. Ng1 {-0.16/27} Kd7 {+0.66/27} 41. Be3 {-0.16/23} Kd6 {+0.66/31} 42. Ne2 {-0.15/22} Ke7 {+0.85/30} 43. Kf2 {-0.23/21} Kf8 {+0.87/29} 44. Ng1 {-0.25/21} Kg7 {+0.92/26} 45. Nf3 {-0.25/24} Nxf3 {+0.66/29} 46. Kxf3 {-0.64/23} Kh6 {+0.66/29} 47. Bd2 {-0.57/24} Kh7 {+0.58/29} 48. Ke2 {-0.57/23} Kg7 {+0.58/26} 49. Be3 {-0.60/22} Kf7 {+0.62/28} 50. Kf3 {-0.23/25} Ke7 {+0.51/27} 51. Kg3 {-0.22/27} Nh4 {+0.58/30} 52. Bc1 {-0.22/33} Kd6 {+0.58/30} 53. Bd2 {-0.22/29} Ng6 {+0.50/29} 54. Be3 {-0.22/28} Kd7 {+0.50/31} 55. Bc1 {-0.22/29} Nh4 {+0.50/33} 56. Bd2 {-0.22/36} Kd6 {+0.50/33} 57. Be3 {-0.22/30} Kc6 {+0.50/34} 58. Kf2 {-0.22/34} Kb6 {+0.50/39} 59. Ke2 {-0.22/33} Ka6 {+0.50/33} 60. Bd2 {-0.22/28} Kb7 {+0.50/32} 61. Be1 {-0.22/28} Ng6 {+0.50/32} 62. Kf3 {-0.22/25} Kb6 {+0.50/30} 63. Bd2 {-0.22/32} Nh4+ {+0.50/34} 64. Kg3 {-0.22/37} Kc6 {+0.50/36} 65. Kf2 {-0.22/32} Ng6 {+0.50/32} 66. Bc1 {-0.22/31} Kd6 {+0.50/33} 67. Be3 {-0.22/30} Kc7 {+0.50/33} 68. Kg3 {-0.22/31} Nh4 {+0.50/36} 69. Bd2 {-0.22/32} Kb7 {+0.50/36} 70. Kf2 {-0.44/24} Ng6 {+0.50/36} 71. Be1 {-0.44/24} Kc6 {+0.50/28} 72. Bd2 {-0.60/24} Kd7 {+0.50/33} 73. Be3 {-0.48/27} Nh4 {+0.50/32} 74. Ke2 {-0.25/25} Ng2 {+0.50/29} 75. Bd2 {-0.55/25} Kc8 {+0.50/32} 76. Kd1 {-0.20/25} Kc7 {+0.50/31} 77. Ke2 {-0.20/25} Kd8 {+0.50/33} 78. Kd1 {-0.20/26} Ke7 {+0.50/30} 79. Ke2 {-0.14/27} Ke8 {+0.50/29} 80. Kd1 {-0.53/27} Kd8 {+0.42/31} 81. Ke2 {-0.13/26} Ke7 {+0.34/29} 82. Kd1 {-0.13/26} Kd6 {+0.00/29} 83. Ke2 {-0.13/25} Kc7 {+0.00/32} 84. Kd1 {-0.20/25} Nh4 {+0.00/31} 85. Be1 {-0.02/26} Kd6 {+0.00/33} 86. Bg3+ {+0.00/28} Kc6 {+0.00/34} 87. Ke2 {+0.00/29} Ng6 {+0.00/35} 88. Kf3 {+0.00/25} Kb6 {+0.00/31} 89. Ke3 {+0.00/28} Kc6 {+0.00/39} 90. Ke2 {+0.00/29} Kb6 {+0.00/32} 91. Kf3 {+0.00/27} Kc6 {+0.00/34} 92. Ke2 {+0.00/31} Kb6 {+0.00/35} 93. Kf3 {+0.00/29} Kc6 {+0.00/39} 94. Ke2
[/pgn]
A complete 2000 lines of code engine
Moderators: hgm, Rebel, chrisw
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
Recent progress
Code: Select all
Rank Name Elo +/- Games Score Draws
1 minic_dev 32 11 2303 54.6% 41.7%
2 minic_0.65 26 11 2304 53.8% 43.7%
3 minic_0.53 -5 11 2302 49.3% 40.6%
4 minic_0.47 -53 12 2303 42.4% 27.0%
4606 of 6000 games finished.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
In this game versus redqueen, Minic decided to trade down its two rooks for an army of passers and to win the game... And I like that !
[pgn] [Event "Computer game"] [Site "https://lichess.org/O23UKywb"] [Date "2019.06.17"] [Round "?"] [White "RedQueen 1.1.3"] [Black "Minic 0.65 64-bit"] [Result "*"] [WhiteElo "?"] [BlackElo "?"] [Variant "Standard"] [TimeControl "-"] [ECO "A07"] [Opening "King's Indian Attack"] [Termination "Unterminated"] [Annotator "lichess.org"] 1. Nf3 d5 2. g3 { A07 King's Indian Attack } c6 3. Bg2 Nf6 4. c4 Bg4 5. d4 e6 6. O-O Be7 7. Nc3 Nbd7 8. cxd5 exd5 9. Qc2 O-O 10. h3 Bh5 11. Bd2 Bg6 12. Qb3 Ne4 13. Bf4 Qb6 14. Qxb6 axb6 15. Nxe4 Bxe4 16. h4 Rfe8 17. Bh3 Nf8 18. Ne5 Ne6 19. Bxe6 fxe6 20. f3 Bc2 21. Rac1 Ba4 22. b3 Bb5 23. Rc2 c5 24. a4 Ba6 25. Rb1 cxd4 26. b4 b5 27. a5 Rac8 28. Rd2 Rc3 29. Kg2 Bf6 30. Rbb2 Rc4 31. Rd1 Rec8 32. Nxc4 dxc4 33. Bd6 Rc6 34. Bc5 e5 35. Rbb1 c3 36. Rdc1 Rxc5 37. bxc5 Be7 38. c6 bxc6 39. e3 b4 40. exd4 exd4 41. h5 d3 * [/pgn]
[pgn] [Event "Computer game"] [Site "https://lichess.org/O23UKywb"] [Date "2019.06.17"] [Round "?"] [White "RedQueen 1.1.3"] [Black "Minic 0.65 64-bit"] [Result "*"] [WhiteElo "?"] [BlackElo "?"] [Variant "Standard"] [TimeControl "-"] [ECO "A07"] [Opening "King's Indian Attack"] [Termination "Unterminated"] [Annotator "lichess.org"] 1. Nf3 d5 2. g3 { A07 King's Indian Attack } c6 3. Bg2 Nf6 4. c4 Bg4 5. d4 e6 6. O-O Be7 7. Nc3 Nbd7 8. cxd5 exd5 9. Qc2 O-O 10. h3 Bh5 11. Bd2 Bg6 12. Qb3 Ne4 13. Bf4 Qb6 14. Qxb6 axb6 15. Nxe4 Bxe4 16. h4 Rfe8 17. Bh3 Nf8 18. Ne5 Ne6 19. Bxe6 fxe6 20. f3 Bc2 21. Rac1 Ba4 22. b3 Bb5 23. Rc2 c5 24. a4 Ba6 25. Rb1 cxd4 26. b4 b5 27. a5 Rac8 28. Rd2 Rc3 29. Kg2 Bf6 30. Rbb2 Rc4 31. Rd1 Rec8 32. Nxc4 dxc4 33. Bd6 Rc6 34. Bc5 e5 35. Rbb1 c3 36. Rdc1 Rxc5 37. bxc5 Be7 38. c6 bxc6 39. e3 b4 40. exd4 exd4 41. h5 d3 * [/pgn]
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
So after previous unsuccessful tries, I decided it is time to tune Minic for real ...
I'm using the classics : Texel tunig method, gradient descent (using batch of size one tenth of the full data set), quiet.edp from zurichess.
In the past i've also tried "naive" descend, PSO, secant method, but a simple gradient seems to work here without linesearch as soon as I set the learning rate to be at most 2 for the most important parameter at each step (so that I don't really follow the real gradient but it's most important parts).
I'm tuning families of parameters one by one, so pawn stuff, mobility stuff, rook stuff, ...
And well ... it's work ... very well ... I currently have +120 at short TC in self test against Minic 0.65 !
I'm using the classics : Texel tunig method, gradient descent (using batch of size one tenth of the full data set), quiet.edp from zurichess.
In the past i've also tried "naive" descend, PSO, secant method, but a simple gradient seems to work here without linesearch as soon as I set the learning rate to be at most 2 for the most important parameter at each step (so that I don't really follow the real gradient but it's most important parts).
I'm tuning families of parameters one by one, so pawn stuff, mobility stuff, rook stuff, ...
And well ... it's work ... very well ... I currently have +120 at short TC in self test against Minic 0.65 !
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
After this great tuning session, Minic seems to be heading for 2800 soon
Code: Select all
Rank Name Elo +/- Games Score Draws
1 rofChade 188 55 142 74.6% 23.9%
2 minic_0.73_mingw_x64_sse4.2 175 54 142 73.2% 25.4%
3 Topple_0.4.0_nehalem 111 53 142 65.5% 21.1%
4 minic_0.65_mingw_x64_sse4.2 80 49 142 61.3% 28.2%
5 minic_0.53_mingw_x64_sse4.2 39 50 142 55.6% 23.9%
6 fruit_21 25 48 142 53.5% 29.6%
7 minic_0.47_mingw_x64_sse4.2 -32 50 142 45.4% 26.1%
8 drosophila-win64 -139 56 142 31.0% 16.9%
9 Bitfoot -225 64 142 21.5% 12.0%
10 myrddin -260 65 142 18.3% 15.5%
710 of 45000 games finished.
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: A complete 2000 lines of code engine
+1 keep up the good work , I like what you are doing !xr_a_y wrote: ↑Tue Jul 02, 2019 6:53 am After this great tuning session, Minic seems to be heading for 2800 soon
Code: Select all
Rank Name Elo +/- Games Score Draws 1 rofChade 188 55 142 74.6% 23.9% 2 minic_0.73_mingw_x64_sse4.2 175 54 142 73.2% 25.4% 3 Topple_0.4.0_nehalem 111 53 142 65.5% 21.1% 4 minic_0.65_mingw_x64_sse4.2 80 49 142 61.3% 28.2% 5 minic_0.53_mingw_x64_sse4.2 39 50 142 55.6% 23.9% 6 fruit_21 25 48 142 53.5% 29.6% 7 minic_0.47_mingw_x64_sse4.2 -32 50 142 45.4% 26.1% 8 drosophila-win64 -139 56 142 31.0% 16.9% 9 Bitfoot -225 64 142 21.5% 12.0% 10 myrddin -260 65 142 18.3% 15.5% 710 of 45000 games finished.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
Previous post was at 40/1min TC. This one is on 40/20sec
Code: Select all
Rank Name Elo +/- Games Score Draws
1 zurichess-neuchatel 235 16 1884 79.4% 20.9%
2 MinkoChess_1.3 200 16 1884 75.9% 19.7%
3 ruy-1.1.9 83 14 1884 61.8% 23.6%
4 minic_0.73 67 13 1884 59.5% 33.5%
5 minic_0.70 58 13 1886 58.2% 34.8%
6 minic_0.72 51 13 1885 57.3% 32.8%
7 minic_0.71 38 13 1885 55.4% 33.6%
8 minic_0.69 20 13 1885 52.9% 32.6%
9 minic_0.65 -9 13 1885 48.6% 33.0%
10 minic_0.61 -16 13 1884 47.7% 31.4%
11 redqueen-1.1.98 -31 14 1884 45.6% 21.9%
12 wyldchess1.51 -32 14 1884 45.5% 25.6%
13 minic_0.53 -44 13 1883 43.7% 31.9%
14 minic_0.57 -51 13 1885 42.7% 29.9%
15 minic_0.47 -71 14 1885 39.9% 25.6%
16 igel -92 14 1883 37.0% 21.3%
17 Fridolin310 -117 15 1884 33.8% 19.5%
18 GreKo -117 15 1885 33.8% 19.7%
19 asymptote-v0.4.2 -138 15 1885 31.1% 17.0%
17902 of 171000 games finished.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
Most recent progress thanks to eval tuning and SEE tweaking.
Code: Select all
Rank Name Elo +/- Games Score Draws
1 minic_0.76 102 27 422 64.3% 37.7%
2 minic_0.75 61 25 423 58.7% 41.8%
3 minic_0.65 -14 26 423 48.0% 36.4%
4 minic_0.53 -47 26 423 43.3% 38.3%
5 minic_0.47 -102 29 423 35.7% 26.0%
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: A complete 2000 lines of code engine
nice, you are on an Elo rocket ship!xr_a_y wrote: ↑Mon Jul 08, 2019 3:43 pm Most recent progress thanks to eval tuning and SEE tweaking.
Code: Select all
Rank Name Elo +/- Games Score Draws 1 minic_0.76 102 27 422 64.3% 37.7% 2 minic_0.75 61 25 423 58.7% 41.8% 3 minic_0.65 -14 26 423 48.0% 36.4% 4 minic_0.53 -47 26 423 43.3% 38.3% 5 minic_0.47 -102 29 423 35.7% 26.0%
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: A complete 2000 lines of code engine
Thanks, but this is more or less the same as other recent young engines as Asymptote, Topple, or Igel and in a way far behind Rofchade1 or Xiphos0.1 ...
But still fun to learn and progress !