Razor again at depth one
authorJoona Kiiski <joona.kiiski@gmail.com>
Thu, 9 Apr 2009 04:29:13 +0000 (07:29 +0300)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 26 Apr 2009 12:51:50 +0000 (13:51 +0100)
Some time ago it was found by Marco Costalba that it's better
to disable razoring at depth one, because given the very low
evaluation of the node, futility pruning would already do
the job at very low cost and avoiding missing important moves.

Now enable razoring there again, but only when our quickly evaluated
material advantage is more than a rook. The idea is to try razoring
only when it's extremely likely that it will succeed.

Extreme lightning speed test show promising result:
Orig - Mod: +1285 =1495 -1348

This needs to be tested with longer time controls though.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/search.cpp

index a391260..5ccc72c 100644 (file)
@@ -193,8 +193,8 @@ namespace {
               //remaining depth:  1 ply         1.5 ply       2 ply         2.5 ply       3 ply         3.5 ply
   const Value RazorMargins[6] = { Value(0x180), Value(0x300), Value(0x300), Value(0x3C0), Value(0x3C0), Value(0x3C0) };
 
-               //remaining depth:     1 ply            1.5 ply       2 ply         2.5 ply       3 ply         3.5 ply
-  const Value RazorApprMargins[6] = { Value(0x100000), Value(0x300), Value(0x300), Value(0x300), Value(0x300), Value(0x300) };
+               //remaining depth:     1 ply         1.5 ply       2 ply         2.5 ply       3 ply         3.5 ply
+  const Value RazorApprMargins[6] = { Value(0x520), Value(0x300), Value(0x300), Value(0x300), Value(0x300), Value(0x300) };
 
   // Last seconds noise filtering (LSN)
   bool UseLSNFiltering;