クラス テンプレート osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >

ξ Player εͤߤ򰷤;. [詳細]

#include <dualCheckmateSearcher.h>

osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >に対する継承グラフ

Inheritance graph
[凡例]
osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >のコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public 型

typedef Table table_t
typedef CheckmateSearcher
< table_t, HEstimator,
CostEstimator > 
checkmate_t
typedef OracleProver< table_tprover_t
typedef OracleDisprover< table_tdisprover_t

Public メソッド

 DualCheckmateSearcher (size_t total_node_limit=CHECKMATE_DEFAULT_TOTAL_NODE_LIMIT)
virtual ~DualCheckmateSearcher ()
void setVerbose (bool verbose=true)
template<Player P>
bool isWinningStateByOracle (NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, unsigned short &oracle_age, int node_limit=0)
template<Player P>
bool isNotWinningStateByOracle (NumEffectState &state, const HashKey &key, const PathEncoding &path, unsigned short &oracle_age)
template<Player P>
bool isWinningStateByOracleLastMove (NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move, unsigned short &oracle_age, int node_limit=0)
bool isWinningStateByOracleLastMove (NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move, unsigned short &age)
template<Player P>
bool isWinningState (int node_limit, NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, AttackOracleAges &oracle_age, Move last_move=Move::INVALID())
bool isWinningState (int node_limit, NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, AttackOracleAges &oracle_age, Move last_move=Move::INVALID())
bool isWinningState (int node_limit, NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
template<Player P>
bool isLosingState (int node_limit, NumEffectState &state, const HashKey &key, const PathEncoding &path, Move last_move=Move::INVALID())
bool isLosingState (int node_limit, NumEffectState &state, const HashKey &, const PathEncoding &path, Move last_move=Move::INVALID())
const checkmate_tsearcher (Player P) const
const table_tgetTable (Player P) const
table_tgetTable (Player P)
size_t mainNodeCount () const
size_t totalNodeCount () const
void writeRootHistory (const RepetitionCounter &counter, const MoveStack &moves, const SimpleState &state, Player attack)
void undoWriteRootHistory (const RepetitionCounter &counter, const MoveStack &moves, const SimpleState &state, Player attack)

Private メソッド

CheckmatorWithOracleget (Player attacker)
const CheckmatorWithOracleget (Player attacker) const
SharedOraclesoracles (Player attacker)
template<Player P>
bool isWinningStateByOracle (int node_limit, NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, ProofOracleAttack< P > oracle)
template<Player P>
bool isNotWinningStateByOracle (NumEffectState &state, const HashKey &key, const PathEncoding &path, const DisproofOracleAttack< P > &oracle)

Private 変数

CheckmatorWithOracle black
CheckmatorWithOracle white
size_t simulation_node_count
unsigned int proof_by_oracle
unsigned int unknown_by_oracle
unsigned int disproof_by_oracle
unsigned int proof_by_search
unsigned int unknown_by_search
unsigned int disproof_by_search

Static Private 変数

static const int disproof_oracle_record_limit = 500

構成

struct  CheckmatorWithOracle


説明

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
class osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >

ξ Player εͤߤ򰷤;.

CAVEAT: ԡϡƤobjectμ̿·ɬפ. ͭ SharedOracles ơ֥ؤΥݥ󥿤ޤि.

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


型定義

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
typedef Table osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::table_t

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

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
typedef CheckmateSearcher<table_t, HEstimator, CostEstimator> osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::checkmate_t

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

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
typedef OracleProver<table_t> osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::prover_t

dualCheckmateSearcher.h64 行で定義されています。

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
typedef OracleDisprover<table_t> osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::disprover_t

dualCheckmateSearcher.h65 行で定義されています。


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

template<class Table, class HEstimator, class CostEstimator>
osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::DualCheckmateSearcher ( size_t  total_node_limit = CHECKMATE_DEFAULT_TOTAL_NODE_LIMIT  )  [inline, explicit]

引数:
total_node_count instanceͳɤΥΡɿ. isWinningState ʤɤŬڤ node_limit ͿƤ̾ 礭ͤɤ.

dualCheckmateSearcher.tcc51 行で定義されています。

template<class Table, class HEstimator, class CostEstimator>
osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::~DualCheckmateSearcher (  )  [inline, virtual]


関数

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
CheckmatorWithOracle& osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::get ( Player  attacker  )  [inline, private]

dualCheckmateSearcher.h86 行で定義されています。

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
const CheckmatorWithOracle& osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::get ( Player  attacker  )  const [inline, private]

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

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
SharedOracles& osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::oracles ( Player  attacker  )  [inline, private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
void osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::setVerbose ( bool  verbose = true  )  [inline]

dualCheckmateSearcher.h112 行で定義されています。

template<class Table, class HEstimator, class CostEstimator>
template<osl::Player P>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningStateByOracle ( int  node_limit,
NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
ProofOracleAttack< P >  oracle 
) [inline, private]

template<class Table, class HEstimator, class CostEstimator>
template<osl::Player P>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isNotWinningStateByOracle ( NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
const DisproofOracleAttack< P > &  oracle 
) [inline, private]

template<class Table, class HEstimator, class CostEstimator>
template<osl::Player P>
template bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningStateByOracle< WHITE > ( NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
unsigned short &  oracle_age,
int  node_limit = 0 
) [inline]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
template<Player P>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isNotWinningStateByOracle ( NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
unsigned short &  oracle_age 
) [inline]

引数:
oracle_age Ʊoracle2ٻʤ
戻り値:
Եͤɤ

dualCheckmateSearcher.h139 行で定義されています。

template<class Table, class HEstimator, class CostEstimator>
template<osl::Player P>
template bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningStateByOracleLastMove< WHITE > ( NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move,
unsigned short &  oracle_age,
int  node_limit = 0 
) [inline]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningStateByOracleLastMove ( NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move,
unsigned short &  age 
) [inline]

dualCheckmateSearcher.h160 行で定義されています。

template<class Table, class HEstimator, class CostEstimator>
template<osl::Player P>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningState ( int  node_limit,
NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
AttackOracleAges oracle_age,
Move  last_move = Move::INVALID() 
) [inline]

戻り値:
̤ͤ
引数:
oracle_age :˻oracleο:returnޤǤ˻oracleο. (oracleϽˤʤǤΤΤ)

dualCheckmateSearcher.tcc189 行で定義されています。

参照先 osl::checkmate::OraclePool::addDisproofOracle(), osl::checkmate::OraclePoolLastMove::addOracle(), osl::checkmate::OraclePool::addProofOracle(), osl::checkmate::CheckHashRecord::bestMove, osl::checkmate::AttackOracleAges::disproof, osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::disproof_by_search, osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::disproof_oracle_record_limit, osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::getTable(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::ProofDisproof::isFinal(), osl::Move::isNormal(), osl::checkmate::CheckMoveCore::move, osl::checkmate::SharedOracles::oracles, osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::oracles(), osl::checkmate::SharedOracles::oracles_last_move, osl::checkmate::AttackOracleAges::proof, osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::proof_by_search, osl::checkmate::AttackOracleAges::proof_last_move, osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::searcher(), osl::checkmate::CheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount(), osl::PathEncoding::turn(), と osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::unknown_by_search.

参照元 checkmate_attack(), osl::search::SearchState2Core::isWinningState(), osl::search::SearchStateCore::isWinningState(), osl::checkmate::DualCheckmateSearcher< >::isWinningState(), osl::brinkmate::BrinkmateState::testThreatmateState(), と osl::brinkmate::BrinkmateState::testWinningState().

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningState ( int  node_limit,
NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
AttackOracleAges oracle_age,
Move  last_move = Move::INVALID() 
)

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isWinningState ( int  node_limit,
NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move = Move::INVALID() 
) [inline]

dualCheckmateSearcher.h185 行で定義されています。

template<class Table, class HEstimator, class CostEstimator>
template<osl::Player P>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isLosingState ( int  node_limit,
NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move  last_move = Move::INVALID() 
) [inline]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
bool osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::isLosingState ( int  node_limit,
NumEffectState &  state,
const HashKey &  ,
const PathEncoding path,
Move  last_move = Move::INVALID() 
)

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
const checkmate_t& osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::searcher ( Player  P  )  const [inline]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
const table_t& osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::getTable ( Player  P  )  const [inline]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
table_t& osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::getTable ( Player  P  )  [inline]

dualCheckmateSearcher.h209 行で定義されています。

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
size_t osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::mainNodeCount (  )  const [inline]

dualCheckmateSearcher.h210 行で定義されています。

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

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
size_t osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::totalNodeCount (  )  const [inline]

template<class Table, class HEstimator, class CostEstimator>
void osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::writeRootHistory ( const RepetitionCounter counter,
const MoveStack &  moves,
const SimpleState &  state,
Player  attack 
) [inline]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
void osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::undoWriteRootHistory ( const RepetitionCounter counter,
const MoveStack &  moves,
const SimpleState &  state,
Player  attack 
)


変数

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
CheckmatorWithOracle osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::black [private]

dualCheckmateSearcher.h85 行で定義されています。

参照元 osl::checkmate::DualCheckmateSearcher< >::get().

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
CheckmatorWithOracle osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::white [private]

dualCheckmateSearcher.h85 行で定義されています。

参照元 osl::checkmate::DualCheckmateSearcher< >::get().

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
const int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::disproof_oracle_record_limit = 500 [static, private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
size_t osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::simulation_node_count [private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
unsigned int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::proof_by_oracle [private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
unsigned int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::unknown_by_oracle [private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
unsigned int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::disproof_by_oracle [private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
unsigned int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::proof_by_search [private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
unsigned int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::unknown_by_search [private]

template<class Table = CheckHashTable, class HEstimator = LibertyEstimator, class CostEstimator = PieceCost>
unsigned int osl::checkmate::DualCheckmateSearcher< Table, HEstimator, CostEstimator >::disproof_by_search [private]


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

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