クラス osl::search::SimpleHashRecord

SimpleHashTable の中に記録するエントリ. [詳細]

#include <simpleHashRecord.h>

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

すべてのメンバ一覧

Public メソッド

 SimpleHashRecord ()
void addNodeCount (size_t diff)
void setAbsoluteValue (Move best_move, int value, int limit)
 値を書き込む.
void setBestMove (Move m)
void setAbsoluteValue (MoveLogProb best_move, int value, int limit)
void setLowerBound (Player P, int limit, const MoveLogProb &best_move, int value)
 lowerBound の設定.
void setUpperBound (Player P, int limit, const MoveLogProb &best_move, int value)
 upperBound の設定.
int upperLimit () const
 upperBound を記録したときのlimit
int upperBound () const
 手番のプレイヤからみた評価値の上限
int lowerLimit () const
 lowerBound を記録したときのlimit
int lowerBound () const
 手番のプレイヤからみた評価値の下限
int checkmateNodes () const
 今までに詰将棋で探したノード数
int threatmateNodes () const
const MoveLogProb bestMove () const
bool hasUpperBound (int limit) const
bool hasLowerBound (int limit) const
bool hasAbsoluteUpperBound (Player p, int limit) const
bool hasAbsoluteLowerBound (Player p, int limit) const
int absoluteUpperBound (Player p) const
int absoluteLowerBound (Player p) const
void resetValue ()
template<Player P>
bool hasGreaterLowerBound (int limit, int threshold, int &val) const
 high fail するか
template<Player P>
bool hasLesserUpperBound (int limit, int threshold, int &val) const
 low fail するか
const DualThreatmateStatethreatmate () const
DualThreatmateStatethreatmate ()
void dump (std::ostream &) const
size_t nodeCount () const
bool inCheck () const
void setInCheck (bool new_value)

Public 変数

QuiescenceRecord qrecord
 静止探索用

Private メソッド

template<bool PreferLowerBound>
void makeConsistent (Player P)
 上限と下限に矛盾があったら調整する.

Private 変数

MoveLogProb best_move
int upper_bound
int lower_bound
signed short upper_limit
signed short lower_limit
unsigned int search_nodes
 CAVEAT: 32bit では 100万局面/秒で1時間ちょっと考えると溢れる.

説明

SimpleHashTable の中に記録するエントリ.

simpleHashRecord.h22 行で定義されています。


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

osl::search::SimpleHashRecord::SimpleHashRecord (  )  [inline]

simpleHashRecord.h36 行で定義されています。


関数

int osl::search::SimpleHashRecord::absoluteLowerBound ( Player  p  )  const [inline]

simpleHashRecord.h196 行で定義されています。

参照先 osl::BLACK, lowerBound(), と upperBound().

int osl::search::SimpleHashRecord::absoluteUpperBound ( Player  p  )  const [inline]

simpleHashRecord.h192 行で定義されています。

参照先 osl::BLACK, lowerBound(), と upperBound().

void osl::search::SimpleHashRecord::addNodeCount ( size_t  diff  )  [inline]
const MoveLogProb osl::search::SimpleHashRecord::bestMove (  )  const [inline]
int osl::search::SimpleHashRecord::checkmateNodes (  )  const [inline]

今までに詰将棋で探したノード数

simpleHashRecord.h167 行で定義されています。

参照先 osl::search::QuiescenceRecordBase::checkmate_nodes, と qrecord.

参照元 osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain().

void osl::search::SimpleHashRecord::dump ( std::ostream &  os  )  const
bool osl::search::SimpleHashRecord::hasAbsoluteLowerBound ( Player  p,
int  limit 
) const [inline]

simpleHashRecord.h188 行で定義されています。

参照先 osl::BLACK, hasLowerBound(), と hasUpperBound().

bool osl::search::SimpleHashRecord::hasAbsoluteUpperBound ( Player  p,
int  limit 
) const [inline]

simpleHashRecord.h184 行で定義されています。

参照先 osl::BLACK, hasLowerBound(), と hasUpperBound().

template<Player P>
bool osl::search::SimpleHashRecord::hasGreaterLowerBound ( int  limit,
int  threshold,
int &  val 
) const [inline]
template<Player P>
bool osl::search::SimpleHashRecord::hasLesserUpperBound ( int  limit,
int  threshold,
int &  val 
) const [inline]
bool osl::search::SimpleHashRecord::hasLowerBound ( int  limit  )  const [inline]
bool osl::search::SimpleHashRecord::hasUpperBound ( int  limit  )  const [inline]
bool osl::search::SimpleHashRecord::inCheck (  )  const [inline]
int osl::search::SimpleHashRecord::lowerBound (  )  const [inline]
int osl::search::SimpleHashRecord::lowerLimit (  )  const [inline]
template<bool PreferLowerBound>
void osl::search::SimpleHashRecord::makeConsistent ( Player  P  )  [inline, private]

上限と下限に矛盾があったら調整する.

同じ深さだったら後から来た方を優先しないと,再々探索の結果を記録できない

引数:
PreferLowerBound 同じ深さだったら lower bound を優先する

simpleHashRecord.h140 行で定義されています。

参照先 osl::eval::betterThan(), hasLowerBound(), hasUpperBound(), lower_bound, lower_limit, upper_bound, と upper_limit.

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

simpleHashRecord.h240 行で定義されています。

参照先 search_nodes.

参照元 dump(), と osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain().

void osl::search::SimpleHashRecord::resetValue (  )  [inline]
void osl::search::SimpleHashRecord::setAbsoluteValue ( MoveLogProb  best_move,
int  value,
int  limit 
) [inline]

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

参照先 lower_bound, lower_limit, qrecord, SCOPED_LOCK_CHAR, upper_bound, と upper_limit.

void osl::search::SimpleHashRecord::setAbsoluteValue ( Move  best_move,
int  value,
int  limit 
) [inline]
void osl::search::SimpleHashRecord::setBestMove ( Move  m  )  [inline]
void osl::search::SimpleHashRecord::setInCheck ( bool  new_value  )  [inline]
void osl::search::SimpleHashRecord::setLowerBound ( Player  P,
int  limit,
const MoveLogProb best_move,
int  value 
) [inline]
void osl::search::SimpleHashRecord::setUpperBound ( Player  P,
int  limit,
const MoveLogProb best_move,
int  value 
) [inline]

upperBound の設定.

  • 深さ優先
  • 同じ深さなら悪い値優先

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

参照先 hasLowerBound(), qrecord, SCOPED_LOCK_CHAR, upper_bound, upper_limit, と osl::MoveLogProb::validMove().

参照元 osl::search::SearchBase< EvalT, SimpleHashTable, CountRecorder, RealizationProbability >::recordUpperBound().

DualThreatmateState& osl::search::SimpleHashRecord::threatmate (  )  [inline]

simpleHashRecord.h236 行で定義されています。

参照先 qrecord, と osl::search::QuiescenceRecordBase::threatmate.

const DualThreatmateState& osl::search::SimpleHashRecord::threatmate (  )  const [inline]
int osl::search::SimpleHashRecord::threatmateNodes (  )  const [inline]

simpleHashRecord.h168 行で定義されています。

参照先 qrecord, と osl::search::QuiescenceRecordBase::threatmate_nodes.

int osl::search::SimpleHashRecord::upperBound (  )  const [inline]
int osl::search::SimpleHashRecord::upperLimit (  )  const [inline]

upperBound を記録したときのlimit

simpleHashRecord.h159 行で定義されています。

参照先 upper_limit.

参照元 hasLesserUpperBound(), hasUpperBound(), と osl::search::analyzer::DotWriter::showNode().


変数

simpleHashRecord.h28 行で定義されています。

参照元 bestMove(), dump(), と setBestMove().

simpleHashRecord.h30 行で定義されています。

参照元 lowerBound(), makeConsistent(), setAbsoluteValue(), と setLowerBound().

simpleHashRecord.h32 行で定義されています。

参照元 dump(), lowerLimit(), makeConsistent(), resetValue(), setAbsoluteValue(), と setLowerBound().

CAVEAT: 32bit では 100万局面/秒で1時間ちょっと考えると溢れる.

simpleHashRecord.h34 行で定義されています。

参照元 addNodeCount(), と nodeCount().

simpleHashRecord.h29 行で定義されています。

参照元 makeConsistent(), setAbsoluteValue(), setUpperBound(), と upperBound().

simpleHashRecord.h31 行で定義されています。

参照元 dump(), makeConsistent(), resetValue(), setAbsoluteValue(), setUpperBound(), と upperLimit().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:57 2010に生成されました。  doxygen 1.6.3