クラス osl::search::AlphaBeta3

#include <alphaBeta3.h>

osl::search::AlphaBeta3に対する継承グラフ
Inheritance graph
[凡例]
osl::search::AlphaBeta3のコラボレーション図
Collaboration graph
[凡例]

すべてのメンバ一覧

構成

struct  CallQuiesce
struct  CallSearch
struct  PVInfo
struct  PVVector
struct  SearchInfo

Public 型

enum  MoveCategory {
  Initial, KingEscape, Pass, TakeBack,
  Capture, Killer, CaptureAll, All
}
enum  { MaxDepth = 64 }
enum  NodeType { PvNode = 0, CutNode = 1, AllNode = -1 }
typedef SearchState2::checkmate_t checkmate_t
typedef eval::ml::OpenMidEndingEval eval_t

Public メソッド

 AlphaBeta3 (const NumEffectState &s, checkmate_t &checker, SimpleHashTable *t, CountRecorder &)
 ~AlphaBeta3 ()
Move computeBestMoveIteratively (int limit, int step, int initial_limit=600, size_t node_limit=1600000, const TimeAssigned &assign=TimeAssigned(MilliSeconds::Interval(60 *1000)), MoveWithComment *additional_info=0)
bool isReasonableMove (Move move, int pawn_sacrifice=1)
void setRootIgnoreMoves (const MoveVector *rim, bool)
void setHistory (const MoveStack &h)
void enableMultiPV (unsigned int)

Static Public メソッド

static void showNodeDepth (std::ostream &)
static void clearNodeDepth ()
template<Player P>
static void generateAllMoves (const NumEffectState &state, const SearchInfo &, SearchInfo &)
template<Player P>
static void generateCapture (const NumEffectState &state, SearchInfo &)
template<Player P>
static void generateCaptureAll (const NumEffectState &state, SearchInfo &)
template<Player P>
static bool seePlusLight (const NumEffectState &state, Move m)

Private メソッド

Move searchRoot (int limit)
template<Player P>
int makeMoveAndSearch (Move, int consume)
template<Player P>
void presearch ()
template<Player P>
void search ()
template<Player P>
Move nextMove ()
template<Player P>
void quiesceRoot ()
template<Player P>
int makeMoveAndQuiesce (Move)
template<Player P>
void quiesce ()
bool reductionOk () const
int evalValue () const

Private 変数

volatile int stop_by_alarm
NumEffectState state
int depth
CountRecorderrecorder
SimpleHashTabletable_common

フレンド

class CallSearch< BLACK >
class CallSearch< WHITE >
class CallQuiesce< BLACK >
class CallQuiesce< WHITE >

説明

alphaBeta3.h21 行で定義されています。


型定義

alphaBeta3.h25 行で定義されています。

alphaBeta3.h26 行で定義されています。


列挙型

anonymous enum
列挙型の値:
MaxDepth 

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

列挙型の値:
Initial 
KingEscape 
Pass 
TakeBack 
Capture 
Killer 
CaptureAll 
All 

alphaBeta3.h46 行で定義されています。

列挙型の値:
PvNode 
CutNode 
AllNode 

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


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

osl::search::AlphaBeta3::AlphaBeta3 ( const NumEffectState &  s,
checkmate_t checker,
SimpleHashTable t,
CountRecorder r 
)

alphaBeta3.cc143 行で定義されています。

参照先 osl::rating::StandardFeatureSet::instance(), と MaxDepth.

osl::search::AlphaBeta3::~AlphaBeta3 (  ) 

alphaBeta3.cc154 行で定義されています。


関数

void osl::search::AlphaBeta3::clearNodeDepth (  )  [static]

alphaBeta3.cc262 行で定義されています。

osl::Move osl::search::AlphaBeta3::computeBestMoveIteratively ( int  limit,
int  step,
int  initial_limit = 600,
size_t  node_limit = 1600000,
const TimeAssigned assign = TimeAssigned(MilliSeconds::Interval(60*1000)),
MoveWithComment additional_info = 0 
)
void osl::search::AlphaBeta3::enableMultiPV ( unsigned  int  )  [inline]

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

int osl::search::AlphaBeta3::evalValue (  )  const [private]
template<osl::Player P>
void osl::search::AlphaBeta3::generateAllMoves ( const NumEffectState &  state,
const SearchInfo parent,
SearchInfo node 
) [inline, static]
template<osl::Player P>
void osl::search::AlphaBeta3::generateCapture ( const NumEffectState &  state,
SearchInfo node 
) [inline, static]
template<osl::Player P>
void osl::search::AlphaBeta3::generateCaptureAll ( const NumEffectState &  state,
SearchInfo node 
) [inline, static]
bool osl::search::AlphaBeta3::isReasonableMove ( Move  move,
int  pawn_sacrifice = 1 
)

alphaBeta3.cc243 行で定義されています。

template<osl::Player P>
int osl::search::AlphaBeta3::makeMoveAndQuiesce ( Move  move  )  [inline, private]

alphaBeta3.cc935 行で定義されています。

参照先 depth, と state.

template<osl::Player P>
int osl::search::AlphaBeta3::makeMoveAndSearch ( Move  move,
int  consume 
) [inline, private]
template<osl::Player P>
osl::Move osl::search::AlphaBeta3::nextMove (  )  [inline, private]
template<osl::Player P>
void osl::search::AlphaBeta3::presearch (  )  [inline, private]
template<osl::Player P>
void osl::search::AlphaBeta3::quiesce (  )  [inline, private]
template<osl::Player P>
void osl::search::AlphaBeta3::quiesceRoot (  )  [inline, private]
bool osl::search::AlphaBeta3::reductionOk (  )  const [inline, private]
template<osl::Player P>
void osl::search::AlphaBeta3::search (  )  [inline, private]

alphaBeta3.cc541 行で定義されています。

参照先 osl::stat::Average::add(), osl::search::CountRecorder::addNodeCount(), AllNode, osl::search::AlphaBeta3::SearchInfo::alpha, osl::search::CompactRecord::best_move, osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), osl::eval::ml::OpenMidEndingEval::captureValue(), osl::eval::delta(), depth, osl::search::AlphaBeta3::SearchInfo::eval, evalValue(), osl::search::CompactRecord::Exact, extended_futility_margin, extended_futility_pruning_enabled, futility_margin, futility_pruning_enabled, osl::search::AlphaBeta3::SearchInfo::hash_key, osl::search::AlphaBeta3::SearchInfo::height, osl::search::CompactRecord::highFail(), immediate_checkmate_enabled, osl::search::AlphaBeta3::SearchInfo::in_check, Initial, osl::Move::isNormal(), Killer, osl::search::CompactRecord::limit, osl::search::CompactRecord::LowerBound, osl::search::CompactRecord::lowFail(), osl::search::FixedEval::minusInfty(), osl::search::AlphaBeta3::SearchInfo::move_type, osl::search::AlphaBeta3::SearchInfo::moved, osl::search::AlphaBeta3::SearchInfo::moves_tried, osl::search::AlphaBeta3::SearchInfo::node_type, Pass, osl::search::CompactHashTable::probe(), osl::search::AlphaBeta3::SearchInfo::pv, PvNode, recorder, osl::search::AlphaBeta3::SearchInfo::search_value, osl::search::KillerMoveTable::setMove(), osl::search::BigramKillerMove::setMove(), osl::search::AlphaBeta3::PVVector::setPV(), state, osl::search::CompactHashTable::store(), table_record_limit, osl::search::CompactRecord::type, osl::search::CompactRecord::UpperBound, osl::search::CompactRecord::value, と osl::search::FixedEval::winByCheckmate().

osl::Move osl::search::AlphaBeta3::searchRoot ( int  limit  )  [private]

alphaBeta3.cc268 行で定義されています。

参照先 AllNode, osl::search::SimpleHashTable::allocate(), osl::search::AlphaBeta3::SearchInfo::alpha, osl::alt(), osl::search::CompactRecord::best_move, osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), osl::BLACK, osl::search::ShouldPromoteCut::canIgnoreAndNotDrop(), decorate_csa_in_pv, osl::eval::delta(), depth, osl::search::AlphaBeta3::SearchInfo::eval, osl::search::CompactRecord::Exact, osl::find(), osl::move_generator::capture::generate(), osl::rating::FeatureSet::generateRating(), osl::search::AlphaBeta3::SearchInfo::hash_key, osl::search::AlphaBeta3::SearchInfo::height, osl::rating::StandardFeatureSet::instance(), osl::Move::isNormal(), osl::search::CompactRecord::limit, osl::search::FixedEval::minusInfty(), osl::search::AlphaBeta3::SearchInfo::moved, moves, osl::search::AlphaBeta3::SearchInfo::moves, osl::search::AlphaBeta3::SearchInfo::node_type, osl::Move::PASS(), osl::search::AlphaBeta3::SearchInfo::path, osl::search::CompactHashTable::probe(), osl::search::AlphaBeta3::SearchInfo::pv, PvNode, recorder, osl::search::CountRecorder::resetNodeCount(), osl::search::SimpleHashRecord::setLowerBound(), osl::search::AlphaBeta3::PVVector::setPV(), osl::record::csa::show(), show_height_in_pv, state, osl::search::CompactHashTable::store(), table_common, osl::search::CompactRecord::type, osl::search::CompactRecord::value, と osl::search::SimpleHashTable::verboseLevel().

参照元 computeBestMoveIteratively().

template<osl::Player P>
bool osl::search::AlphaBeta3::seePlusLight ( const NumEffectState &  state,
Move  m 
) [inline, static]
void osl::search::AlphaBeta3::setHistory ( const MoveStack &  h  ) 

alphaBeta3.cc253 行で定義されています。

void osl::search::AlphaBeta3::setRootIgnoreMoves ( const MoveVector *  rim,
bool   
)

alphaBeta3.cc249 行で定義されています。

void osl::search::AlphaBeta3::showNodeDepth ( std::ostream &   )  [static]

alphaBeta3.cc258 行で定義されています。


フレンドと関連する関数

friend class CallQuiesce< BLACK > [friend]

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

friend class CallQuiesce< WHITE > [friend]

alphaBeta3.h88 行で定義されています。

friend class CallSearch< BLACK > [friend]

alphaBeta3.h84 行で定義されています。

friend class CallSearch< WHITE > [friend]

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


変数

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

参照元 computeBestMoveIteratively(), quiesce(), search(), と searchRoot().

NumEffectState osl::search::AlphaBeta3::state [private]

alphaBeta3.h98 行で定義されています。

参照元 evalValue().

alphaBeta3.h102 行で定義されています。

参照元 computeBestMoveIteratively(), と searchRoot().


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