クラス osl::search::AlphaBeta2Tree

"tree" of AlphaBeta2, copied by split [詳細]

#include <alphaBeta2.h>

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

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

Collaboration graph
[凡例]

すべてのメンバ一覧

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)
  • makeMove(move)
  • => alphaBetaSearchAfterMove -- search extension etc.

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

Static Protected メソッド

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


説明

"tree" of AlphaBeta2, copied by split

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


型定義

osl::search::SearchBase< Eval, Table, Recorder, Probabilities >を再定義しています。

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


列挙型

anonymous enum

列挙型の値:
MaxDepth 

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


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

osl::search::AlphaBeta2Tree::AlphaBeta2Tree ( const HashEffectState &  s,
checkmate_t checker,
SimpleHashTable t,
CountRecorder r 
) [protected]

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

参照先 osl::search::SearchState2Core::AlphaBeta2Parallel, と shared.

osl::search::AlphaBeta2Tree::AlphaBeta2Tree ( const AlphaBeta2Tree src,
AlphaBeta2Parallel *   
) [protected]

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

osl::search::AlphaBeta2Tree::~AlphaBeta2Tree (  )  [protected]

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

参照先 dealloc(), generators, と shared.


関数

volatile int & osl::search::AlphaBeta2Tree::stopByAlarm (  )  [private]

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

参照先 shared, と stop_by_alarm.

参照元 alarmSwitch(), resetTimeOut(), setTimeOut(), stopping(), throwStop(), と timerAvailable().

const volatile int & osl::search::AlphaBeta2Tree::stopByAlarm (  )  const [private]

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

参照先 shared, と stop_by_alarm.

const AlarmSwitch osl::search::AlphaBeta2Tree::alarmSwitch (  )  [inline]

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

参照先 stopByAlarm().

void osl::search::AlphaBeta2Tree::setTimeOut ( int  seconds  ) 

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

参照先 has_stop_alarm, と stopByAlarm().

参照元 osl::search::AlphaBeta2::computeBestMoveIteratively().

void osl::search::AlphaBeta2Tree::resetTimeOut (  ) 

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

参照先 has_stop_alarm, と stopByAlarm().

参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と throwStop().

bool osl::search::AlphaBeta2Tree::timerAvailable (  )  const [inline]

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

参照先 stopByAlarm().

参照元 alphaBetaSearch().

void osl::search::AlphaBeta2Tree::throwStop (  )  [private]

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

参照先 resetTimeOut(), osl::search::SearchState2Core::stop, と stopByAlarm().

参照元 testStop().

bool osl::search::AlphaBeta2Tree::stopping (  )  const [inline]

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

参照先 osl::search::SearchState2Core::stop, と stopByAlarm().

参照元 testStop().

void osl::search::AlphaBeta2Tree::testStop (  )  [inline]

size_t osl::search::AlphaBeta2Tree::nodeCount (  )  const [inline]

void osl::search::AlphaBeta2Tree::showPV ( std::ostream &  os,
int  result,
Move  m 
) const

template<osl::Player P>
const osl::MoveLogProb osl::search::AlphaBeta2Tree::nextMove (  )  [inline]

template<osl::Player P>
int osl::search::AlphaBeta2Tree::alphaBetaSearch ( const MoveLogProb move,
Window  window,
bool  in_pv 
) [inline, protected]

template<osl::Player P>
int osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove ( const MoveLogProb move,
Window  window,
bool  in_pv 
) [inline, protected]

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

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

template<osl::Player P>
int osl::search::AlphaBeta2Tree::quiesce ( Window  w  )  [inline, protected]

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

template<osl::Player P>
int osl::search::AlphaBeta2Tree::quiesceStable ( Window  w  )  [inline, protected]

template<osl::Player P>
int osl::search::AlphaBeta2Tree::quiesceExp ( Window  w  )  [inline, protected]

template<osl::Player P>
int osl::search::AlphaBeta2Tree::searchAllMoves ( SimpleHashRecord record,
Window  w 
) [inline, protected]

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

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

template<osl::Player Turn>
int osl::search::AlphaBeta2Tree::searchAllMoves ( Move  m,
int  limit_consumption,
SimpleHashRecord record,
Window  w 
) [inline, protected]

template<osl::Player P>
bool osl::search::AlphaBeta2Tree::tryCheckmate ( SimpleHashRecord record,
bool  in_pv,
Move checkmate_move 
) [inline, protected]

template<osl::Player P>
bool osl::search::AlphaBeta2Tree::tryCheckmateAgain ( SimpleHashRecord record,
Move checkmate_move,
int  node_count,
int  best_value 
) [inline, protected]

template<osl::Player P>
void osl::search::AlphaBeta2Tree::testThreatmate ( SimpleHashRecord record,
bool  in_pv 
) [inline, protected]

template<osl::Player P>
template void osl::search::AlphaBeta2Tree::examineMovesRoot< WHITE > ( const MoveLogProbVector ,
size_t  ,
Window  ,
MoveLogProb ,
int &   
) [inline, protected]

template<osl::Player P>
int osl::search::AlphaBeta2Tree::quiesceRoot ( Window  w,
int  depth_left,
Move best_move,
DualThreatmateState  threatmate 
) [inline, protected]

template<osl::Player P>
int osl::search::AlphaBeta2Tree::quiesce ( Window  w,
int  depth_left,
DualThreatmateState  parent_threatmate 
) [inline, protected]

template<osl::Player P>
bool osl::search::AlphaBeta2Tree::quiesceWithMove ( Move  move,
Window w,
int  depth_left,
Move best_move,
int &  best_value,
const DualThreatmateState threatmate 
) [inline, protected]

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]

osl::search::MoveGenerator * osl::search::AlphaBeta2Tree::alloc (  )  [static, protected]

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

参照元 makeGenerator().

void osl::search::AlphaBeta2Tree::dealloc ( MoveGenerator p  )  [static, protected]

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

参照元 ~AlphaBeta2Tree().


フレンドと関連する関数

friend class NextMove< BLACK > [friend]

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

friend class NextMove< WHITE > [friend]

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

friend class NextQMove< BLACK > [friend]

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

friend class NextQMove< WHITE > [friend]

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


変数

Żõޤ᤿Ρɿ

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

参照元 alphaBetaSearchAfterMove(), nodeCount(), quiesce(), と quiesceStable().

FixedCapacityVector<MoveGenerator*, MaxDepth> osl::search::AlphaBeta2Tree::generators [protected]

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

参照元 makeGenerator(), と ~AlphaBeta2Tree().

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

参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().

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

参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().

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

参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().

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

参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), と searchAllMoves().

boost::shared_ptr<AlphaBeta2Parallel> osl::search::AlphaBeta2Tree::shared [protected]

osl::CArray< int, osl::search::AlphaBeta2Tree::MaxDepth > osl::search::AlphaBeta2Tree::depth_node_count [static, protected]

ͤˤäƤõ

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

参照元 stopByAlarm().

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

参照元 resetTimeOut(), と setTimeOut().


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

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