MadChess 3.0 Beta

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: MadChess 3.0 Beta

Post by emadsen »

Thanks Steve. I have not tried PBIL algorithms, though I did follow Thomas' posts with great interest a few years ago. PSO minimizing the evaluation error over a large collection of GM games seems like rough estimating compared to PBIL, which "genetically" modifies engines then plays games to enforce survival of the fittest. It definitely requires a lot of computing resources, but because it judges fitness with actual engine-versus-engine games it's probably more likely to find real improvements.

I'd like to experiment with PBIL at some point. Thanks for suggesting the video lecture.
My C# chess engine: https://www.madchess.net
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: MadChess 3.0 Beta

Post by emadsen »

I improved the history heuristics used by MadChess 3.0 Beta's Late Move Reductions (LMR), gaining 28 ELO points. It's now rated 2171 +/- 20 ELO at bullet chess. The evaluation function still is limited to to material, piece location, draw detection, and checkmate.
My C# chess engine: https://www.madchess.net
PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: MadChess 3.0 Beta

Post by PK »

Regarding history, one possible enhancement is to update history for a hash move if hash score exceeds beta. At least it helped for me a tiny bit.
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: MadChess 3.0 Beta

Post by emadsen »

Thanks for the tip, Pawel. I can’t remember if I update history for quiet best moves that were retrieved from the hashtable. I’ll check when I get home tonight.
My C# chess engine: https://www.madchess.net
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: MadChess 3.0 Beta

Post by emadsen »

I implemented staged move generation in MadChess 3.0 beta. This eliminates wasted effort to generate non-capture moves in nodes where a capture causes a beta cutoff. This improved the engine's playing strength by 39 ELO. It's now rated 2210 +/- 17 ELO at bullet chess. The evaluation function still is limited to to material, piece location, draw detection, and checkmate.
My C# chess engine: https://www.madchess.net
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: MadChess 3.0 Beta

Post by emadsen »

I added passed pawn evaluation to MadChess 3.0 Beta. This increased the engine's playing strength by 119 ELO. Booyah!

MadChess 3.0 Beta is now rated 2329 +/- 14 ELO at bullet chess.
My C# chess engine: https://www.madchess.net
User avatar
Graham Banks
Posts: 41423
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: MadChess 3.0 Beta

Post by Graham Banks »

emadsen wrote: Fri Dec 28, 2018 4:19 am I added passed pawn evaluation to MadChess 3.0 Beta. This increased the engine's playing strength by 119 ELO. Booyah!

MadChess 3.0 Beta is now rated 2329 +/- 14 ELO at bullet chess.
Very good! :P
gbanksnz at gmail.com
David Carteau
Posts: 121
Joined: Sat May 24, 2014 9:09 am
Location: France
Full name: David Carteau

Re: MadChess 3.0 Beta

Post by David Carteau »

Hi Erik,

I hope you continue your efforts on MadChess 3.0 : I'm working hard on a next version for Orion. It's hard to find time, but I have made some progress. Looking forward for good news from your side ! MadChess is one on my favorite engine/partner : go go go :)
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: MadChess 3.0 Beta

Post by emadsen »

Thanks David. All the coding I’ve done lately has been work related. Hopefully I can get back to MadChess this spring. I know I will, it’s just a matter of finding time.

When I do I’ll be sure to watch it battle Orion on the chessboard :)
My C# chess engine: https://www.madchess.net
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: MadChess 3.0 Beta

Post by emadsen »

Hello again, chess programming community. Long time, no comments from me.

While most of my programming efforts over the last year and a half have been focused on my career and my general programming blog, ErikTheCoder, I have found some time to work on my chess engine, MadChess. I'm currently rewriting it as a bitboard chess engine (MadChess 2.0 was implemented using mailbox board representation). I realize there are much more exciting developments happening in the world of chess engine programming than the glacial progress of a "down-ballot" engine (namely, the emergence of strong neural network techniques) but I still find satisfaction in writing a moderately strong engine in my language of choice, C#. The coherence of its architecture, simplicity of its code, cleverness of its algorithms, and the joy and sense of wonder it evokes as a sparring partner(1) are reward enough.

I should decide when to release an updated version of MadChess. Let me set the following criteria so I have a clear and publicly stated goal to work towards.
  • At least 150 ELO stronger than latest public release (version 2.2). I'll settle on a round number: at least 2600 ELO at bullet chess.
  • Feature parity with latest public release (UCI_ELO, UCI parameters useful for creating personalities, etc).
  • No known bugs (currently crashes in about two tenths of one percent of games, reason unknown).
As of today, MadChess 3.0 Beta plays stronger (2450 ELO) than MadChess 2.2 (2443 ELO), at least at bullet time control.

Below is a list of recent blog posts detailing my slow and fitful progress.

MadChess 3.0 Beta 6f3d17a (Late Move Pruning)
MadChess 3.0 Beta 5c5d4fc (Piece Mobility)
MadChess 3.0 Beta bef88d5 (Tweak Search, Tune Eval)

(1) I'm referring to MadChess as a Frankenstein creation, that is, of my mind but stronger than my mind- at least at this board game. I am a capable programmer but patzer chess player.
My C# chess engine: https://www.madchess.net