#include <searchState.h>


Public 型 | |
| typedef DualCheckmateSearcher | checkmate_t |
Public メソッド | |
| SearchStateCore (const NumEffectState &s, checkmate_t &checker) | |
| virtual | ~SearchStateCore () |
| int | curDepth () const |
| const AlarmSwitch | alarmSwitch () |
| void | setTimeOut (int seconds) |
| void | resetTimeOut () |
| bool | timerAvailable () const |
| void | testTimeOut () |
| virtual void | setState (const NumEffectState &s) |
| state ΥԡԤ. | |
| void | setHistory (const MoveStack &h) |
| bool | hasLastRecord (unsigned int n=0) const |
| SimpleHashRecord ** | lastRecordPtr (unsigned int n=0) |
| SimpleHashRecord * | lastRecord (unsigned int n=0) |
| SimpleHashRecord * | rootRecord () |
| void | setRootRecord (SimpleHashRecord *root) |
| void | setKillerMove (Move best_move) |
| void | getBigramKillerMoves (MoveVector &moves) const |
| void | getKillerMoves (MoveVector &moves) const |
| const BigramKillerMove & | bigramKillerMove () const |
| void | setBigramKillerMove (const BigramKillerMove &killers) |
| const HistoryTable & | historyTable () const |
| void | pushPass () |
| void | popPass () |
| template<Player P, class Function, class Eval> | |
| void | doUndoMoveOrPass (const HashKey &new_hash, Move move, SimpleHashRecord **move_record, Function &f, Eval &e) |
| ޤȤdoUndo | |
| const Move | lastMove (int i=1) const |
| const MoveStack & | history () const |
| const RecordStack & | recordHistory () const |
| const PathEncoding & | path () const |
| const NumEffectState & | state () const |
| const checkmate_t & | checkmateSearcher () const |
| const RepetitionCounter & | repetitionCounter () const |
| const HashKey & | currentHash () const |
| template<Player P, class Function> | |
| void | doUndoMoveLight (Move move, Function &f) |
| ̲ doUndo , hash ʤ | |
| template<Player P> | |
| bool | isLosingState (int node_limit) |
| template<Player P> | |
| bool | isWinningState (int node_limit, Move &checkmate_move, AttackOracleAges &age) |
| template<Player P> | |
| bool | isWinningStateShort (int depth, Move &checkmate_move) |
| FixedDepthSearcher Ƥ | |
| template<Player P> | |
| bool | isThreatmateState (int node_limit, Move &threatmate_move, AttackOracleAges &age) |
| P μ֤Pζ̤˵ͤäƤ뤫ɤ | |
| template<Player P> | |
| bool | isThreatmateStateShort (int depth, Move &threatmate_move) |
| virtual bool | abort (Move) const |
| bool | tryThreatmate () const |
Protected 変数 | |
| RecordStack | record_stack |
| RepetitionCounter | repetition_counter |
| boost::shared_ptr < SearchStateShared > | shared |
| volatile int | stop_flag |
| ͤˤäƤõ | |
Private メソッド | |
| void | throwTimeOut () |
| void | pushBeforeApply (Move move, SimpleHashRecord **record) |
| ApplyMove˹Ԥ | |
| void | updateRepetitionCounterAfterMove (const HashKey &new_hash) |
| pushBeforeApply θ塤ApplyMove桤FunctionƤ˸ƤФ | |
| void | popAfterApply () |
| ApplyMoveθ˹Ԥ | |
Private 変数 | |
| NumEffectState | current_state |
| checkmate_t * | checkmate_searcher |
| const Worker * | worker_cache |
| PathEncoding | current_path |
| MoveStack | move_history |
| KillerMoveTable | killer_moves |
| int | root_depth |
フレンド | |
| class | Updator |
構成 | |
| struct | UpdateWrapper |
| struct | Updator |
searchState.h の 47 行で定義されています。
searchState.h の 50 行で定義されています。
| osl::search::SearchStateCore::SearchStateCore | ( | const NumEffectState & | s, | |
| checkmate_t & | checker | |||
| ) |
| osl::search::SearchStateCore::~SearchStateCore | ( | ) | [virtual] |
searchState.cc の 37 行で定義されています。
| int osl::search::SearchStateCore::curDepth | ( | ) | const [inline] |
searchState.h の 79 行で定義されています。
参照先 history(), root_depth, と osl::container::MoveStack::size().
参照元 getKillerMoves(), osl::search::NullWindowSearch< Eval, MoveGenerator, Table, Recorder, Probabilities >::nullWindowSearch(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchWithMove(), setKillerMove(), と tryThreatmate().
| const AlarmSwitch osl::search::SearchStateCore::alarmSwitch | ( | ) | [inline] |
| void osl::search::SearchStateCore::setTimeOut | ( | int | seconds | ) |
| void osl::search::SearchStateCore::resetTimeOut | ( | ) |
| bool osl::search::SearchStateCore::timerAvailable | ( | ) | const [inline] |
searchState.h の 85 行で定義されています。
参照先 stop_flag.
参照元 osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::testMove().
| void osl::search::SearchStateCore::throwTimeOut | ( | ) | [private] |
| void osl::search::SearchStateCore::testTimeOut | ( | ) | [inline] |
searchState.h の 89 行で定義されています。
参照先 osl::search::Worker::checkStop(), stop_flag, throwTimeOut(), と worker_cache.
参照元 osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveIteratively(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::quiescenceValue(), と osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves().
| void osl::search::SearchStateCore::setState | ( | const NumEffectState & | s | ) | [virtual] |
state ΥԡԤ.
this->state õλ¸뤬õ exception ˲Ƥ
osl::search::SearchStateで再定義されています。
searchState.cc の 70 行で定義されています。
参照先 osl::search::RecordStack::clear(), osl::container::MoveStack::clear(), osl::RepetitionCounter::clear(), osl::search::KillerMoveTable::clear(), current_path, current_state, killer_moves, move_history, osl::RepetitionCounter::push(), record_stack, repetition_counter, root_depth, shared, と osl::container::MoveStack::size().
参照元 SearchStateCore(), と osl::search::SearchState::setState().
| void osl::search::SearchStateCore::setHistory | ( | const MoveStack & | h | ) |
| bool osl::search::SearchStateCore::hasLastRecord | ( | unsigned int | n = 0 |
) | const [inline] |
searchState.h の 105 行で定義されています。
参照先 osl::search::RecordStack::hasLastRecord(), と record_stack.
参照元 osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch< EvalT >::searchInternal(), osl::search::QuiescenceSearch< EvalT >::searchMain(), と SearchStateCore().
| SimpleHashRecord** osl::search::SearchStateCore::lastRecordPtr | ( | unsigned int | n = 0 |
) | [inline] |
| SimpleHashRecord* osl::search::SearchStateCore::lastRecord | ( | unsigned int | n = 0 |
) | [inline] |
| SimpleHashRecord* osl::search::SearchStateCore::rootRecord | ( | ) | [inline] |
| void osl::search::SearchStateCore::setRootRecord | ( | SimpleHashRecord * | root | ) | [inline] |
| void osl::search::SearchStateCore::setKillerMove | ( | Move | best_move | ) | [inline] |
osl::search::SearchStateで再定義されています。
searchState.h の 129 行で定義されています。
参照先 curDepth(), osl::Move::isInvalid(), osl::Move::isPass(), killer_moves, lastMove(), osl::search::KillerMoveTable::setMove(), と shared.
参照元 osl::search::QuiescenceSearch< EvalT >::examineMoves(), と osl::search::SearchState::setKillerMove().
| void osl::search::SearchStateCore::getBigramKillerMoves | ( | MoveVector & | moves | ) | const [inline] |
searchState.h の 140 行で定義されています。
参照先 osl::container::MoveStack::hasLastMove(), lastMove(), move_history, shared, と state().
参照元 getKillerMoves(), と osl::search::QuiescenceSearch< EvalT >::searchMain().
| void osl::search::SearchStateCore::getKillerMoves | ( | MoveVector & | moves | ) | const [inline] |
| const BigramKillerMove& osl::search::SearchStateCore::bigramKillerMove | ( | ) | const [inline] |
| void osl::search::SearchStateCore::setBigramKillerMove | ( | const BigramKillerMove & | killers | ) |
| const HistoryTable& osl::search::SearchStateCore::historyTable | ( | ) | const [inline] |
searchState.h の 157 行で定義されています。
参照先 shared.
参照元 osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::historyTable(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), と osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::testMove().
| void osl::search::SearchStateCore::pushPass | ( | ) | [inline] |
| void osl::search::SearchStateCore::popPass | ( | ) | [inline] |
searchState.h の 170 行で定義されています。
参照先 osl::alt(), current_path, current_state, move_history, osl::Move::PASS(), osl::container::MoveStack::pop(), と osl::PathEncoding::popMove().
参照元 osl::search::QuiescenceSearch< EvalT >::examineTakeBack2(), と osl::search::QuiescenceSearch< EvalT >::staticValueWithThreat().
| void osl::search::SearchStateCore::pushBeforeApply | ( | Move | move, | |
| SimpleHashRecord ** | record | |||
| ) | [inline, private] |
ApplyMove˹Ԥ
searchState.h の 181 行で定義されています。
参照先 move_history, osl::search::RecordStack::push(), osl::container::MoveStack::push(), と record_stack.
参照元 doUndoMoveOrPass().
| void osl::search::SearchStateCore::updateRepetitionCounterAfterMove | ( | const HashKey & | new_hash | ) | [inline, private] |
pushBeforeApply θ塤ApplyMove桤FunctionƤ˸ƤФ
searchState.h の 220 行で定義されています。
参照先 current_state, osl::RepetitionCounter::push(), と repetition_counter.
| void osl::search::SearchStateCore::popAfterApply | ( | ) | [inline, private] |
ApplyMoveθ˹Ԥ
searchState.h の 227 行で定義されています。
参照先 move_history, osl::container::MoveStack::pop(), osl::RepetitionCounter::pop(), osl::search::RecordStack::pop(), record_stack, と repetition_counter.
参照元 doUndoMoveOrPass().
| void osl::search::SearchStateCore::doUndoMoveOrPass | ( | const HashKey & | new_hash, | |
| Move | move, | |||
| SimpleHashRecord ** | move_record, | |||
| Function & | f, | |||
| Eval & | e | |||
| ) | [inline] |
ޤȤdoUndo
searchState.h の 238 行で定義されています。
参照先 current_path, current_state, popAfterApply(), と pushBeforeApply().
参照元 osl::search::QuiescenceSearch< EvalT >::examineMoves(), と osl::search::QuiescenceSearch< EvalT >::passValue().
| const Move osl::search::SearchStateCore::lastMove | ( | int | i = 1 |
) | const [inline] |
searchState.h の 248 行で定義されています。
参照先 osl::container::MoveStack::lastMove(), と move_history.
参照元 osl::search::QuiescenceSearch< EvalT >::examineTakeBack2(), getBigramKillerMoves(), isLosingState(), isWinningState(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::quiescenceValue(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch< EvalT >::searchMain(), setKillerMove(), osl::search::QuiescenceSearch< EvalT >::staticValue(), osl::search::QuiescenceSearch< EvalT >::staticValueWithThreat(), と tryThreatmate().
| const MoveStack& osl::search::SearchStateCore::history | ( | ) | const [inline] |
searchState.h の 249 行で定義されています。
参照先 move_history.
参照元 abort(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::SearchState::countSacrificeCheck2(), curDepth(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), と setHistory().
| const RecordStack& osl::search::SearchStateCore::recordHistory | ( | ) | const [inline] |
| const PathEncoding& osl::search::SearchStateCore::path | ( | ) | const [inline] |
| const NumEffectState& osl::search::SearchStateCore::state | ( | ) | const [inline] |
searchState.h の 252 行で定義されています。
参照先 current_state.
参照元 abort(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMove(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::QuiescenceSearch< EvalT >::currentState(), osl::search::QuiescenceSearch< EvalT >::currentValueWithLastThreat(), osl::search::QuiescenceSearch< EvalT >::examineCapture(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::examineMoves(), osl::search::QuiescenceSearch< EvalT >::examineMoves(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::examineOneMove(), osl::search::QuiescenceSearch< EvalT >::examineTakeBack(), osl::search::QuiescenceSearch< EvalT >::examineTakeBack2(), osl::search::QuiescenceSearch< EvalT >::generateAndExamineTakeBack2(), getBigramKillerMoves(), getKillerMoves(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::isReasonableMove(), osl::search::NullWindowSearch< Eval, MoveGenerator, Table, Recorder, Probabilities >::nullWindowSearch(), osl::search::NullWindowSearch< Eval, MoveGenerator, Table, Recorder, Probabilities >::nullWindowSearchAfterMove(), osl::search::NullWindowSearch< Eval, MoveGenerator, Table, Recorder, Probabilities >::nullWindowSearchOfTurn(), osl::search::SearchStateCore::UpdateWrapper< Function, Eval >::operator()(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::quiescenceValue(), osl::search::QuiescenceSearch< EvalT >::search(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch< EvalT >::searchInternal(), osl::search::QuiescenceSearch< EvalT >::searchIteratively(), osl::search::QuiescenceSearch< EvalT >::searchMain(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchWithMove(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::setInitialGuess(), osl::search::QuiescenceSearch< EvalT >::staticValue(), osl::search::QuiescenceSearch< EvalT >::staticValueWithThreat(), osl::search::QuiescenceSearch< EvalT >::takeBackOrChase(), osl::search::QuiescenceSearch< EvalT >::takeBackValue(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::testMove(), と tryThreatmate().
| const checkmate_t& osl::search::SearchStateCore::checkmateSearcher | ( | ) | const [inline] |
| const RepetitionCounter& osl::search::SearchStateCore::repetitionCounter | ( | ) | const [inline] |
| const HashKey& osl::search::SearchStateCore::currentHash | ( | ) | const [inline] |
searchState.h の 257 行で定義されています。
参照先 osl::RepetitionCounter::history(), と repetition_counter.
参照元 osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveIteratively(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::QuiescenceSearch< EvalT >::examineMoves(), isLosingState(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::isReasonableMove(), isThreatmateState(), isWinningState(), osl::search::QuiescenceSearch< EvalT >::passValue(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch< EvalT >::searchInternal(), osl::search::QuiescenceSearch< EvalT >::searchMain(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchWithMove(), と osl::search::QuiescenceSearch< EvalT >::staticValue().
| void osl::search::SearchStateCore::doUndoMoveLight | ( | Move | move, | |
| Function & | f | |||
| ) | [inline] |
| bool osl::search::SearchStateCore::isLosingState | ( | int | node_limit | ) | [inline] |
| bool osl::search::SearchStateCore::isWinningState | ( | int | node_limit, | |
| Move & | checkmate_move, | |||
| AttackOracleAges & | age | |||
| ) | [inline] |
| bool osl::search::SearchStateCore::isWinningStateShort | ( | int | depth, | |
| Move & | checkmate_move | |||
| ) | [inline] |
FixedDepthSearcher Ƥ
searchState.h の 295 行で定義されています。
参照先 current_state, osl::checkmate::FixedDepthSearcher::hasCheckmateMove(), と osl::checkmate::ProofDisproof::isCheckmateSuccess().
| bool osl::search::SearchStateCore::isThreatmateState | ( | int | node_limit, | |
| Move & | threatmate_move, | |||
| AttackOracleAges & | age | |||
| ) | [inline] |
P μ֤Pζ̤˵ͤäƤ뤫ɤ
searchState.h の 305 行で定義されています。
参照先 checkmate_searcher, current_state, currentHash(), と path().
| bool osl::search::SearchStateCore::isThreatmateStateShort | ( | int | depth, | |
| Move & | threatmate_move | |||
| ) | [inline] |
| bool osl::search::SearchStateCore::abort | ( | Move | best_move | ) | const [virtual] |
osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >, osl::search::SearchState, と osl::search::SearchFramework< Eval, osl::search::MoveGenerator, Table, Recorder, Probabilities >で再定義されています。
searchState.cc の 101 行で定義されています。
参照先 osl::search::RecordStack::dump(), osl::search::SimpleHashRecord::dump(), osl::container::MoveStack::dump(), osl::RepetitionCounter::history(), history(), osl::search::RecordStack::lastRecord(), record_stack, repetition_counter, show(), と state().
参照元 osl::search::SearchState::abort(), osl::search::QuiescenceSearch< EvalT >::examineMoves(), と osl::search::QuiescenceSearch< EvalT >::searchInternal().
| bool osl::search::SearchStateCore::tryThreatmate | ( | ) | const [inline] |
searchState.h の 338 行で定義されています。
参照先 curDepth(), osl::hasEffect(), osl::search::FirstMoveThreatmate::isMember(), osl::Move::isNormal(), lastMove(), osl::Move::ptypeO(), state(), と osl::Move::to().
参照元 osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), と osl::search::QuiescenceSearch< EvalT >::staticValue().
friend class Updator [friend] |
searchState.h の 216 行で定義されています。
NumEffectState osl::search::SearchStateCore::current_state [private] |
searchState.h の 53 行で定義されています。
参照元 checkmateSearcher(), isLosingState(), isThreatmateState(), と isWinningState().
const Worker* osl::search::SearchStateCore::worker_cache [private] |
searchState.h の 64 行で定義されています。
参照元 doUndoMoveLight(), doUndoMoveOrPass(), path(), popPass(), pushPass(), setHistory(), と setState().
searchState.h の 65 行で定義されています。
参照元 getBigramKillerMoves(), history(), lastMove(), popAfterApply(), popPass(), pushBeforeApply(), pushPass(), setHistory(), と setState().
int osl::search::SearchStateCore::root_depth [private] |
searchState.h の 69 行で定義されています。
参照元 abort(), hasLastRecord(), lastRecordPtr(), popAfterApply(), pushBeforeApply(), recordHistory(), rootRecord(), setRootRecord(), と setState().
boost::shared_ptr<SearchStateShared> osl::search::SearchStateCore::shared [protected] |
volatile int osl::search::SearchStateCore::stop_flag [protected] |
ͤˤäƤõ
searchState.h の 75 行で定義されています。
参照元 alarmSwitch(), resetTimeOut(), setTimeOut(), testTimeOut(), と timerAvailable().
1.5.6