#include <alphaBeta2.h>
Public 型 | |
enum | { MaxDepth = SearchState2Core::MaxDepth } |
typedef eval::ProgressEval | eval_t |
Public メソッド | |
const AlarmSwitch | alarmSwitch () |
void | setTimeOut (int seconds) |
void | resetTimeOut () |
bool | timerAvailable () const |
bool | stopping () const |
void | testStop () |
size_t | nodeCount () const |
void | showPV (std::ostream &, int, Move) const |
template<Player P> | |
const MoveLogProb | nextMove () |
Protected メソッド | |
AlphaBeta2Tree (const HashEffectState &s, checkmate_t &checker, SimpleHashTable *t, CountRecorder &) | |
AlphaBeta2Tree (const AlphaBeta2Tree &src, AlphaBeta2Parallel *) | |
~AlphaBeta2Tree () | |
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 > | shared |
Static Protected 変数 | |
static CArray< int, MaxDepth > | depth_node_count |
Private メソッド | |
volatile int & | stopByAlarm () |
const volatile int & | stopByAlarm () const |
void | throwStop () |
Private 変数 | |
volatile int | stop_by_alarm |
ͤˤäƤõ | |
bool | has_stop_alarm |
フレンド | |
class | NextMove< BLACK > |
class | NextMove< WHITE > |
class | NextQMove< BLACK > |
class | NextQMove< WHITE > |
構成 | |
struct | BetaCut |
struct | NextMove |
struct | NextQMove |
class | Window |
alphaBeta2.h の 63 行で定義されています。
osl::search::SearchBase< Eval, Table, Recorder, Probabilities >を再定義しています。
alphaBeta2.h の 68 行で定義されています。
anonymous enum |
osl::search::AlphaBeta2Tree::AlphaBeta2Tree | ( | const HashEffectState & | s, | |
checkmate_t & | checker, | |||
SimpleHashTable * | t, | |||
CountRecorder & | r | |||
) | [protected] |
osl::search::AlphaBeta2Tree::AlphaBeta2Tree | ( | const AlphaBeta2Tree & | src, | |
AlphaBeta2Parallel * | ||||
) | [protected] |
alphaBeta2.cc の 65 行で定義されています。
osl::search::AlphaBeta2Tree::~AlphaBeta2Tree | ( | ) | [protected] |
volatile int & osl::search::AlphaBeta2Tree::stopByAlarm | ( | ) | [private] |
alphaBeta2.cc の 114 行で定義されています。
参照先 shared, と stop_by_alarm.
参照元 alarmSwitch(), resetTimeOut(), setTimeOut(), stopping(), throwStop(), と timerAvailable().
const volatile int & osl::search::AlphaBeta2Tree::stopByAlarm | ( | ) | const [private] |
const AlarmSwitch osl::search::AlphaBeta2Tree::alarmSwitch | ( | ) | [inline] |
void osl::search::AlphaBeta2Tree::setTimeOut | ( | int | seconds | ) |
void osl::search::AlphaBeta2Tree::resetTimeOut | ( | ) |
alphaBeta2.cc の 149 行で定義されています。
参照先 has_stop_alarm, と stopByAlarm().
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と throwStop().
bool osl::search::AlphaBeta2Tree::timerAvailable | ( | ) | const [inline] |
void osl::search::AlphaBeta2Tree::throwStop | ( | ) | [private] |
alphaBeta2.cc の 156 行で定義されています。
参照先 resetTimeOut(), osl::search::SearchState2Core::stop, と stopByAlarm().
参照元 testStop().
bool osl::search::AlphaBeta2Tree::stopping | ( | ) | const [inline] |
alphaBeta2.h の 103 行で定義されています。
参照先 osl::search::SearchState2Core::stop, と stopByAlarm().
参照元 testStop().
void osl::search::AlphaBeta2Tree::testStop | ( | ) | [inline] |
alphaBeta2.h の 107 行で定義されています。
参照先 stopping(), と throwStop().
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), examineMovesRoot(), quiesceExp(), quiesceStable(), と searchAllMoves().
size_t osl::search::AlphaBeta2Tree::nodeCount | ( | ) | const [inline] |
alphaBeta2.h の 146 行で定義されています。
参照先 node_count.
参照元 alphaBetaSearchAfterMove(), osl::search::AlphaBeta2::computeBestMoveIteratively(), quiesceExp(), と searchAllMoves().
void osl::search::AlphaBeta2Tree::showPV | ( | std::ostream & | os, | |
int | result, | |||
Move | m | |||
) | const |
alphaBeta2.cc の 1142 行で定義されています。
参照先 osl::eval::ProgressEvalGeneral< OpeningEval >::captureValue(), osl::search::SearchState2Core::currentHash(), osl::search::AlphaBeta2Common::eval, osl::Move::isNormal(), moves, osl::newPtypeO(), osl::PAWN, osl::search::SearchState2Core::pv, osl::search::AlphaBeta2Common::root_ignore_moves, shared, show(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, と osl::WHITE.
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), と examineMovesRoot().
const osl::MoveLogProb osl::search::AlphaBeta2Tree::nextMove | ( | ) | [inline] |
alphaBeta2.cc の 454 行で定義されています。
参照先 osl::search::AlphaBeta2Common::ALL, osl::search::SimpleHashRecord::bestMove(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::CutNode, osl::search::AlphaBeta2Common::eval, osl::search::AlphaBeta2Common::FINISH, osl::search::SearchState2Core::getKillerMoves(), osl::MoveLogProb::getMove(), osl::search::AlphaBeta2Common::HASH, osl::search::MoveGenerator::init(), osl::search::SimpleHashRecord::is_king_in_check, osl::search::AlphaBeta2Common::KILLER, osl::search::AlphaBeta2Common::killers, osl::search::SearchState2Core::lastRecord(), osl::search::AlphaBeta2Common::leaf_limit, makeGenerator(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::AlphaBeta2Common::move_type, osl::search::SearchMove::moveLogProb(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::search::SearchState2Core::node_type, osl::Move::PASS(), osl::search::AlphaBeta2Common::PASS, osl::search::SearchState2Core::state(), osl::search::AlphaBeta2Common::TACTICAL, osl::search::SimpleHashRecord::threatmate(), tryPass(), osl::MoveLogProb::validMove(), と osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::validTableMove().
int osl::search::AlphaBeta2Tree::alphaBetaSearch | ( | const MoveLogProb & | move, | |
Window | window, | |||
bool | in_pv | |||
) | [inline, protected] |
alphaBetaSearch (move)
-- => searchAllMoves => alphaBetaSearch (child move)
alphaBeta2.cc の 1200 行で定義されています。
参照先 osl::search::AlphaBeta2Tree::Window::alpha(), osl::alt(), osl::search::AlphaBeta2Tree::Window::beta(), 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::eval, osl::MoveLogProb::getMove(), osl::Sennichite::hasWinner(), osl::RepetitionCounter::history(), osl::search::PassCounter::inc(), osl::RepetitionCounter::isAlmostSennichite(), osl::Sennichite::isDraw(), osl::misc::RealTime::isInvalid(), osl::Sennichite::isNormal(), osl::search::PassCounter::loopByBothPass(), osl::search::DominanceCheck::LOSE, osl::eval::notLessThan(), osl::search::AlphaBeta2Common::pass_count, osl::PTYPE_EMPTY, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchState2Core::repetition_counter, osl::search::SearchState2Core::state(), osl::misc::RealTime::timeLeft(), osl::search::AlphaBeta2Common::timer, timerAvailable(), osl::search::DominanceCheck::WIN, osl::search::FixedEval::winByFoul(), osl::search::FixedEval::winByLoop(), と osl::Sennichite::winner().
int osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove | ( | const MoveLogProb & | move, | |
Window | window, | |||
bool | in_pv | |||
) | [inline, protected] |
alphaBeta2.cc の 177 行で定義されています。
参照先 osl::stat::Average::add(), osl::search::SimpleHashRecord::addNodeCount(), osl::search::SearchState2Core::AllNode, osl::search::AlphaBeta2Tree::Window::alpha(), osl::alt(), osl::search::SimpleHashRecord::bestMove(), osl::search::AlphaBeta2Tree::Window::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::eval, ext, ext_limit, osl::MoveLogProb::getLogProb(), osl::MoveLogProb::getMove(), osl::search::SimpleHashRecord::is_king_in_check, osl::Move::isNormal(), osl::search::SearchState2Core::lastRecord(), limit, osl::search::PassCounter::loopByBothPass(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::eval::min(), osl::search::FixedEval::minusInfty(), node_count, osl::search::SearchState2Core::node_type, nodeCount(), osl::eval::notLessThan(), osl::search::AlphaBeta2Tree::Window::null(), osl::search::AlphaBeta2Common::pass_count, osl::Move::player(), osl::search::SearchState2Core::pv, osl::search::SearchState2Core::PvNode, osl::search::SearchState2Core::setCurrentRecord(), osl::search::SearchState2Core::state(), osl::search::ThreatmateState::status(), osl::search::DualThreatmateState::status(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::SimpleHashRecord::threatmate(), と osl::eval::ProgressEvalGeneral< OpeningEval >::update().
int osl::search::AlphaBeta2Tree::quiesce | ( | Window | w | ) | [inline, protected] |
alphaBeta2.cc の 837 行で定義されています。
int osl::search::AlphaBeta2Tree::quiesceStable | ( | Window | w | ) | [inline, protected] |
alphaBeta2.cc の 848 行で定義されています。
参照先 osl::search::AlphaBeta2Tree::Window::alpha(), osl::alt(), osl::search::AlphaBeta2Tree::Window::beta(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::AlphaBeta2Common::eval, osl::search::SearchState2Core::initPV(), osl::Move::isInvalid(), osl::search::SearchState2Core::lastMove(), node_count, osl::Move::PASS(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, testStop(), と osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount().
int osl::search::AlphaBeta2Tree::quiesceExp | ( | Window | w | ) | [inline, protected] |
alphaBeta2.cc の 876 行で定義されています。
参照先 osl::search::SearchState2Core::lastRecord(), nodeCount(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::QuiescenceRecord::setLowerBound(), testStop(), と osl::search::SimpleHashRecord::threatmate().
int osl::search::AlphaBeta2Tree::searchAllMoves | ( | SimpleHashRecord * | record, | |
Window | w | |||
) | [inline, protected] |
alphaBeta2.cc の 535 行で定義されています。
参照先 osl::stat::Average::add(), osl::search::AlphaBeta2Common::ALL, osl::search::AlphaBeta2Tree::Window::alpha(), alpha_update, osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::search::AlphaBeta2Tree::Window::beta(), osl::eval::betterThan(), osl::search::FixedEval::brinkmatePenalty(), 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(), depth_node_count, osl::search::AlphaBeta2Common::eval, osl::MoveLogProb::getLogProb(), osl::MoveLogProb::getMove(), osl::search::SimpleHashRecord::hasGreaterLowerBound(), osl::search::SearchState2Core::hasLastRecord(), osl::search::SimpleHashRecord::hasLesserUpperBound(), osl::search::SimpleHashRecord::hasLowerBound(), osl::search::SimpleHashRecord::hasUpperBound(), osl::search::AlphaBeta2Common::in_pv, osl::search::AlphaBeta2Common::INITIAL, osl::Move::INVALID(), osl::search::SimpleHashRecord::is_king_in_check, osl::search::AlphaBeta2Tree::Window::isConsistent(), osl::eval::isConsistentValue(), osl::Move::isValid(), osl::search::FixedEval::isWinValue(), last_alpha_update, osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), osl::search::AlphaBeta2Common::leaf_limit, osl::search::SimpleHashRecord::lowerBound(), osl::search::SearchState2Core::makePV(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::FixedEval::minusInfty(), osl::search::AlphaBeta2Common::move_type, mpn, mpn_cut, nodeCount(), osl::search::AlphaBeta2Tree::Window::null(), osl::Move::player(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recordLowerBound(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recordUpperBound(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recordWinByCheckmate(), search_assert, osl::search::SearchState2::setKillerMove(), osl::MoveLogProb::setLogProb(), shared, osl::search::SearchState2Core::state(), osl::search::RealizationProbability::TableMove, testStop(), osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmateNodes(), tryPass(), osl::search::SimpleHashRecord::upperBound(), osl::MoveLogProb::validMove(), osl::eval::ProgressEvalGeneral< OpeningEval >::value(), と osl::search::FixedEval::winByCheckmate().
int osl::search::AlphaBeta2Tree::searchAllMoves | ( | Move | m, | |
int | limit_consumption, | |||
SimpleHashRecord * | record, | |||
Window | w | |||
) | [inline, protected] |
alphaBeta2.cc の 277 行で定義されています。
参照先 osl::search::SearchState2::addLimit(), osl::search::AlphaBeta2Tree::Window::alpha(), osl::eval::betterThan(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::node_type, osl::search::AlphaBeta2Tree::Window::null(), osl::search::SearchState2Core::PvNode, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, と osl::search::SearchState2::subLimit().
bool osl::search::AlphaBeta2Tree::tryCheckmate | ( | SimpleHashRecord * | record, | |
bool | in_pv, | |||
Move & | checkmate_move | |||
) | [inline, protected] |
ǵͤߤɤ
alphaBeta2.cc の 355 行で定義されています。
参照先 osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), depth, osl::search::SearchState2Core::lastRecord(), osl::checkmate::limitToCheckCount(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchState2::root_limit, osl::search::SearchState2Core::state(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::SimpleHashRecord::threatmate(), と osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount().
bool osl::search::AlphaBeta2Tree::tryCheckmateAgain | ( | SimpleHashRecord * | record, | |
Move & | checkmate_move, | |||
int | node_count, | |||
int | best_value | |||
) | [inline, protected] |
餱ʻˤ˵ͤߤɤ
alphaBeta2.cc の 415 行で定義されています。
参照先 osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::eval::betterThan(), osl::eval::ProgressEvalGeneral< OpeningEval >::captureValue(), osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::countCheckAfterThreatmate(), osl::search::AlphaBeta2Common::eval, osl::KING, osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::newPtypeO(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchState2Core::state(), osl::search::SimpleHashRecord::threatmate(), と osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount().
void osl::search::AlphaBeta2Tree::testThreatmate | ( | SimpleHashRecord * | record, | |
bool | in_pv | |||
) | [inline, protected] |
̵ͤͭǧ
alphaBeta2.cc の 298 行で定義されています。
参照先 osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SimpleHashRecord::is_king_in_check, osl::search::DualThreatmateState::isThreatmate(), osl::eval::max(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchState2::root_limit, osl::search::DualThreatmateState::setThreatmate(), osl::search::SearchState2Core::state(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmate_oracle, osl::search::QuiescenceRecord::threatmateNodesLeft(), osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount(), と osl::search::SearchState2Core::tryThreatmate().
template void osl::search::AlphaBeta2Tree::examineMovesRoot< WHITE > | ( | const MoveLogProbVector & | , | |
size_t | , | |||
Window | , | |||
MoveLogProb & | , | |||
int & | ||||
) | [inline, protected] |
int osl::search::AlphaBeta2Tree::quiesceRoot | ( | Window | w, | |
int | depth_left, | |||
Move & | best_move, | |||
DualThreatmateState | threatmate | |||
) | [inline, protected] |
alphaBeta2.cc の 947 行で定義されています。
参照先 osl::search::AlphaBeta2Tree::Window::alpha(), osl::alt(), osl::search::QuiescenceRecord::bestMove(), osl::search::AlphaBeta2Tree::Window::beta(), osl::eval::betterThan(), osl::eval::delta(), osl::search::AlphaBeta2Common::eval, finish(), osl::search::MoveGenerator::init(), osl::search::SearchState2Core::initPV(), osl::search::SimpleHashRecord::is_king_in_check, osl::Move::isDrop(), osl::Move::isNormal(), osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), makeGenerator(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::FixedEval::minusInfty(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), osl::Move::PASS(), osl::PAWN, osl::Move::ptype(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchState2Core::state(), osl::search::FixedEval::threatmatePenalty(), osl::MoveLogProb::validMove(), osl::eval::ProgressEvalGeneral< OpeningEval >::value(), osl::search::FixedEval::winByCheckmate(), と osl::search::FixedEval::winByFoul().
int osl::search::AlphaBeta2Tree::quiesce | ( | Window | w, | |
int | depth_left, | |||
DualThreatmateState | parent_threatmate | |||
) | [inline, protected] |
alphaBeta2.cc の 1022 行で定義されています。
参照先 osl::search::AlphaBeta2Tree::Window::alpha(), osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::search::AlphaBeta2Tree::Window::beta(), osl::eval::betterThan(), osl::search::SearchState2Core::curDepth(), osl::eval::delta(), osl::search::SearchState2Core::depth_node_count_quiesce, osl::search::AlphaBeta2Common::eval, finish(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::search::MoveGenerator::init(), osl::search::SearchState2Core::initPV(), osl::search::SimpleHashRecord::is_king_in_check, osl::Move::isDrop(), osl::search::SearchState2Core::lastMove(), makeGenerator(), osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::search::FixedEval::minusInfty(), osl::search::MoveGenerator::nextMove(), osl::search::MoveGenerator::nextTacticalMove(), node_count, osl::Move::PASS(), osl::PAWN, osl::Move::ptype(), osl::PTYPE_EMPTY, osl::search::SimpleHashRecord::qrecord, osl::search::SearchState2Core::state(), osl::search::FixedEval::threatmatePenalty(), osl::search::DualThreatmateState::update(), osl::MoveLogProb::validMove(), osl::eval::ProgressEvalGeneral< OpeningEval >::value(), osl::search::FixedEval::winByCheckmate(), と osl::search::FixedEval::winByFoul().
bool osl::search::AlphaBeta2Tree::quiesceWithMove | ( | Move | move, | |
Window & | w, | |||
int | depth_left, | |||
Move & | best_move, | |||
int & | best_value, | |||
const DualThreatmateState & | threatmate | |||
) | [inline, protected] |
alphaBeta2.cc の 916 行で定義されています。
参照先 osl::search::AlphaBeta2Tree::Window::alpha(), osl::search::AlphaBeta2Tree::Window::beta(), osl::eval::betterThan(), osl::search::SearchState2Core::currentHash(), osl::eval::delta(), osl::search::AlphaBeta2Common::eval, osl::search::AlphaBeta2Common::in_pv, osl::search::SearchState2Core::makePV(), と osl::search::AlphaBeta2Tree::Window::null().
void osl::search::AlphaBeta2Tree::updateCheckmateCount | ( | ) | [protected] |
bool osl::search::AlphaBeta2Tree::tryPass | ( | SimpleHashRecord * | record, | |
Player | P | |||
) | const [protected] |
osl::search::MoveGenerator & osl::search::AlphaBeta2Tree::makeGenerator | ( | ) | [protected] |
alphaBeta2.cc の 103 行で定義されています。
参照先 alloc(), osl::search::SearchState2Core::curDepth(), と generators.
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), nextMove(), quiesce(), と quiesceRoot().
osl::search::MoveGenerator * osl::search::AlphaBeta2Tree::alloc | ( | ) | [static, protected] |
void osl::search::AlphaBeta2Tree::dealloc | ( | MoveGenerator * | p | ) | [static, protected] |
friend class NextMove< BLACK > [friend] |
alphaBeta2.h の 152 行で定義されています。
friend class NextMove< WHITE > [friend] |
alphaBeta2.h の 154 行で定義されています。
friend class NextQMove< BLACK > [friend] |
alphaBeta2.h の 155 行で定義されています。
friend class NextQMove< WHITE > [friend] |
alphaBeta2.h の 157 行で定義されています。
size_t osl::search::AlphaBeta2Tree::node_count [protected] |
ŻõޤΡɿ
alphaBeta2.h の 72 行で定義されています。
参照元 alphaBetaSearchAfterMove(), nodeCount(), quiesce(), と quiesceStable().
FixedCapacityVector<MoveGenerator*, MaxDepth> osl::search::AlphaBeta2Tree::generators [protected] |
stat::Average osl::search::AlphaBeta2Tree::mpn [protected] |
alphaBeta2.h の 74 行で定義されています。
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().
stat::Average osl::search::AlphaBeta2Tree::mpn_cut [protected] |
alphaBeta2.h の 74 行で定義されています。
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().
alphaBeta2.h の 74 行で定義されています。
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().
alphaBeta2.h の 74 行で定義されています。
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().
stat::Average osl::search::AlphaBeta2Tree::ext [protected] |
alphaBeta2.h の 75 行で定義されています。
参照元 alphaBetaSearchAfterMove(), と osl::search::AlphaBeta2::computeBestMoveIteratively().
stat::Average osl::search::AlphaBeta2Tree::ext_limit [protected] |
alphaBeta2.h の 75 行で定義されています。
参照元 alphaBetaSearchAfterMove(), と osl::search::AlphaBeta2::computeBestMoveIteratively().
boost::shared_ptr<AlphaBeta2Parallel> osl::search::AlphaBeta2Tree::shared [protected] |
osl::search::SearchState2Coreを再定義しています。
alphaBeta2.h の 76 行で定義されています。
参照元 AlphaBeta2Tree(), osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::AlphaBeta2::computeBestMoveIteratively(), examineMovesRoot(), searchAllMoves(), showPV(), stopByAlarm(), updateCheckmateCount(), と ~AlphaBeta2Tree().
osl::CArray< int, osl::search::AlphaBeta2Tree::MaxDepth > osl::search::AlphaBeta2Tree::depth_node_count [static, protected] |
volatile int osl::search::AlphaBeta2Tree::stop_by_alarm [private] |
bool osl::search::AlphaBeta2Tree::has_stop_alarm [private] |