diff --git a/src/Lynx.Cli/appsettings.json b/src/Lynx.Cli/appsettings.json index b1ef99f4c..ca0b7fd1d 100644 --- a/src/Lynx.Cli/appsettings.json +++ b/src/Lynx.Cli/appsettings.json @@ -31,22 +31,22 @@ "AspirationWindowAlpha": 50, "AspirationWindowBeta": 50, - "IsolatedPawnPenalty": 10, - "DoubledPawnPenalty": 10, + "IsolatedPawnPenalty": 1, + "DoubledPawnPenalty": 1, "PassedPawnBonus": [ 0, - 10, - 30, - 50, - 75, - 100, - 150, + 4, + -2, + 19, + 44, + 82, + 136, 200 ], - "SemiOpenFileRookBonus": 10, - "OpenFileRookBonus": 15, - "SemiOpenFileKingPenalty": 10, - "OpenFileKingPenalty": 15, + "SemiOpenFileRookBonus": 17, + "OpenFileRookBonus": 31, + "SemiOpenFileKingPenalty": 0, + "OpenFileKingPenalty": -41, "KingShieldBonus": 5, "BishopMobilityBonus": 1, "QueenMobilityBonus": 1, @@ -55,7 +55,8 @@ "UseOnlineTablebaseInRootPositions": false, "UseOnlineTablebaseInSearch": false, "BenchDepth": 5, - "BishopPairMaxBonus": 100, + "BishopPairMaxBonus": 66, + "BishopPairMinBonus": 23, "RFP_MaxDepth": 6, "RFP_DepthScalingFactor": 75 }, diff --git a/src/Lynx/Configuration.cs b/src/Lynx/Configuration.cs index 8a8363c56..ef4ecd0c9 100644 --- a/src/Lynx/Configuration.cs +++ b/src/Lynx/Configuration.cs @@ -217,6 +217,7 @@ public sealed class EngineSettings /// It'll be scaled with phase /// public int BishopPairMaxBonus { get; set; } = 100; + public int BishopPairMinBonus { get; set; } = 23; public int RFP_MaxDepth { get; set; } = 6; diff --git a/src/Lynx/Model/Position.cs b/src/Lynx/Model/Position.cs index c6f5c2eff..5a8e9a489 100644 --- a/src/Lynx/Model/Position.cs +++ b/src/Lynx/Model/Position.cs @@ -692,11 +692,11 @@ public int StaticEvaluation(int movesWithoutCaptureOrPawnMove, CancellationToken if (pieceCount[(int)Piece.B] >= 2) { - eval += Configuration.EngineSettings.BishopPairMaxBonus * endGamePhase / 24; + eval += ((Configuration.EngineSettings.BishopPairMinBonus * gamePhase) + (Configuration.EngineSettings.BishopPairMaxBonus * endGamePhase)) / 24; } if (pieceCount[(int)Piece.b] >= 2) { - eval -= Configuration.EngineSettings.BishopPairMaxBonus * endGamePhase / 24; + eval -= ((Configuration.EngineSettings.BishopPairMinBonus * gamePhase) + (Configuration.EngineSettings.BishopPairMaxBonus * endGamePhase)) / 24; } return Side == Side.White