MinimalChess 0.5 released

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

Moderator: Ras

User avatar
Gabor Szots
Posts: 1503
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: MinimalChess 0.5 released

Post by Gabor Szots »

lithander wrote: Fri Jul 02, 2021 1:10 pmin my build the transposition table was not enabled. I could fix that with a new build but then it would probably gain strength and would need to be tracked by CCRL as a different version.

Just changing the target framework would keep the current strength mostly. It's your choice!
I'd go by changing only the framework. You may enable the hash when other improvements will have been done (however unlikely that seems).
Gabor Szots
CCRL testing group
User avatar
lithander
Posts: 924
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: MinimalChess 0.5 released

Post by lithander »

Gabor Szots wrote: Fri Jul 02, 2021 2:21 pm I'd go by changing only the framework. You may enable the hash when other improvements will have been done (however unlikely that seems).
You can download the new build here: https://github.com/lithander/SebLagueCh ... s/tag/net5

I am fairly confident this build fixes the issue because it doesn't extract anything to the temp folder anymore. But the build is no longer a single file.

---

The recently released MinimalChess 0.5 build is also created with the .Net 5 Framework. But I wanted to still have a single file and you can force that by setting

Code: Select all

<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
but then files still get extracted to the Temp folder. I do not know if that means the issue could still happen for MinimalChess 0.5 or if the extraction process now works flawlessly and restores any missing files as one would expect. I also don't know how to test that except that I have randomly deleted a few files from the Temp folder and tried running the engine. The engine always started and the missing files got restored.

So I'd say there's a 100% chance that the issue is now fixed with the SebLague build. And a 80% chance it is fixed with the MinimalChess 0.5 build. If you still encounter it please let me know!! (Noone should have to bother with deleting temp folders. We both agree on that! It's just hard to make sure it's fixed because it's not a bug in my code but in the tools I use)
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
Gabor Szots
Posts: 1503
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: MinimalChess 0.5 released

Post by Gabor Szots »

lithander wrote: Fri Jul 02, 2021 4:38 pm
Gabor Szots wrote: Fri Jul 02, 2021 2:21 pm I'd go by changing only the framework. You may enable the hash when other improvements will have been done (however unlikely that seems).
You can download the new build here: https://github.com/lithander/SebLagueCh ... s/tag/net5
Thank you Thomas. I have replaced the the old SebLagueChess with the new one.
Gabor Szots
CCRL testing group
Chessqueen
Posts: 5685
Joined: Wed Sep 05, 2018 2:16 am
Location: Moving
Full name: Jorge Picado

Re: MinimalChess 0.5 released

Post by Chessqueen »

lithander wrote: Thu Jul 01, 2021 1:25 am MinimalChess 0.5 is finally ready.

This version adds a 13th tuned table for a mobility-based evaluation term that modifies the static PST based evaluation of version 0.4. It encourages friendly pieces to guard each other and opponent pieces to threaten each other. The table contains bonuses and maluses that get assigned based on the content of each square a piece "sees".

I also added a simple transposition table (no buckets) and very simple null-move pruning (R2 when not in check) and I hope that together these features will improve the playing strength to about 2200 ELO.

The size of the codebase measured in lines of executable code (LOC) increased moderately from 610 LOC to 707 LOC. So this versions not only features the best playing strength it also has the best strength/LOC ratio.

For this release I also changed the target framework to .NET 5. I hope everything still works! You can find precompiled executables for Windows, Mac and Linux here: https://github.com/lithander/MinimalChe ... s/tag/v0.5
Your Engine play Endgame excellent without Endgame Tablebase, this is the position that GM Leon lost by blundering to the American Abhimanyu (“Abhi”) Mishra by playing King to e5, and gave the chance to his Opponent to become the youngest GM in history, but your engine chose the correct move b4!. This is the reason why most Engines rated above 2250 do NOT need Endgame Tablebase to beat most human GMs. Not even Abhimanyu Knows the best response after b4 since he analysed that taking the Knight with the bishop at e3 was the correct move instead of advancing the pawn further to b5

[pgn][Event "Computer chess game"]
[Site "MININT-UB2PIMJ"]
[Date "2021.07.02"]
[Round "?"]
[White "MinimalChessEngine"]
[Black "Stockfish_14_x64_avx2"]
[Result "*"]
[BlackElo "3500"]
[Time "19:22:32"]
[WhiteElo "2250"]
[TimeControl "300+2"]
[SetUp "1"]
[FEN "8/8/3K2p1/6Bp/4p3/3kP2P/1P1n2P1/8 w - - 0 1"]
[Termination "normal"]
[PlyCount "18"]
[WhiteType "program"]
[BlackType "program"]

1. b4 Kc4 2. Ke6 Kxb4 3. Kf7 Nc4 4. Kxg6 h4 5. Kf5 Kc5 6. Kxe4 Kd6 7. Bxh4
Ke6 8. Bg5 Nd6+ 9. Kf4 Nc4 {Black resigns} *[/pgn]
Chessqueen
Posts: 5685
Joined: Wed Sep 05, 2018 2:16 am
Location: Moving
Full name: Jorge Picado

Re: MinimalChess 0.5 released

Post by Chessqueen »

Chessqueen wrote: Sat Jul 03, 2021 2:43 am
lithander wrote: Thu Jul 01, 2021 1:25 am MinimalChess 0.5 is finally ready.

This version adds a 13th tuned table for a mobility-based evaluation term that modifies the static PST based evaluation of version 0.4. It encourages friendly pieces to guard each other and opponent pieces to threaten each other. The table contains bonuses and maluses that get assigned based on the content of each square a piece "sees".

I also added a simple transposition table (no buckets) and very simple null-move pruning (R2 when not in check) and I hope that together these features will improve the playing strength to about 2200 ELO.

The size of the codebase measured in lines of executable code (LOC) increased moderately from 610 LOC to 707 LOC. So this versions not only features the best playing strength it also has the best strength/LOC ratio.

For this release I also changed the target framework to .NET 5. I hope everything still works! You can find precompiled executables for Windows, Mac and Linux here: https://github.com/lithander/MinimalChe ... s/tag/v0.5
Your Engine play Endgame excellent without Endgame Tablebase, this is the position that GM Leon lost by blundering to the American Abhimanyu (“Abhi”) Mishra by playing King to e5, and gave the chance to his Opponent to become the youngest GM in history, but your engine chose the correct move b4!. This is the reason why most Engines rated above 2250 do NOT need Endgame Tablebase to beat most human GMs. Not even Abhimanyu Knows the best response after b4 since he analysed that taking the Knight with the bishop at e3 was the correct move instead of advancing the pawn further to b5

[pgn][Event "Computer chess game"]
[Site "MININT-UB2PIMJ"]
[Date "2021.07.02"]
[Round "?"]
[White "MinimalChessEngine"]
[Black "Stockfish_14_x64_avx2"]
[Result "*"]
[BlackElo "3500"]
[Time "19:22:32"]
[WhiteElo "2250"]
[TimeControl "300+2"]
[SetUp "1"]
[FEN "8/8/3K2p1/6Bp/4p3/3kP2P/1P1n2P1/8 w - - 0 1"]
[Termination "normal"]
[PlyCount "18"]
[WhiteType "program"]
[BlackType "program"]

1. b4 Kc4 2. Ke6 Kxb4 3. Kf7 Nc4 4. Kxg6 h4 5. Kf5 Kc5 6. Kxe4 Kd6 7. Bxh4
Ke6 8. Bg5 Nd6+ 9. Kf4 Nc4 {Black resigns} *[/pgn]
*
User avatar
lithander
Posts: 924
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: MinimalChess 0.5 released

Post by lithander »

Chessqueen wrote: Sat Jul 03, 2021 2:43 am Not even Abhimanyu Knows the best response after b4 since he analysed that taking the Knight with the bishop at e3 was the correct move instead of advancing the pawn further to b5
MinimalChess finds the best move b2 at depth 13 and sticks with it. That's good! But it never foresees Stockfish's response Kc4. Instead MinimalChess expects Nc4! To which it would reply with Kc5... so if you want to prevent MinimalChess from winning here don't play what Stockfish did but Nc4! ;)
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Chessqueen
Posts: 5685
Joined: Wed Sep 05, 2018 2:16 am
Location: Moving
Full name: Jorge Picado

Re: MinimalChess 0.5 released

Post by Chessqueen »

lithander wrote: Sat Jul 03, 2021 11:18 am
Chessqueen wrote: Sat Jul 03, 2021 2:43 am Not even Abhimanyu Knows the best response after b4 since he analysed that taking the Knight with the bishop at e3 was the correct move instead of advancing the pawn further to b5
MinimalChess finds the best move b2 at depth 13 and sticks with it. That's good! But it never foresees Stockfish's response Kc4. Instead MinimalChess expects Nc4! To which it would reply with Kc5... so if you want to prevent MinimalChess from winning here don't play what Stockfish did but Nc4! ;)
Interesting Stockfish 14 played the bad move Kc4 and Stockfish 13 played the best move Nc4! and draw against MinimalChessEngine. I started a match against Dragon 4.6 which is rated around 2420 and the score is even so far after 6 games.

[pgn][Event "Computer chess game"]
[Site "MININT-UB2PIMJ"]
[Date "2021.07.02"]
[Round "?"]
[White "MinimalChessEngine"]
[Black "Stockfish_13_x64_avx2"]
[Result "*"]
[BlackElo "3500"]
[Time "19:22:32"]
[WhiteElo "2350"]
[TimeControl "300+2"]
[SetUp "1"]
[FEN "8/8/3K2p1/6Bp/4p3/3kP2P/1P1n2P1/8 w - - 0 1"]
[Termination "normal"]
[PlyCount "35"]
[WhiteType "program"]
[BlackType "program"]

1. b4 Nc4+ 2. Kc5 Nxe3 3. b5 Nc4 4. g4 hxg4 5. hxg4 Nb2 6. b6 Na4+ 7. Kc6
Nxb6 8. Kxb6 e3 9. Kc5 Ke4 10. Kc4 e2 11. Bd2 Kf3 12. Kd4 Kxg4 13. Ke3 g5
14. Kxe2 Kh5 15. Be1 g4 16. Kf2 g3+ 17. Kg2 Kg6 18. Bxg3 {Insufficient
material} *[/pgn]