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

MTDF [詳細]

#include <mtdf.h>

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

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

Collaboration graph
[凡例]

すべてのメンバ一覧

Public 型

typedef MTDF< Eval,
MoveGenerator, Table, Recorder,
Probabilities > 
mtdf_t
typedef NullWindowSearch< Eval,
MoveGenerator, Table, Recorder,
Probabilities > 
tester_t
typedef base_t::eval_t eval_t
typedef misc::RealTime RealTime
typedef DualCheckmateSearcher checkmate_t

Public メソッド

 MTDF (const HashEffectState &s, DualCheckmateSearcher<> &c, Table &t, Recorder &r)
 ~MTDF ()
void setInitialGuess (int guess)
 threshold νͤ
void setInitialGuess ()
 threshold νͤ
bool isReasonableMove (Move move, int pawn_sacrifice=1)
void setHistory (const MoveStack &history)
 last_move ѤϤ餫 history ˤƤ
void setRootIgnoreMoves (const MoveVector *rim)
const Move computeBestMove (int limit, const RealTime &timer=RealTime(60))
 ̾ƤФ᥽å
const Move computeBestMoveIteratively (int limit, const int step=100, const int initialLimit=400, int nodeLimit=1600000, const misc::RealTime &timer=misc::RealTime(60))
 computeBestMove iterative deepening version
const AlarmSwitch alarmSwitch ()
const BigramKillerMovebigramKillerMove ()
void setBigramKillerMove (const BigramKillerMove &killers)
template<Player P>
void examineMoves (const char *category_name, int &current_value, int limit, const SearchMoveVector &moves, SearchMoveSorter< P > &lower_moves, SearchMoveSorter< P > &higher_moves)
 ȥåץ٥ moves μĴ٤ lower_moves higher_moves ƥʥ󥹤 ޤ threshold Ŭڤѹ
void gatherMoves (const MoveLogProbVector &moves, SearchMoveSet &out)
 줿 moves out ˽
const DualCheckmateSearchercheckmateSearcher () const
const HistoryTablehistoryTable () const

Private 型

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

Private メソッド

 BOOST_CLASS_REQUIRE (Eval, osl::eval, Concept)
template<Player P>
const Move computeBestMoveOfPlayer (int limit)
 ᥤõ
template<Player P>
const Move retryByLowerF (SimpleHashRecord *record, int limit, SearchMoveSorter< P > &lower_moves, SearchMoveSorter< P > &higher_moves)
 ٤٤Ƥμį᤿
template<Player P>
const Move selectBestMoveByHigherF (SimpleHashRecord *record, int limit, SearchMoveSorter< P > &lower_moves, SearchMoveSorter< P > &higher_moves)
 F ۤʣμǺ
template<Player P>
void triageMovesSpeculatively (SearchMoveSorter< P > &higher_moves, int limit, int jump)
 ͤͿ higher_moves ʤ.
template<Player P>
bool testMove (const SearchMove &move, int &val, int &max_value, int limit)
 move õmax_value (ǽʤ)

Private 変数

int threshold
int lower_bound
int upper_bound
checkmate_tcheckmate_searcher
tester_t memory_tester
RealTime timer
const MoveVectorroot_ignore_moves


説明

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

MTDF

引数:
MoveGenerator CategoryList 㤨õʤ FWMoveGenerator ʣ generator CategoryList<A,CategoryList<B,C> > ʤɤȥꥹȤǽ
Eval PieceEval or PiecePairEval
Probabilities fullwidth ξ FullWidthProbability Ȥ
Recorder 㤨 NullMtdfRecorder
null window õ AlphaBeta Ǥ ˤroot ΡնΥ᥽åɤ

mtdf.h40 行で定義されています。


型定義

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

mtdf.h45 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
typedef MTDF<Eval,MoveGenerator,Table,Recorder,Probabilities> osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::mtdf_t

mtdf.h47 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
typedef NullWindowSearch<Eval,MoveGenerator,Table,Recorder,Probabilities> osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::tester_t

mtdf.h48 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
typedef base_t::eval_t osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::eval_t

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

mtdf.h49 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
typedef misc::RealTime osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::RealTime

mtdf.h50 行で定義されています。

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
typedef DualCheckmateSearcher osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::checkmate_t

mtdf.h51 行で定義されています。


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

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::MTDF ( const HashEffectState &  s,
DualCheckmateSearcher<> &  c,
Table &  t,
Recorder &  r 
) [explicit]

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

mtdf.tcc37 行で定義されています。


関数

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

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::setInitialGuess ( int  guess  )  [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::setInitialGuess (  )  [inline]

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

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::setHistory ( const MoveStack history  )  [inline]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::setRootIgnoreMoves ( const MoveVector rim  )  [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
const osl::Move osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMove ( int  limit,
const RealTime timer = RealTime(60) 
) [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
const osl::Move osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveIteratively ( int  limit,
const int  step = 100,
const int  initialLimit = 400,
int  nodeLimit = 1600000,
const misc::RealTime timer = misc::RealTime(60) 
) [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
const osl::misc::AlarmSwitch osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::alarmSwitch (  )  [inline]

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

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::setBigramKillerMove ( const BigramKillerMove killers  )  [inline]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
const osl::Move osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer ( int  limit  )  [inline, private]

ᥤõ

ᥤõ.

ǽ low/high fail ȽꤷѴؿ˸Ǥ

threshold ۤȱۤʤä

ߤκɾ threshold ˤä upperbound ä lower bound äꤹΤ threshold ѹ

mtdf.tcc279 行で定義されています。

参照先 all_moves, osl::alt(), osl::search::SearchMoveSet::assignIfBetter(), osl::search::QuiescenceRecord::attack_oracle, osl::search::QuiescenceRecord::bestMove(), osl::search::SimpleHashRecord::bestMove(), osl::eval::betterThan(), osl::search::ShouldPromoteCut::canIgnoreAndNotDrop(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::checkmate_searcher, osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::SearchStateCore::currentHash(), osl::eval::delta(), osl::search::SearchMoveSet::find(), osl::search::SearchMoveSet::range::first, osl::search::SearchMoveSet::front(), osl::misc::RealTime::getConsumedInDouble(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::getEval(), osl::MoveLogProb::getMove(), osl::search::SearchStateCore::history(), osl::search::SearchStateCore::historyTable(), osl::search::SearchMoveSorter< P >::insert(), osl::Move::INVALID(), osl::Move::isNormal(), osl::search::DualThreatmateState::isThreatmate(), osl::search::FixedEval::isWinValue(), osl::search::SearchMoveSet::range::last, osl::checkmate::limitToCheckCount(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::lower_bound, osl::eval::max(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::memory_tester, osl::search::FixedEval::minusInfty(), osl::search::SearchMove::moveLogProb(), osl::search::SimpleHashRecord::moves(), osl::newPtypeO(), osl::search::SearchStateCore::path(), osl::PAWN, osl::search::SearchMoveVector::push_back(), osl::search::SimpleHashRecord::qrecord, osl::search::SearchMove::record, 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::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::root_ignore_moves, osl::search::SearchStateCore::rootRecord(), osl::MoveLogProb::setLogProbAtMost(), osl::search::SearchStateCore::setRootRecord(), osl::search::DualThreatmateState::setThreatmate(), osl::search::SearchMoveVector::sortByValue(), osl::search::SearchStateCore::state(), osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmate_oracle, osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::threshold, osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::timer, osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::upper_bound, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::validTableMove(), osl::search::FixedEval::windowMax(), と osl::search::FixedEval::winThreshold().

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
const osl::Move osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::retryByLowerF ( SimpleHashRecord record,
int  limit,
SearchMoveSorter< P > &  lower_moves,
SearchMoveSorter< P > &  higher_moves 
) [inline, private]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
const osl::Move osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::selectBestMoveByHigherF ( SimpleHashRecord record,
int  limit,
SearchMoveSorter< P > &  lower_moves,
SearchMoveSorter< P > &  higher_moves 
) [inline, private]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::triageMovesSpeculatively ( SearchMoveSorter< P > &  higher_moves,
int  limit,
int  jump 
) [inline, private]

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::examineMoves ( const char *  category_name,
int &  current_value,
int  limit,
const SearchMoveVector moves,
SearchMoveSorter< P > &  lower_moves,
SearchMoveSorter< P > &  higher_moves 
) [inline]

ȥåץ٥ moves μĴ٤ lower_moves higher_moves ƥʥ󥹤 ޤ threshold Ŭڤѹ

引数:
current_value ߤκ betterThan<P>(threshold, current_value)
lower_moves threshold ꤬ʤäȤƤμɤ¸
higher_moves threshold Τߤɤ¸

mtdf.tcc777 行で定義されています。

参照先 osl::alt(), osl::eval::delta(), osl::search::SearchMoveSorter< P >::insert(), osl::search::SearchMoveSorter< P >::isValidAll(), osl::search::FixedEval::isWinValue(), osl::eval::max(), osl::newPtypeO(), osl::PAWN, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::recorder, osl::search::SearchBase< Eval, Table, Recorder, Probabilities >::table, と osl::search::FixedEval::winThreshold().

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
void osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::gatherMoves ( const MoveLogProbVector moves,
SearchMoveSet out 
)

줿 moves out ˽

template<class Eval, typename MoveGenerator, typename Table, typename Recorder, typename Probabilities>
template<osl::Player P>
bool osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::testMove ( const SearchMove move,
int &  val,
int &  max_value,
int  limit 
) [inline, private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
const DualCheckmateSearcher* osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::checkmateSearcher (  )  const [inline]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
const HistoryTable& osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::historyTable (  )  const [inline]


変数

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
int osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::threshold [private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
int osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::lower_bound [private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
int osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::upper_bound [private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
checkmate_t* osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::checkmate_searcher [private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
tester_t osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::memory_tester [private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
RealTime osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::timer [private]

template<typename Eval, typename MoveGenerator, typename Table = SimpleHashTable, typename Recorder = CountRecorder, typename Probabilities = RealizationProbability>
const MoveVector* osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::root_ignore_moves [private]


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

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