クラス osl::search::AlphaBeta2

AlphaBeta νľ [詳細]

#include <alphaBeta2.h>

osl::search::AlphaBeta2に対する継承グラフ

Inheritance graph
[凡例]
osl::search::AlphaBeta2のコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

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


説明

AlphaBeta νľ

alphaBeta2.h241 行で定義されています。


コンストラクタとデストラクタ

osl::search::AlphaBeta2::AlphaBeta2 ( const HashEffectState &  s,
checkmate_t checker,
SimpleHashTable t,
CountRecorder r 
)

alphaBeta2.cc1316 行で定義されています。

osl::search::AlphaBeta2::~AlphaBeta2 (  ) 

alphaBeta2.cc1323 行で定義されています。


関数

template<osl::Player P>
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.cc1527 行で定義されています。

参照先 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().

参照元 alphaBetaSearchRoot(), と computeBestMoveIteratively().

static const Window osl::search::AlphaBeta2::fullWindow ( Player  P  )  [inline, static]

alphaBeta2.h258 行で定義されています。

参照先 osl::alt(), と osl::search::FixedEval::winThreshold().

参照元 alphaBetaSearchRoot().

int osl::search::AlphaBeta2::alphaBetaSearchRoot ( Window  window,
MoveLogProb best_move,
int  limit 
) [inline]

alphaBeta2.h262 行で定義されています。

参照先 osl::BLACK, と osl::search::SearchState2Core::state().

int osl::search::AlphaBeta2::alphaBetaSearchRoot ( MoveLogProb best_move,
int  limit 
) [inline]

alphaBeta2.h270 行で定義されています。

参照先 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.cc1328 行で定義されています。

参照先 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.cc1763 行で定義されています。

void osl::search::AlphaBeta2::setRootIgnoreMoves ( const MoveVector rim  )  [inline]

alphaBeta2.h286 行で定義されています。

参照先 osl::search::AlphaBeta2Common::root_ignore_moves.

void osl::search::AlphaBeta2::showNodeDepth ( std::ostream &  os  )  [static]

void osl::search::AlphaBeta2::clearNodeDepth (  )  [static]

void osl::search::AlphaBeta2::setRoot ( int  limit  ) 

void osl::search::AlphaBeta2::makeMove ( Move  move  ) 


このクラスの説明は次のファイルから生成されました:

Thu Oct 8 05:01:18 2009に生成されました。  doxygen 1.5.6