mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 00:56:39 +08:00
Merge futility pruning from Glaurung 2.2
It seems much more powerful then previous one. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -166,7 +166,7 @@ namespace {
|
|||||||
// nodes, and at pre-frontier nodes
|
// nodes, and at pre-frontier nodes
|
||||||
Value FutilityMargin0 = Value(0x80);
|
Value FutilityMargin0 = Value(0x80);
|
||||||
Value FutilityMargin1 = Value(0x100);
|
Value FutilityMargin1 = Value(0x100);
|
||||||
Value FutilityMargin2 = Value(0x300);
|
Value FutilityMargin2 = Value(0x200);
|
||||||
|
|
||||||
// Razoring
|
// Razoring
|
||||||
Depth RazorDepth = 4*OnePly;
|
Depth RazorDepth = 4*OnePly;
|
||||||
@@ -1308,18 +1308,18 @@ namespace {
|
|||||||
&& !moveIsCapture
|
&& !moveIsCapture
|
||||||
&& !move_promotion(move))
|
&& !move_promotion(move))
|
||||||
{
|
{
|
||||||
// History pruning. See ok_to_prune() definition.
|
// History pruning. See ok_to_prune() definition
|
||||||
if ( moveCount >= 2 + int(depth)
|
if ( moveCount >= 2 + int(depth)
|
||||||
&& ok_to_prune(pos, move, ss[ply].threatMove, depth))
|
&& ok_to_prune(pos, move, ss[ply].threatMove, depth))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Value based pruning.
|
// Value based pruning
|
||||||
if (depth < 3 * OnePly && approximateEval < beta)
|
if (depth < 6 * OnePly && approximateEval < beta)
|
||||||
{
|
{
|
||||||
if (futilityValue == VALUE_NONE)
|
if (futilityValue == VALUE_NONE)
|
||||||
futilityValue = evaluate(pos, ei, threadID)
|
futilityValue = evaluate(pos, ei, threadID)
|
||||||
+ (depth < 2 * OnePly ? FutilityMargin1 : FutilityMargin2);
|
+ (depth < 2 * OnePly ? FutilityMargin1
|
||||||
|
: FutilityMargin2 + (depth - 2*OnePly) * 32);
|
||||||
if (futilityValue < beta)
|
if (futilityValue < beta)
|
||||||
{
|
{
|
||||||
if (futilityValue > bestValue)
|
if (futilityValue > bestValue)
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ namespace {
|
|||||||
o.push_back(Option("Futility Pruning (Quiescence 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 0", 50, 0, 1000));
|
||||||
o.push_back(Option("Futility Margin 1", 100, 0, 1000));
|
o.push_back(Option("Futility Margin 1", 100, 0, 1000));
|
||||||
o.push_back(Option("Futility Margin 2", 300, 0, 1000));
|
o.push_back(Option("Futility Margin 2", 200, 0, 1000));
|
||||||
o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
|
o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
|
||||||
o.push_back(Option("Razoring Margin", 300, 150, 600));
|
o.push_back(Option("Razoring Margin", 300, 150, 600));
|
||||||
o.push_back(Option("LSN filtering", true));
|
o.push_back(Option("LSN filtering", true));
|
||||||
|
|||||||
Reference in New Issue
Block a user