All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
osl::search::AlphaBeta2Tree< EvalT > Class Template Reference

"tree" of AlphaBeta2, copied by split More...

#include <alphaBeta2.h>

Inheritance diagram for osl::search::AlphaBeta2Tree< EvalT >:
Inheritance graph
[legend]
Collaboration diagram for osl::search::AlphaBeta2Tree< EvalT >:
Collaboration graph
[legend]

List of all members.

Classes

struct  BetaCut
struct  NextMove
struct  NextQMove

Public Types

enum  { MaxDepth = SearchState2Core::MaxDepth }
typedef EvalT eval_t
typedef AlphaBeta2Common< EvalT > common_t
typedef AlphaBeta2Window Window

Public Member Functions

bool stopping () const
void testStop ()
size_t nodeCount () const
template<Player P>
const MoveLogProb nextMove ()

Static Public Member Functions

static int rootAlpha (Player P, int last_value, Progress16 progress)
static int stableThreshold (Player P, int last_value)

Protected Member Functions

 AlphaBeta2Tree (const NumEffectState &s, checkmate_t &checker, SimpleHashTable *t, CountRecorder &)
 AlphaBeta2Tree (const AlphaBeta2Tree &src, AlphaBeta2Parallel< EvalT > *)
 ~AlphaBeta2Tree ()
void updateRootPV (Player P, std::ostream &, int, Move)
void addMultiPV (Player P, int, Move)
bool isStable (Player P, int new_value) const
void showFailLow (int result, Move m) const
template<Player P>
int alphaBetaSearch (const MoveLogProb &move, Window window, bool in_pv)
 alphaBetaSearch (move)
template<Player P>
int alphaBetaSearchAfterMove (const MoveLogProb &move, Window window, bool in_pv)
template<Player P>
int quiesce (Window)
template<Player P>
int quiesceStable (Window)
template<Player P>
int quiesceExp (Window)
template<Player P>
int searchAllMoves (SimpleHashRecord *, Window w)
template<Player P>
int searchAllMoves (Move m, int limit_consumption, SimpleHashRecord *, Window w)
template<Player P>
bool tryCheckmate (SimpleHashRecord *record, bool in_pv, Move &checkmate_move)
 初めの方で詰みを読む
template<Player P>
bool tryCheckmateAgain (SimpleHashRecord *record, Move &checkmate_move, int node_count, int best_value)
 負けそうな時にさらに詰みを読む
template<Player P>
void testThreatmate (SimpleHashRecord *record, bool in_pv)
 詰めろの有無を確認
template<Player P>
void examineMovesRoot (const MoveLogProbVector &, size_t, Window, MoveLogProb &, int &)
 alpha値が求まった後で他の手を調べる
template<Player P>
int quiesceRoot (Window, int depth_left, Move &best_move, DualThreatmateState)
template<Player P>
int quiesce (Window, int depth_left, DualThreatmateState)
template<Player P>
bool quiesceWithMove (Move, Window &, int, Move &, int &, const DualThreatmateState &)
void updateCheckmateCount ()
bool tryPass (SimpleHashRecord *record, Player P) const
MoveGeneratormakeGenerator ()

Static Protected Member Functions

static MoveGeneratoralloc ()
static void dealloc (MoveGenerator *)

Protected Attributes

size_t node_count
 静止探索も含めたノード数
FixedCapacityVector
< MoveGenerator *, MaxDepth
generators
stat::Average mpn
stat::Average mpn_cut
stat::Average alpha_update
stat::Average last_alpha_update
stat::Average ext
stat::Average ext_limit
boost::shared_ptr
< AlphaBeta2Parallel< EvalT > > 
shared
boost::shared_ptr
< AlphaBeta2SharedRoot
shared_root

Static Protected Attributes

static CArray< int,
SearchState2Core::MaxDepth
depth_node_count

Private Member Functions

void throwStop ()
void showPV (std::ostream &, int, Move, char stable) const

Friends

struct NextMove< BLACK >
struct NextMove< WHITE >
struct NextQMove< BLACK >
struct NextQMove< WHITE >

Detailed Description

template<class EvalT>
class osl::search::AlphaBeta2Tree< EvalT >

"tree" of AlphaBeta2, copied by split

Definition at line 142 of file alphaBeta2.h.


Member Typedef Documentation

template<class EvalT>
typedef AlphaBeta2Common<EvalT> osl::search::AlphaBeta2Tree< EvalT >::common_t

Definition at line 148 of file alphaBeta2.h.

template<class EvalT>
typedef EvalT osl::search::AlphaBeta2Tree< EvalT >::eval_t
template<class EvalT>
typedef AlphaBeta2Window osl::search::AlphaBeta2Tree< EvalT >::Window

Reimplemented in osl::search::AlphaBeta2< EvalT >.

Definition at line 179 of file alphaBeta2.h.


Member Enumeration Documentation

template<class EvalT>
anonymous enum
Enumerator:
MaxDepth 

Definition at line 149 of file alphaBeta2.h.


Constructor & Destructor Documentation

template<class EvalT >
osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree ( const NumEffectState &  s,
checkmate_t checker,
SimpleHashTable t,
CountRecorder r 
) [protected]

Definition at line 75 of file alphaBeta2.cc.

References osl::search::AlphaBeta2Tree< EvalT >::shared.

template<class EvalT >
osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree ( const AlphaBeta2Tree< EvalT > &  src,
AlphaBeta2Parallel< EvalT > *   
) [protected]

Definition at line 103 of file alphaBeta2.cc.

References osl::search::SearchState2Core::pv.

template<class EvalT >
osl::search::AlphaBeta2Tree< EvalT >::~AlphaBeta2Tree ( ) [protected]

Definition at line 114 of file alphaBeta2.cc.


Member Function Documentation

template<class EvalT >
void osl::search::AlphaBeta2Tree< EvalT >::addMultiPV ( Player  P,
int  result,
Move  m 
) [protected]
template<class EvalT >
osl::search::MoveGenerator * osl::search::AlphaBeta2Tree< EvalT >::alloc ( ) [static, protected]

Definition at line 126 of file alphaBeta2.cc.

template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearch ( const MoveLogProb move,
Window  window,
bool  in_pv 
) [protected]
template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::alphaBetaSearchAfterMove ( const MoveLogProb move,
Window  window,
bool  in_pv 
) [protected]
template<class EvalT >
void osl::search::AlphaBeta2Tree< EvalT >::dealloc ( MoveGenerator p) [static, protected]

Definition at line 141 of file alphaBeta2.cc.

template<class EvalT >
template<osl::Player P>
template void osl::search::AlphaBeta2Tree< EvalT >::examineMovesRoot< WHITE > ( const MoveLogProbVector &  ,
size_t  ,
Window  ,
MoveLogProb ,
int &   
) [protected]
template<class EvalT>
bool osl::search::AlphaBeta2Tree< EvalT >::isStable ( Player  P,
int  new_value 
) const [protected]
template<class EvalT >
osl::search::MoveGenerator & osl::search::AlphaBeta2Tree< EvalT >::makeGenerator ( ) [protected]

Definition at line 147 of file alphaBeta2.cc.

template<class EvalT >
template<osl::Player P>
const osl::MoveLogProb osl::search::AlphaBeta2Tree< EvalT >::nextMove ( )
template<class EvalT>
size_t osl::search::AlphaBeta2Tree< EvalT >::nodeCount ( ) const [inline]

Definition at line 180 of file alphaBeta2.h.

References osl::search::AlphaBeta2Tree< EvalT >::node_count.

template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::quiesce ( Window  w) [protected]

Definition at line 958 of file alphaBeta2.cc.

template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::quiesce ( Window  w,
int  depth_left,
DualThreatmateState  parent_threatmate 
) [protected]
template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::quiesceExp ( Window  w) [protected]
template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::quiesceRoot ( Window  w,
int  depth_left,
Move best_move,
DualThreatmateState  threatmate 
) [protected]
template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::quiesceStable ( Window  w) [protected]
template<class EvalT >
template<osl::Player P>
bool osl::search::AlphaBeta2Tree< EvalT >::quiesceWithMove ( Move  move,
Window w,
int  depth_left,
Move best_move,
int &  best_value,
const DualThreatmateState threatmate 
) [protected]
template<class EvalT >
int osl::search::AlphaBeta2Tree< EvalT >::rootAlpha ( Player  P,
int  last_value,
Progress16  progress 
) [static]
template<class EvalT >
template<osl::Player P>
int osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves ( SimpleHashRecord record,
Window  w 
) [protected]
template<class EvalT >
template<osl::Player Turn>
int osl::search::AlphaBeta2Tree< EvalT >::searchAllMoves ( Move  m,
int  limit_consumption,
SimpleHashRecord record,
Window  w 
) [protected]
template<class EvalT >
void osl::search::AlphaBeta2Tree< EvalT >::showFailLow ( int  result,
Move  m 
) const [protected]

Definition at line 1412 of file alphaBeta2.cc.

References osl::newPtypeO(), osl::PAWN, osl::record::csa::show(), and osl::WHITE.

template<class EvalT >
void osl::search::AlphaBeta2Tree< EvalT >::showPV ( std::ostream &  os,
int  result,
Move  m,
char  stable 
) const [private]
template<class EvalT >
int osl::search::AlphaBeta2Tree< EvalT >::stableThreshold ( Player  P,
int  last_value 
) [static]
template<class EvalT>
bool osl::search::AlphaBeta2Tree< EvalT >::stopping ( ) const [inline]

Reimplemented from osl::search::SearchTimer.

Definition at line 169 of file alphaBeta2.h.

References osl::search::SearchState2Core::stop_tree.

template<class EvalT>
void osl::search::AlphaBeta2Tree< EvalT >::testStop ( ) [inline]
template<class EvalT >
template<osl::Player P>
void osl::search::AlphaBeta2Tree< EvalT >::testThreatmate ( SimpleHashRecord record,
bool  in_pv 
) [protected]
template<class EvalT>
void osl::search::AlphaBeta2Tree< EvalT >::throwStop ( ) [private]

Reimplemented from osl::search::SearchTimer.

template<class EvalT >
template<osl::Player P>
bool osl::search::AlphaBeta2Tree< EvalT >::tryCheckmate ( SimpleHashRecord record,
bool  in_pv,
Move checkmate_move 
) [protected]
template<class EvalT >
template<osl::Player P>
bool osl::search::AlphaBeta2Tree< EvalT >::tryCheckmateAgain ( SimpleHashRecord record,
Move checkmate_move,
int  node_count,
int  best_value 
) [protected]
template<class EvalT >
bool osl::search::AlphaBeta2Tree< EvalT >::tryPass ( SimpleHashRecord record,
Player  P 
) const [protected]
template<class EvalT >
void osl::search::AlphaBeta2Tree< EvalT >::updateCheckmateCount ( ) [protected]

Definition at line 1259 of file alphaBeta2.cc.

template<class EvalT >
void osl::search::AlphaBeta2Tree< EvalT >::updateRootPV ( Player  P,
std::ostream &  os,
int  result,
Move  m 
) [protected]

Friends And Related Function Documentation

template<class EvalT>
friend struct NextMove< BLACK > [friend]

Definition at line 194 of file alphaBeta2.h.

template<class EvalT>
friend struct NextMove< WHITE > [friend]

Definition at line 196 of file alphaBeta2.h.

template<class EvalT>
friend struct NextQMove< BLACK > [friend]

Definition at line 197 of file alphaBeta2.h.

template<class EvalT>
friend struct NextQMove< WHITE > [friend]

Definition at line 199 of file alphaBeta2.h.


Member Data Documentation

template<class EvalT>
stat::Average osl::search::AlphaBeta2Tree< EvalT >::alpha_update [protected]

Definition at line 154 of file alphaBeta2.h.

template<class EvalT>
osl::CArray< int, osl::search::SearchState2Core::MaxDepth > osl::search::AlphaBeta2Tree< EvalT >::depth_node_count [static, protected]

Definition at line 159 of file alphaBeta2.h.

template<class EvalT>
stat::Average osl::search::AlphaBeta2Tree< EvalT >::ext [protected]

Definition at line 155 of file alphaBeta2.h.

template<class EvalT>
stat::Average osl::search::AlphaBeta2Tree< EvalT >::ext_limit [protected]

Definition at line 155 of file alphaBeta2.h.

template<class EvalT>
FixedCapacityVector<MoveGenerator*, MaxDepth> osl::search::AlphaBeta2Tree< EvalT >::generators [protected]

Definition at line 153 of file alphaBeta2.h.

template<class EvalT>
stat::Average osl::search::AlphaBeta2Tree< EvalT >::last_alpha_update [protected]

Definition at line 154 of file alphaBeta2.h.

template<class EvalT>
stat::Average osl::search::AlphaBeta2Tree< EvalT >::mpn [protected]

Definition at line 154 of file alphaBeta2.h.

template<class EvalT>
stat::Average osl::search::AlphaBeta2Tree< EvalT >::mpn_cut [protected]

Definition at line 154 of file alphaBeta2.h.

template<class EvalT>
size_t osl::search::AlphaBeta2Tree< EvalT >::node_count [protected]

静止探索も含めたノード数

Definition at line 152 of file alphaBeta2.h.

Referenced by osl::search::AlphaBeta2Tree< EvalT >::nodeCount().

template<class EvalT>
boost::shared_ptr<AlphaBeta2Parallel<EvalT> > osl::search::AlphaBeta2Tree< EvalT >::shared [protected]

Reimplemented from osl::search::SearchState2Core.

Definition at line 156 of file alphaBeta2.h.

Referenced by osl::search::AlphaBeta2Tree< EvalT >::AlphaBeta2Tree().

template<class EvalT>
boost::shared_ptr<AlphaBeta2SharedRoot> osl::search::AlphaBeta2Tree< EvalT >::shared_root [protected]

Definition at line 157 of file alphaBeta2.h.

Referenced by osl::search::AlphaBeta2< EvalT >::sharedRootInfo().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines