recorder of MTDF/AlphaBeta [詳細]
#include <searchRecorder.h>

Public メソッド | |
| CountRecorder () | |
| 以下を定義すると詰将棋に入った時の局面を別ファイルに保存する | |
| virtual | ~CountRecorder () |
| void | addNodeCount (int count=1) |
| 探索の途中終了で使えるように必ず数える | |
| void | addQuiescenceCount (int count=1) |
| void | addCheckmateCount (int count=1) |
| void | setCheckmateCount (int count=1) |
| void | resetNodeCount () |
| size_t | nodeCount () const |
| size_t | quiescenceCount () const |
| size_t | checkmateCount () const |
| size_t | allNodeCount () const |
| void | tryMove (const MoveLogProb &, int, int) const |
| recordValue とセットで呼ぶ | |
| void | retryMove (const MoveLogProb &, int, int, int) const |
| recordValue とセットで呼ぶ | |
| void | recordValue (const MoveLogProb &, int, bool, int) const |
| tryMove とセットで呼ぶ | |
| void | recordTopLevelLowFail (const MoveLogProb &, int) const |
| 主に数の記録用 | |
| void | recordTopLevelHighFail (const MoveLogProb &, int) const |
| void | tableHitLowerBound (Player, int, int, int) const |
| void | tableHitUpperBound (Player, int, int, int) const |
| void | tableStoreLowerBound (Player, const MoveLogProb &, int, int) const |
| void | tableStoreUpperBound (Player, const MoveLogProb &, int, int) const |
| void | startSearch (int) const |
| virtual void | finishSearch (Move best, double seconds_consumed, bool verbose) const |
| これは遅くても気にしない | |
| void | recordInvalidMoveInTable (const state::SimpleState &, const MoveLogProb &, int limit) const |
| void | newCategory (const char *, int) const |
| void | gotoCheckmateSearch (const state::SimpleState &, int) const |
| 詰将棋無限ループ発見用 | |
| void | backFromCheckmateSearch () const |
| void | reportCount (std::ostream &, double seconds) const |
| void | reportCount (std::ostream &) const |
Private 変数 | |
| size_t | node_count |
| size_t | quiescence_count |
| size_t | checkmate_count |
recorder of MTDF/AlphaBeta
destructor はvirtualにすることで管理を容易にする. method はvirtualに*しない*ことで,キャストしたら上位クラスとして 振る舞うようにする.
searchRecorder.h の 27 行で定義されています。
| osl::search::CountRecorder::CountRecorder | ( | ) |
以下を定義すると詰将棋に入った時の局面を別ファイルに保存する
searchRecorder.cc の 28 行で定義されています。
| osl::search::CountRecorder::~CountRecorder | ( | ) | [virtual] |
searchRecorder.cc の 33 行で定義されています。
| void osl::search::CountRecorder::addCheckmateCount | ( | int | count = 1 |
) | [inline] |
searchRecorder.h の 52 行で定義されています。
参照先 checkmate_count, と SCOPED_LOCK.
| void osl::search::CountRecorder::addNodeCount | ( | int | count = 1 |
) | [inline] |
探索の途中終了で使えるように必ず数える
searchRecorder.h の 40 行で定義されています。
参照先 node_count, と SCOPED_LOCK.
参照元 osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearch(), と osl::search::AlphaBeta3::search().
| void osl::search::CountRecorder::addQuiescenceCount | ( | int | count = 1 |
) | [inline] |
| size_t osl::search::CountRecorder::allNodeCount | ( | ) | const [inline] |
searchRecorder.h の 84 行で定義されています。
参照先 checkmate_count, node_count, quiescence_count, と SCOPED_LOCK.
参照元 osl::search::AlphaBeta2Tree< EvalT >::addMultiPV(), osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2Tree< EvalT >::testStop(), と osl::search::AlphaBeta2Tree< EvalT >::updateRootPV().
| void osl::search::CountRecorder::backFromCheckmateSearch | ( | ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 121 行で定義されています。
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves(), osl::search::AlphaBeta2Tree< EvalT >::testThreatmate(), osl::search::AlphaBeta2Tree< EvalT >::tryCheckmate(), と osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain().
| size_t osl::search::CountRecorder::checkmateCount | ( | ) | const [inline] |
| void osl::search::CountRecorder::finishSearch | ( | Move | best, | |
| double | seconds_consumed, | |||
| bool | verbose | |||
| ) | const [virtual] |
これは遅くても気にしない
osl::search::SearchRecorderで再定義されています。
searchRecorder.cc の 52 行で定義されています。
参照先 reportCount().
参照元 osl::search::AlphaBeta3::computeBestMoveIteratively(), と osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively().
| void osl::search::CountRecorder::gotoCheckmateSearch | ( | const state::SimpleState & | , | |
| int | ||||
| ) | const [inline] |
詰将棋無限ループ発見用
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 120 行で定義されています。
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves(), osl::search::AlphaBeta2Tree< EvalT >::testThreatmate(), osl::search::AlphaBeta2Tree< EvalT >::tryCheckmate(), と osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain().
| void osl::search::CountRecorder::newCategory | ( | const char * | , | |
| int | ||||
| ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 117 行で定義されています。
| size_t osl::search::CountRecorder::nodeCount | ( | ) | const [inline] |
searchRecorder.h の 66 行で定義されています。
参照先 node_count, と SCOPED_LOCK.
参照元 osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively(), と reportCount().
| size_t osl::search::CountRecorder::quiescenceCount | ( | ) | const [inline] |
| void osl::search::CountRecorder::recordInvalidMoveInTable | ( | const state::SimpleState & | , | |
| const MoveLogProb & | , | |||
| int | limit | |||
| ) | const |
| void osl::search::CountRecorder::recordTopLevelHighFail | ( | const MoveLogProb & | , | |
| int | ||||
| ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 101 行で定義されています。
| void osl::search::CountRecorder::recordTopLevelLowFail | ( | const MoveLogProb & | , | |
| int | ||||
| ) | const [inline] |
| void osl::search::CountRecorder::recordValue | ( | const MoveLogProb & | , | |
| int | , | |||
| bool | , | |||
| int | ||||
| ) | const [inline] |
| void osl::search::CountRecorder::reportCount | ( | std::ostream & | os | ) | const |
searchRecorder.cc の 60 行で定義されています。
参照先 checkmateCount(), nodeCount(), と quiescenceCount().
| void osl::search::CountRecorder::reportCount | ( | std::ostream & | os, | |
| double | seconds | |||
| ) | const |
| void osl::search::CountRecorder::resetNodeCount | ( | ) |
| void osl::search::CountRecorder::retryMove | ( | const MoveLogProb & | , | |
| int | , | |||
| int | , | |||
| int | ||||
| ) | const [inline] |
| void osl::search::CountRecorder::setCheckmateCount | ( | int | count = 1 |
) | [inline] |
searchRecorder.h の 58 行で定義されています。
参照先 checkmate_count, と SCOPED_LOCK.
参照元 osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount().
| void osl::search::CountRecorder::startSearch | ( | int | ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 110 行で定義されています。
参照元 osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively().
| void osl::search::CountRecorder::tableHitLowerBound | ( | Player | , | |
| int | , | |||
| int | , | |||
| int | ||||
| ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 103 行で定義されています。
| void osl::search::CountRecorder::tableHitUpperBound | ( | Player | , | |
| int | , | |||
| int | , | |||
| int | ||||
| ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 104 行で定義されています。
| void osl::search::CountRecorder::tableStoreLowerBound | ( | Player | , | |
| const MoveLogProb & | , | |||
| int | , | |||
| int | ||||
| ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 106 行で定義されています。
| void osl::search::CountRecorder::tableStoreUpperBound | ( | Player | , | |
| const MoveLogProb & | , | |||
| int | , | |||
| int | ||||
| ) | const [inline] |
osl::search::SearchRecorderで再定義されています。
searchRecorder.h の 107 行で定義されています。
| void osl::search::CountRecorder::tryMove | ( | const MoveLogProb & | , | |
| int | , | |||
| int | ||||
| ) | const [inline] |
size_t osl::search::CountRecorder::checkmate_count [private] |
searchRecorder.h の 31 行で定義されています。
参照元 addCheckmateCount(), allNodeCount(), checkmateCount(), resetNodeCount(), と setCheckmateCount().
size_t osl::search::CountRecorder::node_count [private] |
searchRecorder.h の 29 行で定義されています。
参照元 addNodeCount(), allNodeCount(), nodeCount(), と resetNodeCount().
size_t osl::search::CountRecorder::quiescence_count [private] |
searchRecorder.h の 30 行で定義されています。
参照元 addQuiescenceCount(), allNodeCount(), quiescenceCount(), と resetNodeCount().
1.6.3