A complete 2000 lines of code engine

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: A complete 2000 lines of code engine

Post by emadsen »

Yes, perhaps it’s a time management issue. I ran the match overnight and did not watch the games. I simply verified in the morning there were no abnormal terminations.

When I get home tonight I’ll test at 40/4 and update this thread with my results, Minic’s NPS, etc.
My C# chess engine: https://www.madchess.net
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

Ok, so here's last night results of Minic 0.28 (not really converged ... +/-60, ) at 40/0:20 :

Code: Select all

Rank Name                          Elo     +/-   Games   Score   Draws
   1 myrddin                       131      67     100   68.0%   16.0%
   2 sungorus64                     14      61     100   52.0%   22.0%
   3 zevra                         -14      60     100   48.0%   24.0%
Myrddin 0.87 is 2487, so 130 weaker is 2350. Sungorus is 2312 and zevra 1.8.6 is 2302.

The test at 40/1 against Isa 2.0.64 gives 137-113-69 for Isa so around +26elo for Isa that is 2329.

Minic seems to be between 2300 and 2400 (more 2300 than 2400). This is more or less coherent with Minic results versus Weini (or the stupid test against Fruit2.1).

I'll run an incremental TC test soon.

I guess Minic is weaker than Madchess. Madchess 3 has some good passer eval (taking king square, free, unstoppable into account). I often see Weini and Minic loss end game, I guess I should work on end game evaluation. Also Minic only see FIDE draws not "near" draw (like KRRK, KNKR, ...) so it might go to a drawish end-game thinking it can win...
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: A complete 2000 lines of code engine

Post by emadsen »

Looks like Minic has time management issues for games with incremental time controls. I ran another match between MadChess 3.0 Beta and Minic 0.28 using a time control of 40 moves in 4 minutes. Minic won the match.

Code: Select all

# PLAYER          :  RATING  ERROR  CFS(%)  PLAYED    W    D    L   (%)  OppAvg
1 Minic 0.28      :  2407.0   19.7     100    1000  511  197  292    61  2329.0
2 MadChess 3.0    :  2329.0   ----     ---    1000  292  197  511    39  2407.0
The absolute ELO values are not relevant. I don't have a database of 40/4m games involving MadChess and Minic playing a pool of other engines (I test using a time control of 2m+1s). The relative ELO is what matters. Minic is 78 ELO stronger than MadChess 3.0 beta at this time control.
I guess Minic is weaker than Madchess.
Depends on the time control (until you improve Minic's time management with incremental time controls) and the version of MadChess. The 3.0 Beta version (a rewrite using bitboards still in early development) is weaker than the 2.2 release version (mailbox). So yes, Minic is weaker than MadChess 2.2 but likely stronger than 3.0 Beta.

Vivien, to answer your question from an earlier post: Minic on my PC (AMD Ryzen Threadripper 1950X) runs at ~1.1 million NPS in the middlegame.
My C# chess engine: https://www.madchess.net
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

Thanks lot for those tests.
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

Minic 0.29 is released. Nearly +100elo.
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: A complete 2000 lines of code engine

Post by CMCanavessi »

Wow, progress is so fast... "Etherealesque"
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

CMCanavessi wrote: Sat Jan 05, 2019 4:56 pm Wow, progress is so fast... "Etherealesque"
Thanks for the compliment, but Minic will probably never reach Ethereal strength ... and I am probably far less skilled than Andrew.

The improvement between 0.28 and 0.29 is mainly linked to a bug in TT (the previous stored score was total crap), and a better use of SEE I guess.
Evaluation is still very poor, but I'm working on it, maybe the next release will have a more complex eval.

Minic is now near 3000sloc, so my plan to stick near 2000sloc seems to vanish. Some part of the code needs quite some lines (SMP, material table, evaluation, ...). I'll try to compact things a little to get back to 2500sloc maybe ...
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: A complete 2000 lines of code engine

Post by xr_a_y »

Minic has a lichess bot now : https://lichess.org/@/Minic-chess_engine :D
It won't be playing 24/7.
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: A complete 2000 lines of code engine

Post by MikeB »

xr_a_y wrote: Sun Jan 06, 2019 4:21 pm Minic has a lichess bot now : https://lichess.org/@/Minic-chess_engine :D
It won't be playing 24/7.
Keep up the good work!
Image
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: A complete 2000 lines of code engine

Post by MikeB »

MikeB wrote: Mon Jan 07, 2019 3:51 pm
xr_a_y wrote: Sun Jan 06, 2019 4:21 pm Minic has a lichess bot now : https://lichess.org/@/Minic-chess_engine :D
It won't be playing 24/7.
Keep up the good work!
I played a two quick knights odds games vs McCain 5 sec game with 5 sec increment. single core/thread 256 hash. They split the set.
[pgn] [Event "Mac Pro x5690 3.46 Ghz"] [Site "Mac-Pro.local"] [Date "2019.01.07"] [Round "-"] [White "Minic 0.29"] [Black "McCain X1"] [Result "1-0"] [TimeControl "1+1"] [FEN "r1bqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"] [SetUp "1"] 1. e4 {+3.54/14 +1} e6 {-3.41/19 +1} 2. Nf3 {+3.47/13 +1} d5 {-3.40/17 +1} 3. e5 {+3.56/12 +1} c5 {-3.44/21 +1} 4. Nc3 {+3.45/12 +1} Ne7 {-3.24/18 +1} 5. Bb5+ {+3.29/11 +2} Bd7 {-3.11/17 +2} 6. a4 {+3.28/13 +2} a6 {-3.08/19 +2} 7. Bxd7+ {+3.13/13 +2} Qxd7 {-3.01/20 +2} 8. O-O {+3.06/12 +2} Qc7 {-2.97/21 +2} 9. d4 {+3.17/13 +2} cxd4 {-3.09/20 +2} 10. Qxd4 {+3.31/12 +2} Nc6 {-2.98/21 +1} 11. Qd1 {+3.04/10 +3} Be7 {-2.81/19 +1} 12. Bf4 {+3.11/12 +3} h6 {-2.77/17 +1} 13. Bg3 {+3.13/11 +3} O-O-O {-2.92/19 +1} 14. Ne2 {+3.27/12 +3} g5 {-2.74/16 +1} 15. h3 {+3.41/13 +3} h5 {-2.88/20 +1} 16. c3 {+3.26/12 +3} Rdg8 {-2.33/19 +1} 17. Ned4 {+3.58/12 +3} g4 {-2.46/19 +1} 18. hxg4 {+3.77/11 +4} hxg4 {-2.58/19 +1} 19. Nxc6 {+4.02/12 +4} Qxc6 {-2.81/19 +1} 20. Nh2 {+4.24/13 +4} Rh5 {-2.54/20 +1} 21. Nxg4 {+4.41/13 +4} Rgh8 {-2.44/16 +1} 22. Bh2 {+4.41/12 +4} Kb8 {-2.30/18 +1} 23. Re1 {+4.78/11 +4} Qc8 {-2.70/20 +1} 24. Re3 {+4.58/10 +4} Qg8 {-2.56/21 +1} 25. Rh3 {+3.46/11 +4} Rxh3 {-3.07/23 +1} 26. gxh3 {+3.52/14 +4} Rxh3 {-3.11/21 +2} 27. Bg3 {+3.65/14 +4} Rh8 {-3.24/24 +1} 28. Nf6 {+3.59/12 +4} Qg6 {-3.29/22 +1} 29. Qf3 {+3.64/13 +5} Ka7 {-3.13/18 +1} 30. Rc1 {+3.49/11 +5} Bxf6 {-3.12/21 +1} 31. exf6 {+3.75/15 +5} Qg5 {-3.17/20 +1} 32. Qf4 {+3.76/15 +5} Qxf4 {-3.43/19 +1} 33. Bxf4 {+3.82/15 +5} b6 {-3.60/21 +1} 34. Be5 {+3.84/14 +5} a5 {-3.75/21 +1} 35. Kg2 {+3.87/16 +5} Ka6 {-3.89/21 +1} 36. b3 {+3.86/13 +5} b5 {-4.15/22 +1} 37. Kg3 {+3.80/14 +5} Kb6 {-4.29/23 +1} 38. Ra1 {+3.83/14 +5} Rh5 {-4.63/22 +1} 39. Bd4+ {+4.07/15 +5} Ka6 {-5.13/22 +1} 40. axb5+ {+4.27/15 +5} Kxb5 {-5.12/24 +1} 41. Kf4 {+4.27/15 +5} Rh8 {-5.33/23 +1} 42. Ke5 {+4.30/16 +5} Kc6 {-5.52/21 +1} 43. Rxa5 {+5.92/14 +5} Rh5+ {-5.70/21 +1} 44. Kf4 {+6.42/13 +5} e5+ {-5.94/21 +1} 45. Bxe5 {+7.02/12 +5} d4 {-6.76/21 +1} 46. cxd4 {+7.89/12 +5} Rh4+ {-7.51/21 +1} 47. Kg5 {+8.83/11 +5} Rh1 {-8.68/22 +1} 48. Ra7 {+9.41/13 +5} Kb6 {-38.06/17 +1} 49. Rxf7 {+10.18/12 +5} Rg1+ {-48.08/18 +1} 50. Bg3 {+10.45/10 +6} Rd1 {-54.48/20 +1} 51. Re7 {+15.19/12 +3} {User adjudication} 1-0 [Event "Mac Pro x5690 3.46 Ghz"] [Site "Mac-Pro.local"] [Date "2019.01.07"] [Round "-"] [White "McCain X1"] [Black "Minic 0.29"] [Result "1-0"] [TimeControl "5+5"] [FEN "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/R1BQKBNR w KQkq - 0 1"] [SetUp "1"] 1. d4 {-2.90/23 +8} Nf6 {+3.07/16 +6} 2. Bg5 {-2.99/25 +5} g6 {+3.30/16 +7} 3. e3 {-2.82/22 +7} Bg7 {+3.24/16 +8} 4. Bd3 {-2.99/23 +5} O-O {+3.26/17 +9} 5. Nf3 {-2.93/21 +5} h6 {+3.28/16 +9} 6. Bh4 {-2.93/22 +5} d5 {+3.29/16 +10} 7. O-O {-2.92/19 +8} Be6 {+3.30/15 +11} 8. Nd2 {-2.81/22 +9} Nc6 {+3.48/12 +12} 9. c3 {-2.57/18 +12} Na5 {+3.29/13 +13} 10. f4 {-2.82/22 +5} Nc4 {+3.39/13 +13} 11. Bxc4 {-2.49/19 +8} dxc4 {+3.39/14 +14} 12. e4 {-2.20/20 +9} b5 {+3.44/15 +15} 13. h3 {-2.23/20 +11} Rc8 {+3.40/15 +15} 14. Qf3 {-2.13/21 +5} c6 {+3.45/15 +16} 15. g4 {-2.13/20 +8} Nh7 {+3.38/14 +17} 16. f5 {-2.24/21 +5} Bd7 {+3.24/14 +17} 17. Qe3 {-2.31/19 +6} Nf6 {+3.15/13 +18} 18. e5 {-2.05/19 +9} Nd5 {+3.03/14 +18} 19. Qf3 {-1.88/21 +12} a6 {+2.92/13 +19} 20. Ne4 {-1.83/19 +15} a5 {+2.76/13 +19} 21. Rae1 {-1.87/23 +6} Bh8 {+2.80/15 +20} 22. Nc5 {-1.56/19 +9} g5 {+2.65/16 +20} 23. Bg3 {-1.21/19 +12} Bg7 {+2.59/17 +21} 24. h4 {-1.11/22 +13} a4 {+2.53/15 +21} 25. hxg5 {+0.00/21 +16} hxg5 {+2.60/15 +21} 26. a3 {+0.65/22 +18} Be8 {+2.56/15 +22} 27. Qh1 {+2.62/21 +18} Qb6 {+2.25/17 +22} 28. Qh3 {+4.92/21 +20} Ra8 {+2.28/14 +22} 29. Rf2 {+11.76/23 +23} Rd8 {+2.60/11 +23} 30. Rh2 {+1000.04/58 +26} Nf6 {-99.93/58 +27} 31. exf6 {+1000.03/99 +28} Bh6 {-99.95/58 +32} 32. Qxh6 {+1000.02/125 +29} exf6 {-99.97/58 +37} 33. Qh8# {+1000.01/127 +34} {White mates} 1-0[/pgn]

Here's macOS Minic:
Image