MadChess 2.0 Beta Build 074 (Tune Reductions And Pruning)

I tuned parameters related to search reductions and move pruning.  The {3, 7} in the code below means reduce the 3rd quiet move one ply, and reduce the 7th quiet move two plies. This added 20 Elo to the playing strength of MadChess 2.0 Beta. MadChess 2.0 2262 : 1600 (+738,=325,-537), 56.3 % vs. : games ( +, =, -), (%) : Diff, SD, CFS (%) Glass 1.6 : 100 ( 16, 24, 60), 28.0 : -186, 10, 0.0 RomiChess P3L : 100 ( 18, 18, 64), 27.0 : -171, 12, 0.0 OliThink 5.3.2 : 100 ( 16, 24, 60),… Continue Reading

MadChess 2.0 Beta Build 069 (Bishop Pair)

I added bishop pair evaluation to MadChess 2.0 Beta. The code awards a bonus for possessing two or more bishops, calibrated by game phase. This added 18 Elo to the playing strength of MadChess 2.0 Beta. MadChess 2.0 2242 : 1280 (+561,=259,-460), 53.9 % vs. : games ( +, =, -), (%) : Diff, SD, CFS (%) Glass 1.6 : 80 ( 12, 12, 56), 22.5 : -219, 16, 0.0 RomiChess P3L : 80 ( 8, 12, 60), 17.5 : -215, 18, 0.0 OliThink 5.3.2 : 80 ( 7, 10, 63), 15.0 : -202, 18, 0.0 Myrddin 0.87 : 80… Continue Reading

MadChess 2.0 Beta Build 059 (Free Passed Pawns)

I added free passed pawn evaluation to MadChess 2.0 Beta. Unobstructed passed pawns on the sixth or seventh rank are awarded a bonus if they may advance to the next square without material loss. The square must be unoccupied and the score after exchanging pieces on the advance square must not be negative. In addition, I simplified the move ordering code. I felt the GetNextMove() method required too much external bookkeeping (to mark played moves, illegal moves, update local move variable, save move back to array, etc) and therefore was too prone to bugs. I replaced it with a two… Continue Reading

MadChess 2.0 Beta Build 052 (Unstoppable Pawns, Draws, Material Trades)

I added code to detect unstoppable passed pawns and drawn endgames, and code to evaluate material trades. The code that evaluates material trades implements the age old advice, “When ahead trade pieces. When behind trade pawns.” A greater bonus is giving for trading pawns, since in many endgames the side with a material advantage cannot win without promoting a pawn. This added 39 Elo to the playing strength of MadChess 2.0 Beta. MadChess 2.0 2193 : 800 (+399,=168,-233), 60.4 % vs. : games ( +, =, -), (%) : Diff, SD, CFS (%) Glass 1.6 : 50 ( 4, 7,… Continue Reading

MadChess 2.0 Beta Build 044 (Late Move Pruning)

I added late move pruning to MadChess 2.0 Beta. Moves are sorted according to the history heuristic. If a quiet move qualifies for the largest late move reduction, but is less than or equal to four moves from the search horizon, it is skipped. The move is very unlikely to cause a beta cutoff and no time is wasted searching it. This added 39 Elo to the playing strength of MadChess 2.0 Beta. MadChess 2.0 Beta is now stronger than MadChess 1.4. MadChess 2.0 2154 : 800 (+347,=162,-291), 53.5 % vs. : games ( +, =, -), (%) : Diff,… Continue Reading