SearchFramework のうち,template parameter を含まない部分. More...
#include <searchState2.h>
Public Member Functions | |
SearchState2 (const NumEffectState &s, checkmate_t &checker) | |
virtual | ~SearchState2 () |
void | setState (const NumEffectState &s) |
state のコピーを行う. More... | |
void | setKillerMove (Move best_move) |
int | curLimit () const |
bool | abort (Move) const |
![]() | |
SearchState2Core (const NumEffectState &s, checkmate_t &checker) | |
virtual | ~SearchState2Core () |
int | curDepth () const |
void | setHistory (const MoveStack &h) |
bool | hasLastRecord (unsigned int n=0) const |
SimpleHashRecord * | lastRecord (unsigned int n=0) |
const SimpleHashRecord * | lastRecord (unsigned int n=0) const |
SimpleHashRecord * | rootRecord () |
void | setCurrentRecord (SimpleHashRecord *r) |
void | setRootRecord (SimpleHashRecord *root) |
void | setKillerMove (Move best_move) |
void | getBigramKillerMoves (MoveVector &moves) const |
void | getKillerMoves (MoveVector &moves) const |
const BigramKillerMove & | bigramKillerMove () const |
void | setBigramKillerMove (const BigramKillerMove &killers) |
HistoryTable & | historyTable () |
const HistoryTable & | historyTable () const |
void | pushPass () |
void | popPass () |
template<Player P, class Function > | |
void | doUndoMoveOrPass (const HashKey &new_hash, Move move, Function &f) |
まともなdoUndo More... | |
void | makeMove (Move move) |
const Move | lastMove (int i=1) const |
const MoveStack & | history () const |
const RecordStack2 & | recordHistory () const |
const PathEncoding & | path () const |
const NumEffectState & | state () const |
const NumEffectState & | rootState () const |
void | restoreRootState () |
const checkmate_t & | checkmateSearcher () const |
const RepetitionCounter & | repetitionCounter () const |
const HashKey & | currentHash () const |
template<Player P, class Function > | |
void | doUndoMoveLight (Move move, Function &f) |
軽量化版 doUndo 千日手情報や, hash を更新しない More... | |
template<Player P> | |
bool | isLosingState (int node_limit) |
template<Player P> | |
bool | isWinningState (int node_limit, Move &checkmate_move, bool parallel=false) |
template<Player P> | |
bool | isWinningStateShort (int depth, Move &checkmate_move) |
FixedDepthSearcher を呼ぶ More... | |
template<Player P> | |
bool | isThreatmateState (int node_limit, Move &threatmate_move, bool=false) |
P の手番でPの玉に詰めろがかかっているかどうか More... | |
template<Player P> | |
bool | isThreatmateStateShort (int depth, Move &threatmate_move) |
bool | abort () const |
bool | tryThreatmate () const |
void | makePV (Move m) |
void | initPV () |
void | makePV (PVVector &parent, Move m, PVVector &pv) const |
int | countCheckAfterThreatmate (Player turn, int depth=1) const |
turn の側が連続王手で詰ろを逃れている回数 More... | |
int | countCheckAfterThreatmateSacrifice (Player turn, int depth=1) const |
Static Public Attributes | |
static const int | ReSearchLimitMargin = 80 |
再探索や,指手生成でより確率の高い手があったときに無視する範囲 More... | |
![]() | |
static CArray< int, MaxDepth > | depth_node_count_quiesce |
Protected Member Functions | |
void | setRoot (int limit) |
root で limitを閾値に探索を始めることを設定 More... | |
void | addLimit (int limit) |
void | subLimit (int limit) |
int | countSacrificeCheck2 (int history_max) const |
王手の捨て駒の連続を2ループまで数える More... | |
void | checkPointSearchAllMoves () |
debug 用途 More... | |
Protected Attributes | |
int | root_limit |
int | cur_limit |
![]() | |
NumEffectState | current_state |
NumEffectState | root_state |
checkmate_t * | checkmate_searcher |
PathEncoding | current_path |
MoveStack | move_history |
int | root_depth |
RecordStack2 | record_stack |
RepetitionCounter | repetition_counter |
boost::shared_ptr < SearchState2Shared > | shared |
CArray< PVVector, MaxDepth > | pv |
CArray< NodeType, MaxDepth > | node_type |
Additional Inherited Members | |
![]() | |
enum | { MaxDepth = 64 } |
typedef DualDfpn | checkmate_t |
typedef FixedCapacityVector < Move, MaxDepth > | PVVector |
![]() | |
template<Player P> | |
static bool | isWinningState (checkmate_t &search, NumEffectState &state, const HashKey &key, PathEncoding path, int node_limit, Move &checkmate_move, Move last_move, bool=false) |
static bool | isWinningState (checkmate_t &search, NumEffectState &state, const HashKey &key, PathEncoding path, int node_limit, Move &checkmate_move, Move last_move, bool parallel=false) |
![]() | |
volatile bool | stop_tree |
beta cut in parallel search More... | |
![]() | |
enum | NodeType { PvNode = 0, AllNode = 1, CutNode = -1 } |
SearchFramework のうち,template parameter を含まない部分.
Definition at line 495 of file searchState2.h.
osl::search::SearchState2::SearchState2 | ( | const NumEffectState & | s, |
checkmate_t & | checker | ||
) |
Definition at line 179 of file searchState2.cc.
|
virtual |
Definition at line 185 of file searchState2.cc.
|
virtual |
Reimplemented from osl::search::SearchState2Core.
Definition at line 203 of file searchState2.cc.
References osl::search::SearchState2Core::abort().
|
inlineprotected |
Definition at line 528 of file searchState2.h.
References cur_limit, limit, and search_assert.
|
protected |
debug 用途
Definition at line 212 of file searchState2.cc.
|
protected |
王手の捨て駒の連続を2ループまで数える
history_max | これ以上を逆上らない |
Definition at line 197 of file searchState2.cc.
References osl::search::SacrificeCheck::count2().
|
inline |
Definition at line 515 of file searchState2.h.
References cur_limit.
|
inline |
Definition at line 508 of file searchState2.h.
References osl::Move::isPass(), and osl::search::SearchState2Core::setKillerMove().
|
inlineprotected |
root で limitを閾値に探索を始めることを設定
Definition at line 523 of file searchState2.h.
References cur_limit, limit, and root_limit.
Referenced by osl::search::AlphaBeta2< EvalT >::setRoot().
|
virtual |
state のコピーを行う.
this->state は探索終了後も保存されるが,探索中に exception が起こると 破壊されている
Reimplemented from osl::search::SearchState2Core.
Definition at line 190 of file searchState2.cc.
References osl::search::SearchState2Core::setState().
|
inlineprotected |
Definition at line 529 of file searchState2.h.
References cur_limit, limit, and search_assert.
|
protected |
Definition at line 502 of file searchState2.h.
Referenced by addLimit(), curLimit(), setRoot(), and subLimit().
|
static |
再探索や,指手生成でより確率の高い手があったときに無視する範囲
Definition at line 499 of file searchState2.h.
|
protected |
Definition at line 501 of file searchState2.h.
Referenced by setRoot().