"tree" of AlphaBeta2, copied by split [詳細]
#include <alphaBeta2.h>


構成 | |
| struct | BetaCut |
| class | NextMove |
| struct | NextQMove |
Public 型 | |
| enum | { MaxDepth = SearchState2Core::MaxDepth } |
| typedef EvalT | eval_t |
| typedef AlphaBeta2Common< EvalT > | common_t |
| typedef AlphaBeta2Window | Window |
Public メソッド | |
| bool | stopping () const |
| void | testStop () |
| size_t | nodeCount () const |
| template<Player P> | |
| const MoveLogProb | nextMove () |
Static Public メソッド | |
| static int | rootAlpha (Player P, int last_value, Progress16 progress) |
| static int | stableThreshold (Player P, int last_value) |
Protected メソッド | |
| AlphaBeta2Tree (const NumEffectState &s, checkmate_t &checker, SimpleHashTable *t, CountRecorder &) | |
| AlphaBeta2Tree (const AlphaBeta2Tree &src, AlphaBeta2Parallel< EvalT > *) | |
| ~AlphaBeta2Tree () | |
| void | updateRootPV (Player P, std::ostream &, int, Move) |
| void | addMultiPV (Player P, int, Move) |
| bool | isStable (Player P, int new_value) const |
| void | showFailLow (int result, Move m) const |
| template<Player P> | |
| int | alphaBetaSearch (const MoveLogProb &move, Window window, bool in_pv) |
alphaBetaSearch (move)
| |
| template<Player P> | |
| int | alphaBetaSearchAfterMove (const MoveLogProb &move, Window window, bool in_pv) |
| template<Player P> | |
| int | quiesce (Window) |
| template<Player P> | |
| int | quiesceStable (Window) |
| template<Player P> | |
| int | quiesceExp (Window) |
| template<Player P> | |
| int | searchAllMoves (SimpleHashRecord *, Window w) |
| template<Player P> | |
| int | searchAllMoves (Move m, int limit_consumption, SimpleHashRecord *, Window w) |
| template<Player P> | |
| bool | tryCheckmate (SimpleHashRecord *record, bool in_pv, Move &checkmate_move) |
| 初めの方で詰みを読む | |
| template<Player P> | |
| bool | tryCheckmateAgain (SimpleHashRecord *record, Move &checkmate_move, int node_count, int best_value) |
| 負けそうな時にさらに詰みを読む | |
| template<Player P> | |
| void | testThreatmate (SimpleHashRecord *record, bool in_pv) |
| 詰めろの有無を確認 | |
| template<Player P> | |
| void | examineMovesRoot (const MoveLogProbVector &, size_t, Window, MoveLogProb &, int &) |
| alpha値が求まった後で他の手を調べる | |
| template<Player P> | |
| int | quiesceRoot (Window, int depth_left, Move &best_move, DualThreatmateState) |
| template<Player P> | |
| int | quiesce (Window, int depth_left, DualThreatmateState) |
| template<Player P> | |
| bool | quiesceWithMove (Move, Window &, int, Move &, int &, const DualThreatmateState &) |
| void | updateCheckmateCount () |
| bool | tryPass (SimpleHashRecord *record, Player P) const |
| MoveGenerator & | makeGenerator () |
Static Protected メソッド | |
| static MoveGenerator * | alloc () |
| static void | dealloc (MoveGenerator *) |
Protected 変数 | |
| size_t | node_count |
| 静止探索も含めたノード数 | |
| FixedCapacityVector < MoveGenerator *, MaxDepth > | generators |
| stat::Average | mpn |
| stat::Average | mpn_cut |
| stat::Average | alpha_update |
| stat::Average | last_alpha_update |
| stat::Average | ext |
| stat::Average | ext_limit |
| boost::shared_ptr < AlphaBeta2Parallel< EvalT > > | shared |
| boost::shared_ptr < AlphaBeta2SharedRoot > | shared_root |
Static Protected 変数 | |
| static CArray< int, SearchState2Core::MaxDepth > | depth_node_count |
Private メソッド | |
| void | throwStop () |
| void | showPV (std::ostream &, int, Move, char stable) const |
フレンド | |
| class | NextMove< BLACK > |
| class | NextMove< WHITE > |
| class | NextQMove< BLACK > |
| class | NextQMove< WHITE > |
"tree" of AlphaBeta2, copied by split
alphaBeta2.h の 133 行で定義されています。
| typedef AlphaBeta2Common<EvalT> osl::search::AlphaBeta2Tree< EvalT >::common_t |
alphaBeta2.h の 139 行で定義されています。
| typedef EvalT osl::search::AlphaBeta2Tree< EvalT >::eval_t |
osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >を再定義しています。
alphaBeta2.h の 138 行で定義されています。
| typedef AlphaBeta2Window osl::search::AlphaBeta2Tree< EvalT >::Window |
osl::search::AlphaBeta2< EvalT >で再定義されています。
alphaBeta2.h の 170 行で定義されています。
| anonymous enum |
alphaBeta2.h の 140 行で定義されています。
| osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree | ( | const NumEffectState & | s, | |
| checkmate_t & | checker, | |||
| SimpleHashTable * | t, | |||
| CountRecorder & | r | |||
| ) | [inline, protected] |
alphaBeta2.cc の 75 行で定義されています。
| osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree | ( | const AlphaBeta2Tree< EvalT > & | src, | |
| AlphaBeta2Parallel< EvalT > * | ||||
| ) | [inline, protected] |
alphaBeta2.cc の 103 行で定義されています。
| osl::search::AlphaBeta2Tree< EvalT >::~AlphaBeta2Tree | ( | ) | [inline, protected] |
| void osl::search::AlphaBeta2Tree< EvalT >::addMultiPV | ( | Player | P, | |
| int | result, | |||
| Move | m | |||
| ) | [inline, protected] |
alphaBeta2.cc の 1300 行で定義されています。
参照先 osl::search::CountRecorder::allNodeCount(), osl::alt(), osl::search::SearchTimer::elapsed(), osl::search::SearchTimer::hasMonitor(), osl::search::SimpleHashTable::isVerbose(), osl::OslConfig::lock_io, osl::search::SearchState2Core::makePV(), osl::search::SearchTimer::monitors(), osl::newPtypeO(), osl::PAWN, osl::search::AlphaBeta2Common< EvalT >::prediction_for_speculative_search, osl::search::SearchState2Core::pv, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchState2::root_limit, osl::search::AlphaBeta2Tree< EvalT >::shared, osl::search::AlphaBeta2Tree< EvalT >::shared_root, osl::search::AlphaBeta2Tree< EvalT >::showPV(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, と osl::OslConfig::usiOutputPawnValue().
参照元 osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot().
| osl::search::MoveGenerator * osl::search::AlphaBeta2Tree< EvalT >::alloc | ( | ) | [inline, static, protected] |
alphaBeta2.cc の 126 行で定義されています。
| int osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearch | ( | const MoveLogProb & | move, | |
| Window | window, | |||
| bool | in_pv | |||
| ) | [inline, protected] |
alphaBetaSearch (move)
-- => searchAllMoves => alphaBetaSearch (child move)
alphaBeta2.cc の 1415 行で定義されています。
参照先 osl::search::CountRecorder::addNodeCount(), osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), osl::RepetitionCounter::checkCount(), osl::search::SearchState2::countSacrificeCheck2(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2Core::currentHash(), osl::search::PassCounter::dec(), osl::search::DominanceCheck::detect(), osl::search::FixedEval::drawValue(), osl::search::AlphaBeta2Common< EvalT >::eval, osl::MoveLogProb::getMove(), osl::Sennichite::hasWinner(), osl::RepetitionCounter::history(), osl::search::SearchState2Core::history(), osl::search::PassCounter::inc(), osl::RepetitionCounter::isAlmostSennichite(), osl::Sennichite::isDraw(), osl::Sennichite::isNormal(), osl::search::PassCounter::loopByBothPass(), osl::search::DominanceCheck::LOSE, osl::eval::notLessThan(), osl::search::AlphaBeta2Common< EvalT >::pass_count, osl::PTYPE_EMPTY, osl::search::SearchState2Core::pv, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchState2Core::repetition_counter, osl::search::SearchState2Core::repetitionCounter(), result, osl::search::SearchState2Core::state(), osl::search::AlphaBeta2Tree< EvalT >::testStop(), osl::search::DominanceCheck::WIN, osl::search::FixedEval::winByFoul(), osl::search::FixedEval::winByLoop(), と osl::Sennichite::winner().
| int osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearchAfterMove | ( | const MoveLogProb & | move, | |
| Window | window, | |||
| bool | in_pv | |||
| ) | [inline, protected] |
alphaBeta2.cc の 164 行で定義されています。
参照先 osl::stat::Average::add(), osl::search::SimpleHashRecord::addNodeCount(), osl::search::SearchState2Core::AllNode, osl::search::SimpleHashTable::allocate(), osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::SimpleHashRecord::bestMove(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::search::ThreatmateState::CHECK_AFTER_THREATMATE, osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::currentHash(), osl::search::AlphaBeta2Common< EvalT >::eval, osl::search::AlphaBeta2Tree< EvalT >::ext, osl::search::AlphaBeta2Tree< EvalT >::ext_limit, osl::MoveLogProb::getLogProb(), osl::MoveLogProb::getMove(), osl::search::SimpleHashRecord::inCheck(), osl::Move::isNormal(), osl::search::SearchState2Core::lastRecord(), limit, osl::search::PassCounter::loopByBothPass(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::eval::min(), osl::search::FixedEval::minusInfty(), osl::search::AlphaBeta2Tree< EvalT >::node_count, osl::search::SearchState2Core::node_type, osl::search::AlphaBeta2Tree< EvalT >::nodeCount(), osl::eval::notLessThan(), osl::search::AlphaBeta2Window::null(), osl::search::AlphaBeta2Common< EvalT >::pass_count, osl::Move::player(), osl::search::SearchState2Core::pv, osl::search::SearchState2Core::PvNode, result, osl::search::SearchState2Core::setCurrentRecord(), osl::search::SimpleHashRecord::setInCheck(), osl::search::SearchState2Core::state(), osl::search::ThreatmateState::status(), osl::search::DualThreatmateState::status(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, と osl::search::SimpleHashRecord::threatmate().
| void osl::search::AlphaBeta2Tree< EvalT >::dealloc | ( | MoveGenerator * | p | ) | [inline, static, protected] |
alphaBeta2.cc の 141 行で定義されています。
参照元 osl::search::AlphaBeta2Tree< EvalT >::~AlphaBeta2Tree().
| template void osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot< WHITE > | ( | const MoveLogProbVector & | , | |
| size_t | , | |||
| Window | , | |||
| MoveLogProb & | , | |||
| int & | ||||
| ) | [inline, protected] |
alpha値が求まった後で他の手を調べる
alphaBeta2.cc の 1495 行で定義されています。
参照先 osl::search::AlphaBeta2Tree< EvalT >::addMultiPV(), osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::search::AlphaBeta2Common< EvalT >::eval, osl::MoveLogProb::getMove(), osl::search::FixedEval::isWinValue(), osl::OslConfig::lock_io, osl::search::SearchTimer::monitors(), osl::search::AlphaBeta2Common< EvalT >::multi_pv, osl::newPtypeO(), osl::PAWN, result, osl::search::AlphaBeta2Tree< EvalT >::shared, osl::search::AlphaBeta2Tree< EvalT >::testStop(), osl::search::AlphaBeta2Tree< EvalT >::updateRootPV(), と width.
| bool osl::search::AlphaBeta2Tree< EvalT >::isStable | ( | Player | P, | |
| int | new_value | |||
| ) | const [protected] |
| osl::search::MoveGenerator & osl::search::AlphaBeta2Tree< EvalT >::makeGenerator | ( | ) | [inline, protected] |
alphaBeta2.cc の 147 行で定義されています。
参照先 osl::search::AlphaBeta2Tree< EvalT >::alloc(), osl::search::SearchState2Core::curDepth(), と osl::search::AlphaBeta2Tree< EvalT >::generators.
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2Tree< EvalT >::nextMove(), osl::search::AlphaBeta2Tree< EvalT >::quiesce(), と osl::search::AlphaBeta2Tree< EvalT >::quiesceRoot().
| const osl::MoveLogProb osl::search::AlphaBeta2Tree< EvalT >::nextMove | ( | ) | [inline] |
alphaBeta2.cc の 478 行で定義されています。
参照先 osl::search::AlphaBeta2Common< EvalT >::ALL, osl::search::SimpleHashRecord::bestMove(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::CutNode, osl::search::AlphaBeta2Common< EvalT >::eval, osl::search::AlphaBeta2Common< EvalT >::FINISH, osl::search::SearchState2Core::getKillerMoves(), osl::MoveLogProb::getMove(), osl::search::AlphaBeta2Common< EvalT >::HASH, osl::search::SimpleHashRecord::inCheck(), osl::search::MoveGenerator::init(), osl::search::AlphaBeta2Common< EvalT >::KILLER, osl::search::AlphaBeta2Common< EvalT >::killers, osl::search::SearchState2Core::lastRecord(), osl::search::AlphaBeta2Common< EvalT >::leafLimit(), osl::search::AlphaBeta2Tree< EvalT >::makeGenerator(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::AlphaBeta2Common< EvalT >::move_type, osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::search::SearchState2Core::node_type, osl::Move::PASS(), osl::search::AlphaBeta2Common< EvalT >::PASS, osl::search::SearchState2Core::state(), osl::search::AlphaBeta2Common< EvalT >::TACTICAL, osl::search::SimpleHashRecord::threatmate(), osl::search::AlphaBeta2Tree< EvalT >::tryPass(), osl::MoveLogProb::validMove(), と osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::validTableMove().
| size_t osl::search::AlphaBeta2Tree< EvalT >::nodeCount | ( | ) | const [inline] |
alphaBeta2.h の 171 行で定義されています。
参照先 osl::search::AlphaBeta2Tree< EvalT >::node_count.
参照元 osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearchAfterMove(), osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively(), osl::search::AlphaBeta2Tree< EvalT >::quiesceExp(), と osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesce | ( | Window | w, | |
| int | depth_left, | |||
| DualThreatmateState | parent_threatmate | |||
| ) | [inline, protected] |
alphaBeta2.cc の 1082 行で定義されています。
参照先 osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::Move::capturePtype(), osl::search::SearchState2Core::curDepth(), osl::eval::delta(), osl::search::SearchState2Core::depth_node_count_quiesce, osl::search::AlphaBeta2Common< EvalT >::eval, finish(), osl::search::SimpleHashRecord::inCheck(), osl::search::MoveGenerator::init(), osl::search::SearchState2Core::initPV(), osl::Move::isDrop(), osl::search::SearchState2Core::lastMove(), osl::search::AlphaBeta2Tree< EvalT >::makeGenerator(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::search::FixedEval::minusInfty(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::search::AlphaBeta2Tree< EvalT >::node_count, osl::search::AlphaBeta2Common< EvalT >::PASS, osl::PAWN, osl::Move::ptype(), osl::PTYPE_EMPTY, osl::search::SimpleHashRecord::setInCheck(), osl::search::SearchState2Core::state(), osl::search::FixedEval::threatmatePenalty(), osl::search::DualThreatmateState::updateInLock(), osl::MoveLogProb::validMove(), osl::search::FixedEval::winByCheckmate(), と osl::search::FixedEval::winByFoul().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesce | ( | Window | w | ) | [inline, protected] |
alphaBeta2.cc の 891 行で定義されています。
| int osl::search::AlphaBeta2Tree< EvalT >::quiesceExp | ( | Window | w | ) | [inline, protected] |
alphaBeta2.cc の 932 行で定義されています。
参照先 osl::search::CountRecorder::addQuiescenceCount(), osl::search::SearchState2Core::lastRecord(), osl::search::AlphaBeta2Tree< EvalT >::nodeCount(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, result, osl::search::QuiescenceRecord::setLowerBound(), osl::search::AlphaBeta2Tree< EvalT >::testStop(), と osl::search::SimpleHashRecord::threatmate().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesceRoot | ( | Window | w, | |
| int | depth_left, | |||
| Move & | best_move, | |||
| DualThreatmateState | threatmate | |||
| ) | [inline, protected] |
alphaBeta2.cc の 1006 行で定義されています。
参照先 osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::QuiescenceRecord::bestMove(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::eval::delta(), osl::search::AlphaBeta2Common< EvalT >::eval, finish(), osl::search::SimpleHashRecord::inCheck(), osl::search::MoveGenerator::init(), osl::search::SearchState2Core::initPV(), osl::Move::isDrop(), osl::Move::isNormal(), osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), osl::search::AlphaBeta2Tree< EvalT >::makeGenerator(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::FixedEval::minusInfty(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::search::AlphaBeta2Common< EvalT >::PASS, osl::PAWN, osl::Move::ptype(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchState2Core::state(), osl::search::FixedEval::threatmatePenalty(), osl::MoveLogProb::validMove(), osl::search::FixedEval::winByCheckmate(), と osl::search::FixedEval::winByFoul().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesceStable | ( | Window | w | ) | [inline, protected] |
alphaBeta2.cc の 903 行で定義されています。
参照先 osl::search::CountRecorder::addQuiescenceCount(), osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::AlphaBeta2Common< EvalT >::eval, osl::search::SearchState2Core::initPV(), osl::Move::isInvalid(), osl::search::SearchState2Core::lastMove(), osl::search::AlphaBeta2Tree< EvalT >::node_count, osl::Move::PASS(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, result, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, と osl::search::AlphaBeta2Tree< EvalT >::testStop().
| bool osl::search::AlphaBeta2Tree< EvalT >::quiesceWithMove | ( | Move | move, | |
| Window & | w, | |||
| int | depth_left, | |||
| Move & | best_move, | |||
| int & | best_value, | |||
| const DualThreatmateState & | threatmate | |||
| ) | [inline, protected] |
alphaBeta2.cc の 974 行で定義されています。
参照先 osl::search::AlphaBeta2Window::alpha(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::search::SearchState2Core::currentHash(), osl::eval::delta(), osl::search::AlphaBeta2Common< EvalT >::eval, osl::search::AlphaBeta2Common< EvalT >::in_pv, osl::search::SearchState2Core::makePV(), osl::search::AlphaBeta2Window::null(), と result.
| int osl::search::AlphaBeta2Tree< EvalT >::rootAlpha | ( | Player | P, | |
| int | last_value, | |||
| Progress16 | progress | |||
| ) | [inline, static] |
alphaBeta2.cc の 1207 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::KING, osl::newPtypeO(), osl::PAWN, と width.
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot().
| int osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves | ( | Move | m, | |
| int | limit_consumption, | |||
| SimpleHashRecord * | record, | |||
| Window | w | |||
| ) | [inline, protected] |
alphaBeta2.cc の 265 行で定義されています。
参照先 osl::search::SearchState2::addLimit(), osl::search::AlphaBeta2Window::alpha(), osl::eval::betterThan(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::node_type, osl::search::AlphaBeta2Window::null(), osl::search::SearchState2Core::PvNode, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::CountRecorder::recordValue(), result, osl::search::SearchState2::subLimit(), と osl::search::CountRecorder::tryMove().
| int osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves | ( | SimpleHashRecord * | record, | |
| Window | w | |||
| ) | [inline, protected] |
alphaBeta2.cc の 558 行で定義されています。
参照先 osl::search::HistoryTable::add(), osl::stat::Average::add(), osl::search::AlphaBeta2Common< EvalT >::ALL, osl::search::AlphaBeta2Window::alpha(), osl::search::AlphaBeta2Tree< EvalT >::alpha_update, osl::alt(), osl::search::CountRecorder::backFromCheckmateSearch(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::search::FixedEval::brinkmatePenalty(), osl::Move::capturePtype(), osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchTable::CheckmateSpecialDepth, osl::search::SearchState2::checkPointSearchAllMoves(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::Move::DeclareWin(), osl::eval::delta(), osl::search::AlphaBeta2Tree< EvalT >::depth_node_count, osl::search::AlphaBeta2Common< EvalT >::eval, osl::MoveLogProb::getLogProb(), osl::MoveLogProb::getMove(), osl::search::CountRecorder::gotoCheckmateSearch(), osl::search::SimpleHashRecord::hasGreaterLowerBound(), osl::search::SearchState2Core::hasLastRecord(), osl::search::SimpleHashRecord::hasLesserUpperBound(), osl::search::SimpleHashRecord::hasLowerBound(), osl::search::SimpleHashRecord::hasUpperBound(), osl::search::SearchTable::HistorySpecialDepth, osl::search::SearchState2Core::historyTable(), osl::search::AlphaBeta2Common< EvalT >::in_pv, osl::search::SimpleHashRecord::inCheck(), osl::search::AlphaBeta2Common< EvalT >::INITIAL, osl::Move::INVALID(), osl::search::AlphaBeta2Window::isConsistent(), osl::eval::isConsistentValue(), osl::Move::isNormal(), osl::Move::isValid(), osl::search::FixedEval::isWinValue(), osl::search::AlphaBeta2Tree< EvalT >::last_alpha_update, osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), osl::search::AlphaBeta2Common< EvalT >::leafLimit(), osl::search::SimpleHashRecord::lowerBound(), osl::search::SearchState2Core::makePV(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::FixedEval::minusInfty(), osl::search::AlphaBeta2Common< EvalT >::move_type, osl::search::AlphaBeta2Tree< EvalT >::mpn, osl::search::AlphaBeta2Tree< EvalT >::mpn_cut, osl::search::AlphaBeta2Tree< EvalT >::nodeCount(), osl::search::AlphaBeta2Window::null(), osl::Move::player(), osl::PTYPE_EMPTY, osl::search::SearchState2Core::pv, osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recordLowerBound(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recordUpperBound(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recordWinByCheckmate(), result, osl::search::AlphaBeta2Common< EvalT >::rootLimitBias(), search_assert, osl::search::SearchState2::setKillerMove(), osl::MoveLogProb::setLogProb(), osl::search::AlphaBeta2Tree< EvalT >::shared, osl::search::SearchState2Core::state(), osl::search::CountRecorder::tableHitLowerBound(), osl::search::CountRecorder::tableHitUpperBound(), osl::search::RealizationProbability::TableMove, osl::search::AlphaBeta2Tree< EvalT >::testStop(), osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmateNodes(), osl::search::AlphaBeta2Tree< EvalT >::tryPass(), osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount(), osl::search::SimpleHashRecord::upperBound(), osl::MoveLogProb::validMove(), と osl::search::FixedEval::winByCheckmate().
| void osl::search::AlphaBeta2Tree< EvalT >::showFailLow | ( | int | result, | |
| Move | m | |||
| ) | const [inline, protected] |
| void osl::search::AlphaBeta2Tree< EvalT >::showPV | ( | std::ostream & | os, | |
| int | result, | |||
| Move | m, | |||
| char | stable | |||
| ) | const [inline, private] |
alphaBeta2.cc の 1339 行で定義されています。
参照先 osl::search::AlphaBeta2Common< EvalT >::eval, osl::container::GeneralSimpleHashTable< Record >::find(), osl::Move::isNormal(), osl::search::DualThreatmateState::isThreatmate(), osl::record::K_TSUMERO, osl::newPtypeO(), osl::PAWN, osl::search::SearchState2Core::pv, osl::search::AlphaBeta2Common< EvalT >::root_ignore_moves, osl::record::csa::show(), osl::search::SearchState2Core::state(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, osl::search::SimpleHashRecord::threatmate(), osl::OslConfig::usiMode(), と osl::WHITE.
参照元 osl::search::AlphaBeta2Tree< EvalT >::addMultiPV(), と osl::search::AlphaBeta2Tree< EvalT >::updateRootPV().
| int osl::search::AlphaBeta2Tree< EvalT >::stableThreshold | ( | Player | P, | |
| int | last_value | |||
| ) | [inline, static] |
alphaBeta2.cc の 1241 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::KING, osl::newPtypeO(), osl::PAWN, と width.
| bool osl::search::AlphaBeta2Tree< EvalT >::stopping | ( | ) | const [inline] |
osl::search::SearchTimerを再定義しています。
alphaBeta2.h の 160 行で定義されています。
参照先 osl::search::SearchState2Core::stop_tree.
参照元 osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively().
| void osl::search::AlphaBeta2Tree< EvalT >::testStop | ( | ) | [inline] |
alphaBeta2.h の 164 行で定義されています。
参照先 osl::search::CountRecorder::allNodeCount(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchState2Core::stop_tree, と osl::search::SearchTimer::throwIfNoMoreTime().
参照元 osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearch(), osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively(), osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot(), osl::search::AlphaBeta2Tree< EvalT >::quiesceExp(), osl::search::AlphaBeta2Tree< EvalT >::quiesceStable(), osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves(), と osl::search::AlphaBeta2Tree< EvalT >::testThreatmate().
| void osl::search::AlphaBeta2Tree< EvalT >::testThreatmate | ( | SimpleHashRecord * | record, | |
| bool | in_pv | |||
| ) | [inline, protected] |
詰めろの有無を確認
alphaBeta2.cc の 287 行で定義されています。
参照先 osl::search::CountRecorder::backFromCheckmateSearch(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::CountRecorder::gotoCheckmateSearch(), osl::search::SimpleHashRecord::inCheck(), osl::search::DualThreatmateState::isThreatmate(), osl::eval::max(), osl::search::SimpleHashTable::minimumRecordLimit(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchState2::root_limit, osl::search::DualThreatmateState::setThreatmate(), osl::search::SearchState2Core::state(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, osl::search::AlphaBeta2Tree< EvalT >::testStop(), osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmateNodesLeft(), osl::search::SearchState2Core::tryThreatmate(), と osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount().
| void osl::search::AlphaBeta2Tree< EvalT >::throwStop | ( | ) | [private] |
osl::search::SearchTimerを再定義しています。
| bool osl::search::AlphaBeta2Tree< EvalT >::tryCheckmate | ( | SimpleHashRecord * | record, | |
| bool | in_pv, | |||
| Move & | checkmate_move | |||
| ) | [inline, protected] |
初めの方で詰みを読む
alphaBeta2.cc の 348 行で定義されています。
参照先 osl::alt(), osl::search::CountRecorder::backFromCheckmateSearch(), checkmate_limit, osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), depth, osl::search::CountRecorder::gotoCheckmateSearch(), osl::search::SearchState2Core::lastRecord(), osl::checkmate::limitToCheckCount(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::search::SimpleHashTable::minimumRecordLimit(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchState2::root_limit, osl::search::AlphaBeta2Common< EvalT >::rootLimitBias(), osl::search::SearchState2Core::state(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, osl::search::SimpleHashRecord::threatmate(), と osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount().
| bool osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain | ( | SimpleHashRecord * | record, | |
| Move & | checkmate_move, | |||
| int | node_count, | |||
| int | best_value | |||
| ) | [inline, protected] |
負けそうな時にさらに詰みを読む
alphaBeta2.cc の 411 行で定義されています。
参照先 osl::alt(), osl::search::CountRecorder::backFromCheckmateSearch(), osl::eval::betterThan(), checkmate_limit, osl::search::SimpleHashRecord::checkmateNodes(), osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::countCheckAfterThreatmate(), osl::search::SearchState2Core::curDepth(), osl::search::AlphaBeta2Common< EvalT >::eval, osl::search::CountRecorder::gotoCheckmateSearch(), osl::search::SearchState2Core::hasLastRecord(), osl::search::SimpleHashRecord::inCheck(), osl::isMajorNonPieceOK(), osl::KING, osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::newPtypeO(), osl::search::SearchTimer::nodeAffordable(), osl::search::SimpleHashRecord::nodeCount(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::AlphaBeta2Tree< EvalT >::shared, osl::search::SearchState2Core::state(), osl::search::SimpleHashRecord::threatmate(), osl::search::SearchTimer::timeAssigned(), と osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount().
| bool osl::search::AlphaBeta2Tree< EvalT >::tryPass | ( | SimpleHashRecord * | record, | |
| Player | P | |||
| ) | const [inline, protected] |
| void osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount | ( | ) | [inline, protected] |
alphaBeta2.cc の 1192 行で定義されています。
参照先 osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::CountRecorder::setCheckmateCount(), と osl::search::AlphaBeta2Tree< EvalT >::shared.
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively(), osl::search::AlphaBeta2< EvalT >::findCheckmateInPV(), osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves(), osl::search::AlphaBeta2Tree< EvalT >::testThreatmate(), osl::search::AlphaBeta2Tree< EvalT >::tryCheckmate(), と osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain().
| void osl::search::AlphaBeta2Tree< EvalT >::updateRootPV | ( | Player | P, | |
| std::ostream & | os, | |||
| int | result, | |||
| Move | m | |||
| ) | [inline, protected] |
alphaBeta2.cc の 1255 行で定義されています。
参照先 osl::search::CountRecorder::allNodeCount(), osl::alt(), osl::eval::betterThan(), osl::search::SearchTimer::elapsed(), osl::search::SearchTimer::hasMonitor(), osl::search::SimpleHashTable::isVerbose(), osl::KING, osl::KNIGHT, osl::OslConfig::lock_io, osl::search::SearchState2Core::makePV(), osl::search::SearchTimer::monitors(), osl::newPtypeO(), osl::PAWN, osl::search::AlphaBeta2Common< EvalT >::prediction_for_speculative_search, osl::eval::Ptype_Eval_Table, osl::search::SearchState2Core::pv, osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recorder, osl::search::SearchState2::root_limit, osl::search::SearchTimer::setStable(), osl::search::AlphaBeta2Tree< EvalT >::shared, osl::search::AlphaBeta2Tree< EvalT >::shared_root, osl::search::AlphaBeta2Tree< EvalT >::showPV(), osl::search::AlphaBeta2Tree< EvalT >::stableThreshold(), osl::search::SearchState2Core::state(), osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::table, threshold, と osl::OslConfig::usiOutputPawnValue().
参照元 osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), と osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot().
friend class NextMove< BLACK > [friend] |
alphaBeta2.h の 185 行で定義されています。
friend class NextMove< WHITE > [friend] |
alphaBeta2.h の 187 行で定義されています。
friend class NextQMove< BLACK > [friend] |
alphaBeta2.h の 188 行で定義されています。
friend class NextQMove< WHITE > [friend] |
alphaBeta2.h の 190 行で定義されています。
stat::Average osl::search::AlphaBeta2Tree< EvalT >::alpha_update [protected] |
osl::CArray< int, osl::search::SearchState2Core::MaxDepth > osl::search::AlphaBeta2Tree< EvalT >::depth_node_count [inline, static, protected] |
stat::Average osl::search::AlphaBeta2Tree< EvalT >::ext [protected] |
stat::Average osl::search::AlphaBeta2Tree< EvalT >::ext_limit [protected] |
FixedCapacityVector<MoveGenerator*, MaxDepth> osl::search::AlphaBeta2Tree< EvalT >::generators [protected] |
stat::Average osl::search::AlphaBeta2Tree< EvalT >::last_alpha_update [protected] |
stat::Average osl::search::AlphaBeta2Tree< EvalT >::mpn [protected] |
stat::Average osl::search::AlphaBeta2Tree< EvalT >::mpn_cut [protected] |
size_t osl::search::AlphaBeta2Tree< EvalT >::node_count [protected] |
boost::shared_ptr<AlphaBeta2Parallel<EvalT> > osl::search::AlphaBeta2Tree< EvalT >::shared [protected] |
osl::search::SearchState2Coreを再定義しています。
alphaBeta2.h の 147 行で定義されています。
参照元 osl::search::AlphaBeta2Tree< EvalT >::addMultiPV(), osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree(), osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively(), osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot(), osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves(), osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain(), osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount(), osl::search::AlphaBeta2Tree< EvalT >::updateRootPV(), と osl::search::AlphaBeta2Tree< EvalT >::~AlphaBeta2Tree().
boost::shared_ptr<AlphaBeta2SharedRoot> osl::search::AlphaBeta2Tree< EvalT >::shared_root [protected] |
alphaBeta2.h の 148 行で定義されています。
参照元 osl::search::AlphaBeta2Tree< EvalT >::addMultiPV(), osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::search::AlphaBeta2< EvalT >::computeBestMoveIteratively(), osl::search::AlphaBeta2< EvalT >::findCheckmateInPV(), osl::search::AlphaBeta2< EvalT >::sharedRootInfo(), と osl::search::AlphaBeta2Tree< EvalT >::updateRootPV().
1.6.3