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

Revert refinedValue in ProbCut

It seems much worst in number of nodes seacrhed to reach
the depth and anyhow does not give any advantage to the
Onno's oroginal one.

So revert by now and perhaps readd when we find something
clearly better.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2011-06-09 21:57:42 +01:00
parent b414fc0dfd
commit a21a110188
4 changed files with 12 additions and 6 deletions

View file

@ -110,13 +110,13 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const History& h)
go_next_phase(); go_next_phase();
} }
MovePicker::MovePicker(const Position& p, Move ttm, const History& h, int threshold) MovePicker::MovePicker(const Position& p, Move ttm, const History& h, int parentCapture)
: pos(p), H(h) { : pos(p), H(h) {
assert (!pos.in_check()); assert (!pos.in_check());
// In ProbCut we consider only captures better than parent's move // In ProbCut we consider only captures better than parent's move
captureThreshold = threshold; captureThreshold = parentCapture;
phasePtr = ProbCutTable; phasePtr = ProbCutTable;
if ( ttm != MOVE_NONE if ( ttm != MOVE_NONE

View file

@ -42,7 +42,7 @@ class MovePicker {
public: public:
MovePicker(const Position&, Move, Depth, const History&, SearchStack*, Value); MovePicker(const Position&, Move, Depth, const History&, SearchStack*, Value);
MovePicker(const Position&, Move, Depth, const History&); MovePicker(const Position&, Move, Depth, const History&);
MovePicker(const Position&, Move, const History&, int threshold); MovePicker(const Position&, Move, const History&, int parentCapture);
Move get_next_move(); Move get_next_move();
private: private:

View file

@ -213,6 +213,7 @@ public:
// Static exchange evaluation // Static exchange evaluation
int see(Move m) const; int see(Move m) const;
int see_sign(Move m) const; int see_sign(Move m) const;
static int see_value(PieceType pt);
// Accessing hash keys // Accessing hash keys
Key get_key() const; Key get_key() const;
@ -466,6 +467,10 @@ inline bool Position::square_is_weak(Square s, Color c) const {
return !(pieces(PAWN, opposite_color(c)) & attack_span_mask(c, s)); return !(pieces(PAWN, opposite_color(c)) & attack_span_mask(c, s));
} }
inline int Position::see_value(PieceType pt) {
return seeValues[pt];
}
inline Key Position::get_key() const { inline Key Position::get_key() const {
return st->key; return st->key;
} }

View file

@ -903,8 +903,9 @@ namespace {
} }
// Step 9. ProbCut (is omitted in PV nodes) // Step 9. ProbCut (is omitted in PV nodes)
// If we have a good capture that raises the score well above beta and a reduced // If we have a very good capture (i.e. SEE > seeValues[captured_piece_type])
// search confirms the score then we can (almost) safely prune the previous move. // and a reduced search returns a value much above beta, we can (almost) safely
// prune the previous move.
if ( !PvNode if ( !PvNode
&& depth >= RazorDepth + ONE_PLY && depth >= RazorDepth + ONE_PLY
&& !inCheck && !inCheck
@ -917,7 +918,7 @@ namespace {
assert(rdepth >= ONE_PLY); assert(rdepth >= ONE_PLY);
MovePicker mp(pos, ttMove, H, Max(rbeta - refinedValue, VALUE_ZERO)); MovePicker mp(pos, ttMove, H, Position::see_value(pos.captured_piece_type()));
pinned = pos.pinned_pieces(pos.side_to_move()); pinned = pos.pinned_pieces(pos.side_to_move());
while ((move = mp.get_next_move()) != MOVE_NONE) while ((move = mp.get_next_move()) != MOVE_NONE)