1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-29 16:23:09 +00:00

Expose new futility margin interface to UCI

Now futility margin it's actually a scale factor
to apply to the base ones.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2008-12-25 19:41:24 +01:00
parent e46d3670fd
commit 96a32eec69
2 changed files with 12 additions and 14 deletions

View file

@ -162,13 +162,11 @@ namespace {
bool UseQSearchFutilityPruning = true;
bool UseFutilityPruning = true;
// Margins for futility pruning in the quiescence search, at frontier
// nodes, and at pre-frontier nodes
Value FutilityMargin0 = Value(0x80);
Value FutilityMargin1 = Value(0x100);
Value FutilityMargin2 = Value(0x200);
const Value FutilityMargins[6] = { Value(0x120), Value(0x220), Value(0x250),
Value(0x280), Value(0x320), Value(0x360) };
// Margins for futility pruning in the quiescence search, and at frontier
// and near frontier nodes
Value FutilityMarginQS = Value(0x80);
Value FutilityMargins[6] = { Value(0x120), Value(0x220), Value(0x250),
Value(0x280), Value(0x320), Value(0x360) };
// Razoring
Depth RazorDepth = 4*OnePly;
@ -417,9 +415,10 @@ void think(const Position &pos, bool infinite, bool ponder, int side_to_move,
UseQSearchFutilityPruning = get_option_value_bool("Futility Pruning (Quiescence Search)");
UseFutilityPruning = get_option_value_bool("Futility Pruning (Main Search)");
FutilityMargin0 = value_from_centipawns(get_option_value_int("Futility Margin 0"));
FutilityMargin1 = value_from_centipawns(get_option_value_int("Futility Margin 1"));
FutilityMargin2 = value_from_centipawns(get_option_value_int("Futility Margin 2"));
FutilityMarginQS = value_from_centipawns(get_option_value_int("Futility Margin (Quiescence Search)"));
int fmScale = get_option_value_int("Futility Margin (Main Serach)");
for (int i = 0; i < 6; i++)
FutilityMargins[i] = (FutilityMargins[i] * fmScale) / 100;
RazorDepth = (get_option_value_int("Maximum Razoring Depth") + 1) * OnePly;
RazorMargin = value_from_centipawns(get_option_value_int("Razoring Margin"));
@ -1495,7 +1494,7 @@ namespace {
+ Max(pos.midgame_value_of_piece_on(move_to(move)),
pos.endgame_value_of_piece_on(move_to(move)))
+ (move_is_ep(move) ? PawnValueEndgame : Value(0))
+ FutilityMargin0
+ FutilityMarginQS
+ ei.futilityMargin;
if (futilityValue < alpha)

View file

@ -123,9 +123,8 @@ namespace {
o.push_back(Option("Null driven IID", false));
o.push_back(Option("Futility Pruning (Main Search)", true));
o.push_back(Option("Futility Pruning (Quiescence Search)", true));
o.push_back(Option("Futility Margin 0", 50, 0, 1000));
o.push_back(Option("Futility Margin 1", 100, 0, 1000));
o.push_back(Option("Futility Margin 2", 200, 0, 1000));
o.push_back(Option("Futility Margin (Quiescence Search)", 50, 0, 1000));
o.push_back(Option("Futility Margin (Main Serach)", 100, 0, 1000));
o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
o.push_back(Option("Razoring Margin", 300, 150, 600));
o.push_back(Option("LSN filtering", true));