"tree" of AlphaBeta2, copied by split More...
#include <alphaBeta2.h>


Classes | |
| struct | BetaCut |
| struct | NextMove |
| struct | NextQMove |
Public Types | |
| enum | { MaxDepth = SearchState2Core::MaxDepth } |
| typedef EvalT | eval_t |
| typedef AlphaBeta2Common< EvalT > | common_t |
| typedef AlphaBeta2Window | Window |
Public Member Functions | |
| bool | stopping () const |
| void | testStop () |
| size_t | nodeCount () const |
| template<Player P> | |
| const MoveLogProb | nextMove () |
Static Public Member Functions | |
| static int | rootAlpha (Player P, int last_value, Progress16 progress) |
| static int | stableThreshold (Player P, int last_value) |
Protected Member Functions | |
| 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 Member Functions | |
| static MoveGenerator * | alloc () |
| static void | dealloc (MoveGenerator *) |
Protected Attributes | |
| 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 Attributes | |
| static CArray< int, SearchState2Core::MaxDepth > | depth_node_count |
Private Member Functions | |
| void | throwStop () |
| void | showPV (std::ostream &, int, Move, char stable) const |
Friends | |
| struct | NextMove< BLACK > |
| struct | NextMove< WHITE > |
| struct | NextQMove< BLACK > |
| struct | NextQMove< WHITE > |
"tree" of AlphaBeta2, copied by split
Definition at line 142 of file alphaBeta2.h.
| typedef AlphaBeta2Common<EvalT> osl::search::AlphaBeta2Tree< EvalT >::common_t |
Definition at line 148 of file alphaBeta2.h.
| typedef EvalT osl::search::AlphaBeta2Tree< EvalT >::eval_t |
Reimplemented from osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >.
Definition at line 147 of file alphaBeta2.h.
| typedef AlphaBeta2Window osl::search::AlphaBeta2Tree< EvalT >::Window |
Reimplemented in osl::search::AlphaBeta2< EvalT >.
Definition at line 179 of file alphaBeta2.h.
| anonymous enum |
Definition at line 149 of file alphaBeta2.h.
| osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree | ( | const NumEffectState & | s, |
| checkmate_t & | checker, | ||
| SimpleHashTable * | t, | ||
| CountRecorder & | r | ||
| ) | [protected] |
Definition at line 75 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Tree< EvalT >::shared.
| osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree | ( | const AlphaBeta2Tree< EvalT > & | src, |
| AlphaBeta2Parallel< EvalT > * | |||
| ) | [protected] |
Definition at line 103 of file alphaBeta2.cc.
References osl::search::SearchState2Core::pv.
| osl::search::AlphaBeta2Tree< EvalT >::~AlphaBeta2Tree | ( | ) | [protected] |
Definition at line 114 of file alphaBeta2.cc.
| void osl::search::AlphaBeta2Tree< EvalT >::addMultiPV | ( | Player | P, |
| int | result, | ||
| Move | m | ||
| ) | [protected] |
Definition at line 1385 of file alphaBeta2.cc.
References osl::alt(), osl::search::SimpleHashTable::isVerbose(), osl::OslConfig::lock_io, osl::newPtypeO(), osl::PAWN, and osl::OslConfig::usiOutputPawnValue().
| osl::search::MoveGenerator * osl::search::AlphaBeta2Tree< EvalT >::alloc | ( | ) | [static, protected] |
Definition at line 126 of file alphaBeta2.cc.
| int osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearch | ( | const MoveLogProb & | move, |
| Window | window, | ||
| bool | in_pv | ||
| ) | [protected] |
alphaBetaSearch (move)
Definition at line 1501 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), osl::search::DominanceCheck::detect(), osl::Sennichite::hasWinner(), osl::Sennichite::isDraw(), osl::Sennichite::isNormal(), osl::search::DominanceCheck::LOSE, osl::MoveLogProb::move(), osl::eval::notLessThan(), result, osl::search::DominanceCheck::WIN, and osl::Sennichite::winner().
| int osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearchAfterMove | ( | const MoveLogProb & | move, |
| Window | window, | ||
| bool | in_pv | ||
| ) | [protected] |
Definition at line 164 of file alphaBeta2.cc.
References osl::search::SimpleHashRecord::addNodeCount(), 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::SimpleHashRecord::inCheck(), osl::Move::isNormal(), limit, osl::MoveLogProb::logProb(), osl::eval::max(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::OslConfig::memoryUseLimit(), osl::eval::min(), osl::MoveLogProb::move(), osl::eval::notLessThan(), osl::search::AlphaBeta2Window::null(), osl::Move::player(), result, osl::search::SimpleHashRecord::setInCheck(), osl::search::DualThreatmateState::status(), osl::search::ThreatmateState::status(), and osl::search::SimpleHashRecord::threatmate().
| void osl::search::AlphaBeta2Tree< EvalT >::dealloc | ( | MoveGenerator * | p | ) | [static, protected] |
Definition at line 141 of file alphaBeta2.cc.
| template void osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot< WHITE > | ( | const MoveLogProbVector & | , |
| size_t | , | ||
| Window | , | ||
| MoveLogProb & | , | ||
| int & | |||
| ) | [protected] |
alpha値が求まった後で他の手を調べる
Definition at line 1580 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::search::SimpleHashTable::isVerbose(), osl::OslConfig::lock_io, osl::MoveLogProb::move(), moves, osl::newPtypeO(), osl::PAWN, result, and width.
| bool osl::search::AlphaBeta2Tree< EvalT >::isStable | ( | Player | P, |
| int | new_value | ||
| ) | const [protected] |
| osl::search::MoveGenerator & osl::search::AlphaBeta2Tree< EvalT >::makeGenerator | ( | ) | [protected] |
Definition at line 147 of file alphaBeta2.cc.
| const osl::MoveLogProb osl::search::AlphaBeta2Tree< EvalT >::nextMove | ( | ) |
Definition at line 528 of file alphaBeta2.cc.
References osl::search::SimpleHashRecord::bestMove(), osl::Move::capturePtype(), osl::search::SimpleHashRecord::inCheck(), osl::search::MoveGenerator::init(), osl::search::DualThreatmateState::maybeThreatmate(), osl::MoveLogProb::move(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::Move::PASS(), osl::MoveLogProb::setLogProbAtMost(), osl::search::RealizationProbability::TableMove, osl::search::SimpleHashRecord::threatmate(), and osl::MoveLogProb::validMove().
| size_t osl::search::AlphaBeta2Tree< EvalT >::nodeCount | ( | ) | const [inline] |
Definition at line 180 of file alphaBeta2.h.
References osl::search::AlphaBeta2Tree< EvalT >::node_count.
| int osl::search::AlphaBeta2Tree< EvalT >::quiesce | ( | Window | w | ) | [protected] |
Definition at line 958 of file alphaBeta2.cc.
| int osl::search::AlphaBeta2Tree< EvalT >::quiesce | ( | Window | w, |
| int | depth_left, | ||
| DualThreatmateState | parent_threatmate | ||
| ) | [protected] |
Definition at line 1149 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::eval::delta(), finish, osl::search::SimpleHashRecord::inCheck(), osl::search::MoveGenerator::init(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::Move::PASS(), osl::PAWN, osl::search::SimpleHashRecord::setInCheck(), osl::search::DualThreatmateState::updateInLock(), and osl::MoveLogProb::validMove().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesceExp | ( | Window | w | ) | [protected] |
Definition at line 999 of file alphaBeta2.cc.
References osl::search::SimpleHashRecord::qrecord, result, osl::search::QuiescenceRecord::setLowerBound(), and osl::search::SimpleHashRecord::threatmate().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesceRoot | ( | Window | w, |
| int | depth_left, | ||
| Move & | best_move, | ||
| DualThreatmateState | threatmate | ||
| ) | [protected] |
Definition at line 1073 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::QuiescenceRecord::bestMove(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::eval::delta(), finish, osl::search::SimpleHashRecord::inCheck(), osl::search::MoveGenerator::init(), osl::Move::isNormal(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::Move::PASS(), osl::PAWN, osl::search::SimpleHashRecord::qrecord, and osl::MoveLogProb::validMove().
| int osl::search::AlphaBeta2Tree< EvalT >::quiesceStable | ( | Window | w | ) | [protected] |
Definition at line 970 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), count, osl::Move::isInvalid(), osl::Move::PASS(), and result.
| bool osl::search::AlphaBeta2Tree< EvalT >::quiesceWithMove | ( | Move | move, |
| Window & | w, | ||
| int | depth_left, | ||
| Move & | best_move, | ||
| int & | best_value, | ||
| const DualThreatmateState & | threatmate | ||
| ) | [protected] |
Definition at line 1041 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::eval::delta(), osl::search::AlphaBeta2Window::null(), and result.
| int osl::search::AlphaBeta2Tree< EvalT >::rootAlpha | ( | Player | P, |
| int | last_value, | ||
| Progress16 | progress | ||
| ) | [static] |
Definition at line 1275 of file alphaBeta2.cc.
References osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::KING, osl::newPtypeO(), osl::PAWN, and width.
| int osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves | ( | SimpleHashRecord * | record, |
| Window | w | ||
| ) | [protected] |
Definition at line 613 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::alt(), osl::search::AlphaBeta2Window::beta(), osl::eval::betterThan(), osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchTable::CheckmateSpecialDepth, osl::Move::DeclareWin(), osl::eval::delta(), osl::search::SimpleHashRecord::hasGreaterLowerBound(), osl::search::SimpleHashRecord::hasLesserUpperBound(), osl::search::SimpleHashRecord::hasLowerBound(), osl::search::SimpleHashRecord::hasUpperBound(), osl::search::SearchTable::HistorySpecialDepth, osl::search::SimpleHashRecord::inCheck(), osl::Move::INVALID(), osl::Move::isCapture(), osl::search::AlphaBeta2Window::isConsistent(), osl::eval::isConsistentValue(), osl::Move::isNormal(), osl::Move::isValid(), osl::MoveLogProb::logProb(), osl::search::SimpleHashRecord::lowerBound(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::MoveLogProb::move(), osl::search::AlphaBeta2Window::null(), osl::Move::player(), osl::search::SimpleHashRecord::qrecord, result, search_assert, osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmateNodes(), osl::search::SimpleHashRecord::upperBound(), osl::OslConfig::usiMode(), and osl::MoveLogProb::validMove().
| int osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves | ( | Move | m, |
| int | limit_consumption, | ||
| SimpleHashRecord * | record, | ||
| Window | w | ||
| ) | [protected] |
Definition at line 285 of file alphaBeta2.cc.
References osl::search::AlphaBeta2Window::alpha(), osl::eval::betterThan(), osl::search::AlphaBeta2Window::null(), and result.
| void osl::search::AlphaBeta2Tree< EvalT >::showFailLow | ( | int | result, |
| Move | m | ||
| ) | const [protected] |
Definition at line 1412 of file alphaBeta2.cc.
References osl::newPtypeO(), osl::PAWN, osl::record::csa::show(), and osl::WHITE.
| void osl::search::AlphaBeta2Tree< EvalT >::showPV | ( | std::ostream & | os, |
| int | result, | ||
| Move | m, | ||
| char | stable | ||
| ) | const [private] |
Definition at line 1423 of file alphaBeta2.cc.
References osl::container::GeneralSimpleHashTable< Record >::find(), osl::Move::isNormal(), osl::search::DualThreatmateState::isThreatmate(), K_TSUMERO, osl::OslConfig::memoryUseRatio(), osl::newPtypeO(), osl::PAWN, osl::record::csa::show(), osl::search::SimpleHashRecord::threatmate(), osl::OslConfig::usiMode(), and osl::WHITE.
| int osl::search::AlphaBeta2Tree< EvalT >::stableThreshold | ( | Player | P, |
| int | last_value | ||
| ) | [static] |
Definition at line 1309 of file alphaBeta2.cc.
References osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::KING, osl::newPtypeO(), osl::PAWN, and width.
| bool osl::search::AlphaBeta2Tree< EvalT >::stopping | ( | ) | const [inline] |
Reimplemented from osl::search::SearchTimer.
Definition at line 169 of file alphaBeta2.h.
References osl::search::SearchState2Core::stop_tree.
| void osl::search::AlphaBeta2Tree< EvalT >::testStop | ( | ) | [inline] |
| void osl::search::AlphaBeta2Tree< EvalT >::testThreatmate | ( | SimpleHashRecord * | record, |
| bool | in_pv | ||
| ) | [protected] |
詰めろの有無を確認
Definition at line 307 of file alphaBeta2.cc.
References count, osl::search::SimpleHashRecord::inCheck(), osl::search::DualThreatmateState::isThreatmate(), osl::eval::max(), osl::search::SimpleHashRecord::nodeCount(), osl::search::SimpleHashRecord::qrecord, osl::search::DualThreatmateState::setThreatmate(), osl::search::SimpleHashRecord::threatmate(), and osl::search::QuiescenceRecord::threatmateNodesLeft().
| void osl::search::AlphaBeta2Tree< EvalT >::throwStop | ( | ) | [private] |
Reimplemented from osl::search::SearchTimer.
| bool osl::search::AlphaBeta2Tree< EvalT >::tryCheckmate | ( | SimpleHashRecord * | record, |
| bool | in_pv, | ||
| Move & | checkmate_move | ||
| ) | [protected] |
初めの方で詰みを読む
Definition at line 380 of file alphaBeta2.cc.
References osl::alt(), checkmate_limit, osl::search::QuiescenceRecord::checkmateNodesLeft(), count, depth, osl::checkmate::limitToCheckCount(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::eval::min(), osl::search::SimpleHashRecord::nodeCount(), osl::search::SimpleHashRecord::qrecord, and osl::search::SimpleHashRecord::threatmate().
| bool osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain | ( | SimpleHashRecord * | record, |
| Move & | checkmate_move, | ||
| int | node_count, | ||
| int | best_value | ||
| ) | [protected] |
負けそうな時にさらに詰みを読む
Definition at line 448 of file alphaBeta2.cc.
References osl::alt(), osl::eval::betterThan(), checkmate_limit, osl::search::SimpleHashRecord::checkmateNodes(), osl::search::QuiescenceRecord::checkmateNodesLeft(), count, osl::search::SimpleHashRecord::inCheck(), osl::isMajorNonPieceOK(), osl::KING, osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::newPtypeO(), osl::search::SimpleHashRecord::nodeCount(), osl::search::SimpleHashRecord::qrecord, and osl::search::SimpleHashRecord::threatmate().
| bool osl::search::AlphaBeta2Tree< EvalT >::tryPass | ( | SimpleHashRecord * | record, |
| Player | P | ||
| ) | const [protected] |
Definition at line 519 of file alphaBeta2.cc.
References osl::search::SimpleHashRecord::inCheck(), osl::search::DualThreatmateState::maybeThreatmate(), and osl::search::SimpleHashRecord::threatmate().
| void osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount | ( | ) | [protected] |
Definition at line 1259 of file alphaBeta2.cc.
| void osl::search::AlphaBeta2Tree< EvalT >::updateRootPV | ( | Player | P, |
| std::ostream & | os, | ||
| int | result, | ||
| Move | m | ||
| ) | [protected] |
Definition at line 1341 of file alphaBeta2.cc.
References osl::alt(), osl::eval::betterThan(), osl::search::SimpleHashTable::isVerbose(), osl::KING, osl::KNIGHT, osl::OslConfig::lock_io, osl::newPtypeO(), osl::PAWN, osl::eval::Ptype_Eval_Table, result, threshold, and osl::OslConfig::usiOutputPawnValue().
Definition at line 194 of file alphaBeta2.h.
Definition at line 196 of file alphaBeta2.h.
Definition at line 197 of file alphaBeta2.h.
Definition at line 199 of file alphaBeta2.h.
stat::Average osl::search::AlphaBeta2Tree< EvalT >::alpha_update [protected] |
Definition at line 154 of file alphaBeta2.h.
osl::CArray< int, osl::search::SearchState2Core::MaxDepth > osl::search::AlphaBeta2Tree< EvalT >::depth_node_count [static, protected] |
Definition at line 159 of file alphaBeta2.h.
stat::Average osl::search::AlphaBeta2Tree< EvalT >::ext [protected] |
Definition at line 155 of file alphaBeta2.h.
stat::Average osl::search::AlphaBeta2Tree< EvalT >::ext_limit [protected] |
Definition at line 155 of file alphaBeta2.h.
FixedCapacityVector<MoveGenerator*, MaxDepth> osl::search::AlphaBeta2Tree< EvalT >::generators [protected] |
Definition at line 153 of file alphaBeta2.h.
stat::Average osl::search::AlphaBeta2Tree< EvalT >::last_alpha_update [protected] |
Definition at line 154 of file alphaBeta2.h.
stat::Average osl::search::AlphaBeta2Tree< EvalT >::mpn [protected] |
Definition at line 154 of file alphaBeta2.h.
stat::Average osl::search::AlphaBeta2Tree< EvalT >::mpn_cut [protected] |
Definition at line 154 of file alphaBeta2.h.
size_t osl::search::AlphaBeta2Tree< EvalT >::node_count [protected] |
静止探索も含めたノード数
Definition at line 152 of file alphaBeta2.h.
Referenced by osl::search::AlphaBeta2Tree< EvalT >::nodeCount().
boost::shared_ptr<AlphaBeta2Parallel<EvalT> > osl::search::AlphaBeta2Tree< EvalT >::shared [protected] |
Reimplemented from osl::search::SearchState2Core.
Definition at line 156 of file alphaBeta2.h.
Referenced by osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree().
boost::shared_ptr<AlphaBeta2SharedRoot> osl::search::AlphaBeta2Tree< EvalT >::shared_root [protected] |
Definition at line 157 of file alphaBeta2.h.
Referenced by osl::search::AlphaBeta2< EvalT >::sharedRootInfo().
1.7.6.1