From: Marco Costalba Date: Fri, 4 Jan 2013 15:49:24 +0000 (+0100) Subject: Retire 'Cowardice' and 'Aggressiveness' UCI options X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=bff65a211fcd626c170831878c90a3b440861e2a;hp=2d60995c004e4ddf010373ba84a766d2cbaf082e Retire 'Cowardice' and 'Aggressiveness' UCI options They are not self-describing and create a lot of user requests about them. Given that the values are already well tuned there is no need to expose them as UCI options. No functional change. --- diff --git a/polyglot.ini b/polyglot.ini index 86c8c7ca..ce6669c6 100644 --- a/polyglot.ini +++ b/polyglot.ini @@ -24,8 +24,6 @@ Mobility (Endgame) = 100 Passed Pawns (Middle Game) = 100 Passed Pawns (Endgame) = 100 Space = 100 -Aggressiveness = 100 -Cowardice = 100 Min Split Depth = 4 Max Threads per Split Point = 5 Threads = 1 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index cf684638..49dc07fe 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -75,8 +75,8 @@ namespace { const int GrainSize = 8; // Evaluation weights, initialized from UCI options - enum { Mobility, PassedPawns, Space, KingDangerUs, KingDangerThem }; - Score Weights[6]; + enum { Mobility, PassedPawns, Space }; + Score Weights[3]; typedef Value V; #define S(mg, eg) make_score(mg, eg) @@ -88,7 +88,7 @@ namespace { // // Values modified by Joona Kiiski const Score WeightsInternal[] = { - S(252, 344), S(216, 266), S(46, 0), S(247, 0), S(259, 0) + S(252, 344), S(216, 266), S(46, 0) }; // MobilityBonus[PieceType][attacked] contains mobility bonuses for middle and @@ -195,6 +195,10 @@ namespace { // the strength of the enemy attack are added up into an integer, which // is used as an index to KingDangerTable[]. // + // King safety evaluation is asymmetrical and different for us (root color) + // and for our opponent. These values are used to init KingDangerTable. + const int KingDangerWeights[] = { 259, 247 }; + // KingAttackWeights[PieceType] contains king attack weights by piece type const int KingAttackWeights[] = { 0, 0, 2, 2, 3, 5 }; @@ -281,19 +285,16 @@ namespace Eval { void init() { - Weights[Mobility] = weight_option("Mobility (Middle Game)", "Mobility (Endgame)", WeightsInternal[Mobility]); - Weights[PassedPawns] = weight_option("Passed Pawns (Middle Game)", "Passed Pawns (Endgame)", WeightsInternal[PassedPawns]); - Weights[Space] = weight_option("Space", "Space", WeightsInternal[Space]); - Weights[KingDangerUs] = weight_option("Cowardice", "Cowardice", WeightsInternal[KingDangerUs]); - Weights[KingDangerThem] = weight_option("Aggressiveness", "Aggressiveness", WeightsInternal[KingDangerThem]); - - // King safety is asymmetrical. Our king danger level is weighted by - // "Cowardice" UCI parameter, instead the opponent one by "Aggressiveness". - // If running in analysis mode, make sure we use symmetrical king safety. We - // do this by replacing both Weights[kingDangerUs] and Weights[kingDangerThem] - // by their average. + Weights[Mobility] = weight_option("Mobility (Middle Game)", "Mobility (Endgame)", WeightsInternal[Mobility]); + Weights[PassedPawns] = weight_option("Passed Pawns (Middle Game)", "Passed Pawns (Endgame)", WeightsInternal[PassedPawns]); + Weights[Space] = weight_option("Space", "Space", WeightsInternal[Space]); + + int KingDanger[] = { KingDangerWeights[0], KingDangerWeights[1] }; + + // If running in analysis mode, make sure we use symmetrical king safety. + // We do so by replacing both KingDanger weights by their average. if (Options["UCI_AnalyseMode"]) - Weights[KingDangerUs] = Weights[KingDangerThem] = (Weights[KingDangerUs] + Weights[KingDangerThem]) / 2; + KingDanger[0] = KingDanger[1] = (KingDanger[0] + KingDanger[1]) / 2; const int MaxSlope = 30; const int Peak = 1280; @@ -302,8 +303,8 @@ namespace Eval { { t = std::min(Peak, std::min(int(0.4 * i * i), t + MaxSlope)); - KingDangerTable[1][i] = apply_weight(make_score(t, 0), Weights[KingDangerUs]); - KingDangerTable[0][i] = apply_weight(make_score(t, 0), Weights[KingDangerThem]); + KingDangerTable[0][i] = apply_weight(make_score(t, 0), make_score(KingDanger[0], 0)); + KingDangerTable[1][i] = apply_weight(make_score(t, 0), make_score(KingDanger[1], 0)); } } diff --git a/src/ucioption.cpp b/src/ucioption.cpp index f3af2f77..6a194b3f 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -70,8 +70,6 @@ void init(OptionsMap& o) { o["Passed Pawns (Middle Game)"] = Option(100, 0, 200, on_eval); o["Passed Pawns (Endgame)"] = Option(100, 0, 200, on_eval); o["Space"] = Option(100, 0, 200, on_eval); - o["Aggressiveness"] = Option(100, 0, 200, on_eval); - o["Cowardice"] = Option(100, 0, 200, on_eval); o["Min Split Depth"] = Option(msd, 4, 7, on_threads); o["Max Threads per Split Point"] = Option(5, 4, 8, on_threads); o["Threads"] = Option(cpus, 1, MAX_THREADS, on_threads);