#include <alphaBeta2.h>
Public メソッド | |
AlphaBeta2 (const HashEffectState &s, checkmate_t &checker, SimpleHashTable *t, CountRecorder &) | |
~AlphaBeta2 () | |
template<Player P> | |
int | alphaBetaSearchRoot (Window window, MoveLogProb &best_move, int limit) |
entrance of alpha beta window search. | |
int | alphaBetaSearchRoot (Window window, MoveLogProb &best_move, int limit) |
int | alphaBetaSearchRoot (MoveLogProb &best_move, int limit) |
Move | computeBestMoveIteratively (int limit, const int step=100, const int initialLimit=600, int nodeLimit=1600000, const misc::RealTime &timer=misc::RealTime(60)) |
entrance of alpha beta iterative search. | |
bool | isReasonableMove (Move move, int pawn_sacrifice=1) |
void | setRootIgnoreMoves (const MoveVector *rim) |
void | setRoot (int limit) |
root limitͤõϤ뤳Ȥ | |
void | makeMove (Move) |
Static Public メソッド | |
static const Window | fullWindow (Player P) |
static void | showNodeDepth (std::ostream &) |
static void | clearNodeDepth () |
alphaBeta2.h の 241 行で定義されています。
osl::search::AlphaBeta2::AlphaBeta2 | ( | const HashEffectState & | s, | |
checkmate_t & | checker, | |||
SimpleHashTable * | t, | |||
CountRecorder & | r | |||
) |
alphaBeta2.cc の 1316 行で定義されています。
osl::search::AlphaBeta2::~AlphaBeta2 | ( | ) |
alphaBeta2.cc の 1323 行で定義されています。
int osl::search::AlphaBeta2::alphaBetaSearchRoot | ( | Window | window, | |
MoveLogProb & | best_move, | |||
int | limit | |||
) | [inline] |
entrance of alpha beta window search.
see http://www.logos.t.u-tokyo.ac.jp/~gekisashi/algorithm/re_search.html. rootDepth, curLimit are initialized here.
alphaBeta2.cc の 1527 行で定義されています。
参照先 osl::search::AlphaBeta2Tree::Window::alpha(), osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::search::SimpleHashRecord::bestMove(), osl::search::QuiescenceRecord::bestMove(), osl::search::AlphaBeta2Tree::Window::beta(), osl::eval::betterThan(), osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchTable::CheckmateSpecialDepth, osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::currentHash(), osl::eval::delta(), osl::search::AlphaBeta2Common::eval, fullWindow(), osl::search::MoveGenerator::generateAll(), osl::MoveLogProb::getMove(), osl::search::SimpleHashRecord::hasGreaterLowerBound(), osl::search::SearchState2Core::hasLastRecord(), osl::search::SimpleHashRecord::hasLowerBound(), osl::search::MoveGenerator::init(), osl::Move::INVALID(), osl::search::SimpleHashRecord::is_king_in_check, osl::Move::isNormal(), osl::search::DualThreatmateState::isThreatmate(), osl::search::FixedEval::isWinValue(), osl::search::SearchState2Core::lastRecord(), osl::search::SimpleHashRecord::lowerBound(), osl::search::AlphaBeta2Tree::makeGenerator(), osl::search::SearchState2Core::makePV(), osl::eval::max(), osl::eval::min(), osl::search::SearchMove::moveLogProb(), moves, osl::search::SearchState2Core::node_type, osl::container::MoveLogProbVector::push_back(), osl::search::SearchState2Core::PvNode, osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recordLoseByCheckmate(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recordWinByCheckmate(), osl::search::SimpleHashRecord::resetValue(), osl::search::AlphaBeta2Common::root_ignore_moves, osl::search::SearchState2Core::rootRecord(), osl::search::SimpleHashRecord::setLowerBound(), setRoot(), osl::search::SearchState2Core::setRootRecord(), osl::search::DualThreatmateState::setThreatmate(), osl::search::AlphaBeta2Tree::shared, osl::search::AlphaBeta2Tree::showPV(), osl::search::SearchState2Core::state(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmate_oracle, osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount(), osl::MoveLogProb::validMove(), と osl::search::FixedEval::winByCheckmate().
int osl::search::AlphaBeta2::alphaBetaSearchRoot | ( | Window | window, | |
MoveLogProb & | best_move, | |||
int | limit | |||
) | [inline] |
int osl::search::AlphaBeta2::alphaBetaSearchRoot | ( | MoveLogProb & | best_move, | |
int | limit | |||
) | [inline] |
alphaBeta2.h の 270 行で定義されています。
参照先 alphaBetaSearchRoot(), fullWindow(), と osl::search::SearchState2Core::state().
osl::Move osl::search::AlphaBeta2::computeBestMoveIteratively | ( | int | limit, | |
const int | step = 100 , |
|||
const int | initialLimit = 600 , |
|||
int | nodeLimit = 1600000 , |
|||
const misc::RealTime & | timer = misc::RealTime(60) | |||
) |
entrance of alpha beta iterative search.
alphaBeta2.cc の 1328 行で定義されています。
参照先 osl::search::SimpleHashRecord::addNodeCount(), osl::search::AlphaBeta2Tree::alpha_update, alphaBetaSearchRoot(), CHECKMATE_DEFAULT_TOTAL_NODE_LIMIT, osl::search::SearchState2Core::checkmateSearcher(), osl::search::SearchState2Core::currentHash(), osl::search::AlphaBeta2Tree::ext, osl::search::AlphaBeta2Tree::ext_limit, finish(), osl::move_generator::LegalMoves::generate(), osl::stat::Average::getAverage(), osl::misc::RealTime::getConsumedInDouble(), osl::MoveLogProb::getMove(), osl::misc::RealTime::getTimeLeftInDouble(), osl::misc::RealTime::getTimeLeftInSeconds(), osl::search::HasTimer::hasSchedule(), osl::search::SearchTable::HistorySpecialDepth, osl::Move::INVALID(), osl::Move::isNormal(), osl::search::AlphaBeta2Tree::last_alpha_update, osl::search::SimpleHashRecord::lowerBound(), osl::search::SimpleHashRecord::lowerLimit(), osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::mainNodeCount(), osl::eval::min(), moves, osl::search::AlphaBeta2Tree::mpn, osl::search::AlphaBeta2Tree::mpn_cut, osl::search::HasTimer::nextIterationCoefficient(), osl::search::AlphaBeta2Tree::nodeCount(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::AlphaBeta2Tree::resetTimeOut(), osl::search::HasTimer::setStopSchedule(), osl::search::AlphaBeta2Tree::setTimeOut(), osl::search::AlphaBeta2Tree::shared, osl::record::csa::show(), show(), osl::search::SearchState2Core::state(), osl::search::HasTimer::stopSchedule(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::AlphaBeta2Tree::testStop(), osl::search::AlphaBeta2Common::timer, osl::search::AlphaBeta2Tree::updateCheckmateCount(), と osl::search::SimpleHashRecord::upperBound().
bool osl::search::AlphaBeta2::isReasonableMove | ( | Move | move, | |
int | pawn_sacrifice = 1 | |||
) |
alphaBeta2.cc の 1763 行で定義されています。
void osl::search::AlphaBeta2::setRootIgnoreMoves | ( | const MoveVector * | rim | ) | [inline] |
void osl::search::AlphaBeta2::showNodeDepth | ( | std::ostream & | os | ) | [static] |
void osl::search::AlphaBeta2::clearNodeDepth | ( | ) | [static] |
void osl::search::AlphaBeta2::setRoot | ( | int | limit | ) |
root limitͤõϤ뤳Ȥ
osl::search::SearchState2を再定義しています。
alphaBeta2.cc の 1739 行で定義されています。
参照先 osl::search::SearchState2Core::curDepth(), osl::search::SearchState2Core::currentHash(), osl::search::AlphaBeta2Common::INITIAL, osl::eval::max(), osl::search::AlphaBeta2Common::move_type, osl::search::SearchState2::setRoot(), osl::search::SearchState2Core::setRootRecord(), と osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table.
void osl::search::AlphaBeta2::makeMove | ( | Move | move | ) |
osl::search::SearchState2Coreを再定義しています。
alphaBeta2.cc の 1748 行で定義されています。
参照先 osl::search::SearchState2Core::curDepth(), osl::search::SearchState2::curLimit(), osl::search::SearchState2Core::currentHash(), osl::search::AlphaBeta2Common::eval, osl::search::AlphaBeta2Common::INITIAL, osl::search::SimpleHashRecord::is_king_in_check, osl::search::SearchState2Core::makeMove(), osl::search::AlphaBeta2Common::move_type, osl::search::SearchState2Core::setCurrentRecord(), osl::search::SearchState2Core::state(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, と osl::eval::ProgressEvalGeneral< OpeningEval >::update().