クラス osl::search::SearchState2Core

#include <searchState2.h>

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

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

Collaboration graph
[凡例]

すべてのメンバ一覧

Public 型

enum  { MaxDepth = 64 }
typedef DualCheckmateSearcher checkmate_t

Public メソッド

 SearchState2Core (const NumEffectState &s, checkmate_t &checker)
virtual ~SearchState2Core ()
int curDepth () const
virtual void setState (const NumEffectState &s)
 state ΥԡԤ.
void setHistory (const MoveStack &h)
bool hasLastRecord (unsigned int n=0) const
SimpleHashRecordlastRecord (unsigned int n=0)
const SimpleHashRecordlastRecord (unsigned int n=0) const
SimpleHashRecordrootRecord ()
void setCurrentRecord (SimpleHashRecord *r)
void setRootRecord (SimpleHashRecord *root)
void setKillerMove (Move best_move)
void getBigramKillerMoves (MoveVector &moves) const
void getKillerMoves (MoveVector &moves) const
const BigramKillerMovebigramKillerMove () const
void setBigramKillerMove (const BigramKillerMove &killers)
void pushPass ()
void popPass ()
template<Player P, class Function>
void doUndoMoveOrPass (const HashKey &new_hash, Move move, Function &f)
 ޤȤdoUndo
void makeMove (Move move)
const Move lastMove (int i=1) const
const MoveStackhistory () const
const RecordStack2recordHistory () const
const PathEncodingpath () const
const NumEffectState & state () const
const checkmate_tcheckmateSearcher () const
const RepetitionCounterrepetitionCounter () const
const HashKey & currentHash () const
template<Player P, class Function>
void doUndoMoveLight (Move move, Function &f)
 ̲ doUndo , hash 򹹿ʤ
template<Player P>
bool isLosingState (int node_limit)
template<Player P>
bool isWinningState (int node_limit, Move &checkmate_move, AttackOracleAges &age)
template<Player P>
bool isWinningStateShort (int depth, Move &checkmate_move)
 FixedDepthSearcher Ƥ
template<Player P>
bool isThreatmateState (int node_limit, Move &threatmate_move, AttackOracleAges &age)
 P μ֤Pζ̤˵ͤäƤ뤫ɤ
template<Player P>
bool isThreatmateStateShort (int depth, Move &threatmate_move)
bool abort () const
virtual bool abort (Move) const
bool tryThreatmate () const
void makePV (Move m)
void initPV ()
int countCheckAfterThreatmate (Player turn, int depth=1) const
 turn ¦Ϣ³ǵͤƨƤ
int countCheckAfterThreatmateSacrifice (Player turn, int depth=1) const

Static Public メソッド

static void makePV (PVVector &parent, Move m, PVVector &pv)

Public 変数

volatile bool stop

Static Public 変数

static CArray< int, MaxDepth > depth_node_count_quiesce

Protected 型

enum  NodeType { PvNode = 0, AllNode = 1, CutNode = -1 }
typedef FixedCapacityVector
< Move, MaxDepth > 
PVVector

Protected 変数

RecordStack2 record_stack
RepetitionCounter repetition_counter
boost::shared_ptr
< SearchState2Shared
shared
CArray< PVVector, MaxDepth > pv
CArray< NodeType, MaxDepth > node_type

Private メソッド

void pushBeforeApply (Move move)
 ApplyMove˹Ԥ
void updateRepetitionCounterAfterMove (const HashKey &new_hash)
 pushBeforeApply θ塤ApplyMove桤FunctionƤ˸ƤФ
void popAfterApply ()
 ApplyMoveθ˹Ԥ

Private 変数

NumEffectState current_state
checkmate_tcheckmate_searcher
PathEncoding current_path
MoveStack move_history
int root_depth

フレンド

class AlphaBeta2Parallel
class Updator

構成

struct  UpdateWrapper
struct  Updator


説明

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


型定義

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

typedef FixedCapacityVector<Move,MaxDepth> osl::search::SearchState2Core::PVVector [protected]

searchState2.h108 行で定義されています。


列挙型

anonymous enum

列挙型の値:
MaxDepth 

searchState2.h89 行で定義されています。

列挙型の値:
PvNode 
AllNode 
CutNode 

searchState2.h110 行で定義されています。


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

osl::search::SearchState2Core::SearchState2Core ( const NumEffectState &  s,
checkmate_t checker 
)

searchState2.cc51 行で定義されています。

参照先 hasLastRecord(), と setState().

osl::search::SearchState2Core::~SearchState2Core (  )  [virtual]

searchState2.cc60 行で定義されています。


関数

int osl::search::SearchState2Core::curDepth (  )  const [inline]

void osl::search::SearchState2Core::setState ( const NumEffectState &  s  )  [virtual]

void osl::search::SearchState2Core::setHistory ( const MoveStack h  ) 

bool osl::search::SearchState2Core::hasLastRecord ( unsigned int  n = 0  )  const [inline]

SimpleHashRecord* osl::search::SearchState2Core::lastRecord ( unsigned int  n = 0  )  [inline]

const SimpleHashRecord* osl::search::SearchState2Core::lastRecord ( unsigned int  n = 0  )  const [inline]

searchState2.h135 行で定義されています。

参照先 osl::search::RecordStack2::lastRecord(), と record_stack.

SimpleHashRecord* osl::search::SearchState2Core::rootRecord (  )  [inline]

void osl::search::SearchState2Core::setCurrentRecord ( SimpleHashRecord r  )  [inline]

void osl::search::SearchState2Core::setRootRecord ( SimpleHashRecord root  )  [inline]

void osl::search::SearchState2Core::setKillerMove ( Move  best_move  )  [inline]

void osl::search::SearchState2Core::getBigramKillerMoves ( MoveVector moves  )  const [inline]

void osl::search::SearchState2Core::getKillerMoves ( MoveVector moves  )  const [inline]

searchState2.h175 行で定義されています。

参照先 curDepth(), getBigramKillerMoves(), shared, と state().

参照元 osl::search::AlphaBeta2Tree::nextMove().

const BigramKillerMove& osl::search::SearchState2Core::bigramKillerMove (  )  const [inline]

searchState2.h180 行で定義されています。

参照先 shared.

void osl::search::SearchState2Core::setBigramKillerMove ( const BigramKillerMove killers  ) 

searchState2.cc96 行で定義されています。

参照先 shared.

void osl::search::SearchState2Core::pushPass (  )  [inline]

void osl::search::SearchState2Core::popPass (  )  [inline]

void osl::search::SearchState2Core::pushBeforeApply ( Move  move  )  [inline, private]

void osl::search::SearchState2Core::updateRepetitionCounterAfterMove ( const HashKey &  new_hash  )  [inline, private]

pushBeforeApply θ塤ApplyMove桤FunctionƤ˸ƤФ

searchState2.h242 行で定義されています。

参照先 current_state, osl::RepetitionCounter::push(), と repetition_counter.

参照元 makeMove(), と osl::search::SearchState2Core::Updator::update().

void osl::search::SearchState2Core::popAfterApply (  )  [inline, private]

template<Player P, class Function>
void osl::search::SearchState2Core::doUndoMoveOrPass ( const HashKey &  new_hash,
Move  move,
Function &  f 
) [inline]

void osl::search::SearchState2Core::makeMove ( Move  move  )  [inline]

osl::search::AlphaBeta2で再定義されています。

searchState2.h269 行で定義されています。

参照先 current_state, currentHash(), pushBeforeApply(), と updateRepetitionCounterAfterMove().

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

const Move osl::search::SearchState2Core::lastMove ( int  i = 1  )  const [inline]

const MoveStack& osl::search::SearchState2Core::history (  )  const [inline]

const RecordStack2& osl::search::SearchState2Core::recordHistory (  )  const [inline]

searchState2.h279 行で定義されています。

参照先 record_stack.

参照元 osl::search::SearchState2::countSacrificeCheck2().

const PathEncoding& osl::search::SearchState2Core::path (  )  const [inline]

const NumEffectState& osl::search::SearchState2Core::state (  )  const [inline]

searchState2.h281 行で定義されています。

参照先 current_state.

参照元 abort(), osl::search::AlphaBeta2Tree::alphaBetaSearch(), osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove(), osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::AlphaBeta2::computeBestMoveIteratively(), countCheckAfterThreatmate(), countCheckAfterThreatmateSacrifice(), osl::search::QuiescenceSearch2< EvalT >::currentState(), osl::search::QuiescenceSearch2< EvalT >::currentValueWithLastThreat(), osl::search::QuiescenceSearch2< EvalT >::examineCapture(), osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack2(), osl::search::MoveGenerator::generateAll(), osl::search::QuiescenceSearch2< EvalT >::generateAndExamineTakeBack2(), osl::search::MoveGenerator::generateBreakThreatmate(), osl::search::MoveGenerator::generateCapture(), osl::search::MoveGenerator::generateKingEscape(), osl::search::MoveGenerator::generateTakeBack(), osl::search::MoveGenerator::generateTesuji(), getBigramKillerMoves(), getKillerMoves(), osl::search::AlphaBeta2::makeMove(), osl::search::AlphaBeta2Tree::nextMove(), osl::search::AlphaBeta2Tree::quiesce(), osl::search::AlphaBeta2Tree::quiesceRoot(), osl::search::QuiescenceSearch2< EvalT >::search(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::searchInternal(), osl::search::QuiescenceSearch2< EvalT >::searchIteratively(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat(), osl::search::QuiescenceSearch2< EvalT >::takeBackOrChase(), osl::search::QuiescenceSearch2< EvalT >::takeBackValue(), osl::search::AlphaBeta2Tree::testThreatmate(), osl::search::AlphaBeta2Tree::tryCheckmate(), osl::search::AlphaBeta2Tree::tryCheckmateAgain(), と tryThreatmate().

const checkmate_t& osl::search::SearchState2Core::checkmateSearcher (  )  const [inline]

const RepetitionCounter& osl::search::SearchState2Core::repetitionCounter (  )  const [inline]

searchState2.h283 行で定義されています。

参照先 repetition_counter.

参照元 osl::search::QuiescenceSearch2< EvalT >::examineMoves().

const HashKey& osl::search::SearchState2Core::currentHash (  )  const [inline]

template<Player P, class Function>
void osl::search::SearchState2Core::doUndoMoveLight ( Move  move,
Function &  f 
) [inline]

template<Player P>
bool osl::search::SearchState2Core::isLosingState ( int  node_limit  )  [inline]

template<Player P>
bool osl::search::SearchState2Core::isWinningState ( int  node_limit,
Move checkmate_move,
AttackOracleAges age 
) [inline]

template<Player P>
bool osl::search::SearchState2Core::isWinningStateShort ( int  depth,
Move checkmate_move 
) [inline]

template<Player P>
bool osl::search::SearchState2Core::isThreatmateState ( int  node_limit,
Move threatmate_move,
AttackOracleAges age 
) [inline]

P μ֤Pζ̤˵ͤäƤ뤫ɤ

searchState2.h334 行で定義されています。

参照先 checkmate_searcher, current_state, currentHash(), path(), と search_assert.

参照元 osl::search::QuiescenceSearch2< EvalT >::staticValue().

template<Player P>
bool osl::search::SearchState2Core::isThreatmateStateShort ( int  depth,
Move threatmate_move 
) [inline]

bool osl::search::SearchState2Core::abort (  )  const

bool osl::search::SearchState2Core::abort ( Move  best_move  )  const [virtual]

bool osl::search::SearchState2Core::tryThreatmate (  )  const [inline]

void osl::search::SearchState2Core::makePV ( Move  m  )  [inline]

void osl::search::SearchState2Core::initPV (  )  [inline]

void osl::search::SearchState2Core::makePV ( PVVector parent,
Move  m,
PVVector pv 
) [static]

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

int osl::search::SearchState2Core::countCheckAfterThreatmate ( Player  turn,
int  depth = 1 
) const [inline]

int osl::search::SearchState2Core::countCheckAfterThreatmateSacrifice ( Player  turn,
int  depth = 1 
) const [inline]


フレンドと関連する関数

friend class AlphaBeta2Parallel [friend]

searchState2.h87 行で定義されています。

参照元 osl::search::AlphaBeta2Tree::AlphaBeta2Tree().

friend class Updator [friend]

searchState2.h238 行で定義されています。


変数

searchState2.h93 行で定義されています。

参照元 checkmateSearcher(), isLosingState(), isThreatmateState(), と isWinningState().

searchState2.h101 行で定義されています。

参照元 doUndoMoveLight(), doUndoMoveOrPass(), path(), popPass(), pushPass(), setHistory(), と setState().

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

参照元 curDepth(), setHistory(), と setState().

osl::search::AlphaBeta2Treeで再定義されています。

searchState2.h107 行で定義されています。

参照元 bigramKillerMove(), getBigramKillerMoves(), getKillerMoves(), setBigramKillerMove(), setKillerMove(), と setState().

CArray<PVVector,MaxDepth> osl::search::SearchState2Core::pv [protected]

CArray<NodeType,MaxDepth> osl::search::SearchState2Core::node_type [protected]

osl::CArray< int, osl::search::SearchState2Core::MaxDepth > osl::search::SearchState2Core::depth_node_count_quiesce [static]


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

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