クラス テンプレート osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >

¸ΨѤ õι. [詳細]

#include <searchFramework.h>

osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >に対する継承グラフ

Inheritance graph
[凡例]
osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >のコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public 型

typedef Eval eval_t
typedef MoveGenerator MoveGenerator_t
typedef Probabilities Probabilities_t

Public メソッド

 SearchFramework (const HashEffectState &s, checkmate_t &checker, Table *t, Recorder &r)
 SearchFramework (const SearchFramework &)
 ~SearchFramework ()
bool abort (Move) const
size_t nodeCount () const
const eval_tgetEval () const
template<Player P, class Policy>
int quiescenceValue (const Policy &)
template<Player P>
int quiescenceValue (int alpha, int beta, int depth=8)
bool isReasonableMove (Move move, int pawn_sacrifice)
 move Żõδʤؼ꤫ɤ򸡾.
template<Player P, class Policy>
int searchAllMoves (SimpleHashRecord *&record, const Policy &, SearchMove &best_move)
 (private)ؼäɾ
template<Player P, class Helper, bool isKingEscape>
bool examineMoves (const char *category_name, const MoveLogProbVector &moves, const Helper &, SearchMove &best_move, int &max_value, SearchMoveSet &tried)
 (private) moves ơ̤ bestmove max_value .
template<Player P, class Helper>
bool examineMoves (const char *category_name, const SearchMoveVector &moves, const Helper &, SearchMove &best_move, int &max_value)
 (private) moves ơ̤ bestmove max_value .
template<Player P, class Helper>
bool examineOneMove (const SearchMove &move, const Helper &, SearchMove &best_move, int &max_value)

Protected メソッド

template<Player P, class Helper>
int searchWithMove (const SearchMove &move, Helper &helper)
 move ؤɾͤ

Protected 変数

eval_t eval

Private 型

typedef SearchBase< Eval,
Table, Recorder, Probabilities > 
base_t

Private メソッド

 BOOST_CLASS_REQUIRE (Eval, osl::eval, Concept)

Private 変数

PassCounter pass_count
size_t node_count


説明

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
class osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >

¸ΨѤ õι.

֤ state, ߤ limit, root Ǥ depth, limit, ġ

null window search alpha beta search Ѥ ̤ι¤:

searchFramework.h54 行で定義されています。


型定義

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
typedef SearchBase<Eval,Table,Recorder,Probabilities> osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::base_t [private]

searchFramework.h59 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
typedef Eval osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::eval_t

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

searchFramework.h61 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
typedef MoveGenerator osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::MoveGenerator_t

searchFramework.h62 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
typedef Probabilities osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::Probabilities_t

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

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


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

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::SearchFramework ( const HashEffectState &  s,
checkmate_t checker,
Table *  t,
Recorder &  r 
) [inline, explicit]

searchFramework.tcc38 行で定義されています。

参照先 osl::search::SearchStateCore::checkmateSearcher().

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::SearchFramework ( const SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities > &  src  )  [inline]

searchFramework.tcc50 行で定義されています。

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::~SearchFramework (  )  [inline]

searchFramework.tcc61 行で定義されています。


関数

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::BOOST_CLASS_REQUIRE ( Eval  ,
osl::eval  ,
Concept   
) [private]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
bool osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::abort ( Move  best_move  )  const [inline, virtual]

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
size_t osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::nodeCount (  )  const [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P, class Helper>
int osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchWithMove ( const SearchMove move,
Helper &  helper 
) [inline, protected]

move ؤɾͤ

move Ф doUndoMove Ԥʤ Helper Υɤ¹Ԥ롣 ؼ. CAVEAT: &move åˤ󲽤Ȥ򵯤 SimpleHashRecord ˤΤȤ褦ˤɬפ롣

引数:
P 
Helper ˼¹Ԥ륳
baseVal ɾͤ򹹿Ȥߤʤƺõ򤹤 (null window search ξ)
戻り値:
ɾ

searchFramework.tcc124 行で定義されています。

参照先 osl::search::SimpleHashRecord::addNodeCount(), osl::alt(), osl::Move::capturePtype(), osl::search::SearchState::countSacrificeCheck2(), osl::search::SearchStateCore::curDepth(), osl::search::SearchStateCore::currentHash(), osl::search::PassCounter::dec(), osl::search::DominanceCheck::detect(), osl::search::FixedEval::drawValue(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::eval, osl::MoveLogProb::getMove(), osl::Sennichite::hasWinner(), osl::RepetitionCounter::history(), osl::search::PassCounter::inc(), osl::RepetitionCounter::isAlmostSennichite(), osl::Sennichite::isDraw(), osl::Move::isDrop(), osl::Sennichite::isNormal(), osl::Move::isPass(), osl::search::PassCounter::loopByBothPass(), osl::search::DominanceCheck::LOSE, osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::node_count, osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::nodeCount(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::pass_count, osl::Move::player(), osl::PTYPE_EMPTY, osl::search::SearchMove::record, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchStateCore::repetition_counter, osl::search::SearchStateCore::state(), osl::Move::to(), osl::search::DominanceCheck::WIN, osl::search::FixedEval::winByFoul(), osl::search::FixedEval::winByLoop(), と osl::Sennichite::winner().

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
const eval_t& osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::getEval (  )  const [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P, class Policy>
int osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::quiescenceValue ( const Policy &  policy  )  [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
int osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::quiescenceValue ( int  alpha,
int  beta,
int  depth = 8 
) [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
bool osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::isReasonableMove ( Move  move,
int  pawn_sacrifice 
) [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P, class Policy>
int osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves ( SimpleHashRecord *&  record,
const Policy &  policy,
SearchMove best_move 
) [inline]

(private)ؼäɾ

friend Ĺˤʤ뤿publicˤƤ뤬̤֤˰¸ ¼private

引数:
maxval P μǤɾ
P 
Policy examineMoves ǤɤΥ᥽åɤƤ֤ݲΡ
record ߤζ̤record (0 ʤɬפ˱allocate)
best_move  ȿ§λʤɤǤʤ
戻り値:
ɾ

;Ϥ root β礭ˡޤ꿼oracle

searchFramework.tcc455 行で定義されています。

参照先 osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::search::QuiescenceRecord::bestMove(), osl::search::SimpleHashRecord::bestMove(), osl::eval::betterThan(), osl::search::FixedEval::brinkmatePenalty(), osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchState::checkPointSearchAllMoves(), osl::search::ParallelSearch::checkStop(), osl::search::SearchStateCore::curDepth(), osl::search::SearchState::curLimit(), osl::search::SearchStateCore::currentHash(), depth, osl::container::MoveStack::dump(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::eval, osl::search::SearchMoveSet::find(), osl::search::SearchStateCore::getKillerMoves(), osl::MoveLogProb::getMove(), osl::search::NullWindowToQWindow::halfPawn(), osl::search::SearchStateCore::hasLastRecord(), osl::search::SearchMoveSet::hasOnlyPass(), osl::search::SearchStateCore::history(), osl::search::SearchStateCore::historyTable(), osl::Move::INVALID(), osl::search::SimpleHashRecord::is_king_in_check, osl::eval::isConsistentValue(), osl::Move::isNormal(), osl::search::DualThreatmateState::isThreatmate(), osl::search::SearchMoveSet::isValidAll(), osl::search::FixedEval::isWinValue(), osl::search::SearchStateCore::killer_moves, osl::search::RealizationProbability::KillerMove, osl::KING, osl::search::SearchStateCore::lastMove(), osl::search::SearchStateCore::lastRecord(), osl::checkmate::limitToCheckCount(), osl::search::PassCounter::loopByBothPass(), osl::search::LOWER_HIT, osl::eval::max(), osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::eval::min(), osl::search::FixedEval::minusInfty(), osl::search::SearchMove::moveLogProb(), osl::search::SimpleHashRecord::moves(), osl::newPtypeO(), osl::search::NO_HIT, osl::eval::notLessThan(), osl::search::parallelSearch, osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::pass_count, osl::PAWN, osl::search::SimpleHashRecord::prepareGenerate(), osl::search::SearchMoveVector::push_back(), osl::container::MoveLogProbVector::push_back(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recordWinByCheckmate(), osl::search::RealizationProbability::ReSearch, osl::search::SearchState::ReSearchLimitMargin, osl::search::SearchState::root_limit, search_assert, osl::search::SearchState::setKillerMove(), osl::search::SimpleHashRecord::setLowerBound(), osl::search::DualThreatmateState::setThreatmate(), osl::search::SimpleHashRecord::setUpperBound(), show(), osl::search::SearchMoveVector::sortByValue(), osl::search::SearchStateCore::state(), osl::search::SimpleHashRecord::sumOfNodeCountOfChildren(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::RealizationProbability::TableMove, osl::search::SearchStateCore::testTimeOut(), osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmate_oracle, osl::search::QuiescenceRecord::threatmateNodes(), osl::search::QuiescenceRecord::threatmateNodesLeft(), osl::search::SearchStateCore::tryThreatmate(), osl::search::DualThreatmateState::update(), osl::search::UPPER_HIT, osl::MoveLogProb::validMove(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::validTableMove(), osl::search::FixedEval::winByCheckmate(), と osl::search::FixedEval::winThreshold().

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player Turn, class Policy, bool isKingEscape>
bool osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::examineMoves ( const char *  category_name,
const MoveLogProbVector moves,
const Policy &  policy,
SearchMove best_move,
int &  max_value,
SearchMoveSet tried 
) [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player Turn, class Policy>
bool osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::examineMoves ( const char *  category_name,
const SearchMoveVector moves,
const Policy &  policy,
SearchMove best_move,
int &  max_value 
) [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player Turn, class Policy>
bool osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::examineOneMove ( const SearchMove move,
const Policy &  policy,
SearchMove best_move,
int &  max_value 
) [inline]


変数

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
eval_t osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::eval [protected]

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
PassCounter osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::pass_count [private]

template<typename Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities = RealizationProbability>
size_t osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::node_count [private]


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

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