mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-22 01:56:58 +08:00
Better document how history works
Both with added comment and changing the API to reflect that only destination square and moved piece is important for history. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -34,19 +34,22 @@
|
||||
//// Types
|
||||
////
|
||||
|
||||
/// The History class stores statistics about how often different moves have
|
||||
/// been successful or unsuccessful during the current search. These
|
||||
/// statistics are used for reduction and move ordering decisions.
|
||||
/// The History class stores statistics about how often different moves
|
||||
/// have been successful or unsuccessful during the current search. These
|
||||
/// statistics are used for reduction and move ordering decisions. History
|
||||
/// entries are stored according only to moving piece and destination square,
|
||||
/// in particular two moves with different origin but same destination and
|
||||
/// same piece will be considered identical.
|
||||
|
||||
class History {
|
||||
|
||||
public:
|
||||
History();
|
||||
void clear();
|
||||
void success(Piece p, Move m, Depth d);
|
||||
void failure(Piece p, Move m);
|
||||
int move_ordering_score(Piece p, Move m) const;
|
||||
bool ok_to_prune(Piece p, Move m, Depth d) const;
|
||||
void success(Piece p, Square to, Depth d);
|
||||
void failure(Piece p, Square to);
|
||||
int move_ordering_score(Piece p, Square to) const;
|
||||
bool ok_to_prune(Piece p, Square to, Depth d) const;
|
||||
|
||||
private:
|
||||
int history[16][64]; // [piece][square]
|
||||
@@ -61,14 +64,14 @@ private:
|
||||
|
||||
/// HistoryMax controls how often the history counters will be scaled down:
|
||||
/// When the history score for a move gets bigger than HistoryMax, all
|
||||
/// entries in the table are divided by 2. It is difficult to guess what
|
||||
/// the ideal value of this constant is. Scaling down the scores often has
|
||||
/// entries in the table are divided by 2. It is difficult to guess what
|
||||
/// the ideal value of this constant is. Scaling down the scores often has
|
||||
/// the effect that parts of the search tree which have been searched
|
||||
/// recently have a bigger importance for move ordering than the moves which
|
||||
/// have been searched a long time ago.
|
||||
///
|
||||
/// Note that HistoryMax should probably be changed whenever the constant
|
||||
/// OnePly in depth.h is changed. This is somewhat annoying. Perhaps it
|
||||
/// OnePly in depth.h is changed. This is somewhat annoying. Perhaps it
|
||||
/// would be better to scale down the history table at regular intervals?
|
||||
|
||||
const int HistoryMax = 50000;
|
||||
|
||||
Reference in New Issue
Block a user