From: Marco Costalba Date: Fri, 13 Mar 2009 10:20:24 +0000 (+0100) Subject: Merge Joona Kiiski evaluation tweaks X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=3ed603cd64624d27de3f3f6e8f4e5dfccaaed420 Merge Joona Kiiski evaluation tweaks Merge tewaks to many evaluation parameters by Joona Kiiski. After test they seem good! Signed-off-by: Marco Costalba --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 85128c4f..c397671c 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -58,15 +58,17 @@ namespace { // weights read from UCI parameters. The purpose is to be able to change // the evaluation weights while keeping the default values of the UCI // parameters at 100, which looks prettier. - const int WeightMobilityMidgameInternal = 0x100; - const int WeightMobilityEndgameInternal = 0x100; - const int WeightPawnStructureMidgameInternal = 0x100; - const int WeightPawnStructureEndgameInternal = 0x100; - const int WeightPassedPawnsMidgameInternal = 0x100; - const int WeightPassedPawnsEndgameInternal = 0x100; - const int WeightKingSafetyInternal = 0x110; - const int WeightKingOppSafetyInternal = 0x110; - const int WeightSpaceInternal = 0x30; + // + // Values modified by Joona Kiiski + const int WeightMobilityMidgameInternal = 0x0FA; + const int WeightMobilityEndgameInternal = 0x10A; + const int WeightPawnStructureMidgameInternal = 0x0EC; + const int WeightPawnStructureEndgameInternal = 0x0CD; + const int WeightPassedPawnsMidgameInternal = 0x108; + const int WeightPassedPawnsEndgameInternal = 0x109; + const int WeightKingSafetyInternal = 0x0F7; + const int WeightKingOppSafetyInternal = 0x101; + const int WeightSpaceInternal = 0x02F; // Visually better to define tables constants typedef Value V; @@ -167,18 +169,19 @@ namespace { V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) // 8 }; - // Bonus for unstoppable passed pawns: + // Bonus for unstoppable passed pawns const Value UnstoppablePawnValue = Value(0x500); - // Rooks and queens on the 7th rank: - const Value MidgameRookOn7thBonus = Value(50); - const Value EndgameRookOn7thBonus = Value(100); - const Value MidgameQueenOn7thBonus = Value(25); - const Value EndgameQueenOn7thBonus = Value(50); + // Rooks and queens on the 7th rank + const Value MidgameRookOn7thBonus = Value(47); + const Value EndgameRookOn7thBonus = Value(98); + const Value MidgameQueenOn7thBonus = Value(27); + const Value EndgameQueenOn7thBonus = Value(54); - // Rooks on open files: - const Value RookOpenFileBonus = Value(40); - const Value RookHalfOpenFileBonus = Value(20); + + // Rooks on open files + const Value RookOpenFileBonus = Value(43); + const Value RookHalfOpenFileBonus = Value(19); // Penalty for rooks trapped inside a friendly king which has lost the // right to castle: diff --git a/src/material.cpp b/src/material.cpp index 7dc92e80..9195880a 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -36,8 +36,8 @@ namespace { - const Value BishopPairMidgameBonus = Value(100); - const Value BishopPairEndgameBonus = Value(100); + const Value BishopPairMidgameBonus = Value(109); + const Value BishopPairEndgameBonus = Value(97); Key KNNKMaterialKey, KKNNMaterialKey; diff --git a/src/position.h b/src/position.h index 173de0c0..510784e5 100644 --- a/src/position.h +++ b/src/position.h @@ -650,15 +650,9 @@ inline Value Position::non_pawn_material(Color c) const { inline Phase Position::game_phase() const { - // The purpose of the Value(325) terms below is to make sure the difference - // between MidgameLimit and EndgameLimit is a power of 2, which should make - // the division at the end of the function a bit faster. - static const Value MidgameLimit = 2 * QueenValueMidgame - + 2 * RookValueMidgame - + 6 * BishopValueMidgame - + Value(325); - - static const Value EndgameLimit = 4 * RookValueMidgame - Value(325); + // Values modified by Joona Kiiski + static const Value MidgameLimit = Value(15713); + static const Value EndgameLimit = Value(4428); Value npm = non_pawn_material(WHITE) + non_pawn_material(BLACK); diff --git a/src/value.h b/src/value.h index 29fcf5fb..a3ddc000 100644 --- a/src/value.h +++ b/src/value.h @@ -58,17 +58,19 @@ enum Value { /// Important: If the material values are changed, one must also /// adjust the piece square tables, and the method game_phase() in the /// Position class! - -const Value PawnValueMidgame = Value(0xCC); -const Value PawnValueEndgame = Value(0x100); -const Value KnightValueMidgame = Value(0x340); -const Value KnightValueEndgame = Value(0x340); -const Value BishopValueMidgame = Value(0x340); -const Value BishopValueEndgame = Value(0x340); -const Value RookValueMidgame = Value(0x505); -const Value RookValueEndgame = Value(0x505); -const Value QueenValueMidgame = Value(0xA00); -const Value QueenValueEndgame = Value(0xA00); +/// +/// Values modified by Joona Kiiski + +const Value PawnValueMidgame = Value(0x0CC); +const Value PawnValueEndgame = Value(0x101); +const Value KnightValueMidgame = Value(0x332); +const Value KnightValueEndgame = Value(0x34E); +const Value BishopValueMidgame = Value(0x345); +const Value BishopValueEndgame = Value(0x356); +const Value RookValueMidgame = Value(0x4F8); +const Value RookValueEndgame = Value(0x500); +const Value QueenValueMidgame = Value(0x9D5); +const Value QueenValueEndgame = Value(0x9FB); const Value PieceValueMidgame[17] = { Value(0), @@ -92,8 +94,8 @@ const Value PieceValueEndgame[17] = { /// Bonus for having the side to move -const Value TempoValueMidgame = Value(50); -const Value TempoValueEndgame = Value(20); +const Value TempoValueMidgame = Value(48); +const Value TempoValueEndgame = Value(21); ////