#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().