#include <ntesukiSearcher.h>
Classes | |
class | AttackHelper |
class | CallSimulationAttack |
class | CallSimulationDefense |
class | CallSimulationDefenseDisproof |
class | DefenseHelper |
Public Types | |
typedef NumEffectState | State |
Public Member Functions | |
NtesukiSearcher (State &state, NtesukiMoveGenerator *mg, unsigned int table_limit, volatile int *stop_flag, bool verbose, int maxPass=NtesukiRecord::SIZE, NtesukiRecord::IWScheme iwscheme=NtesukiRecord::pn_iw, NtesukiRecord::PSScheme psscheme=NtesukiRecord::no_ps, NtesukiRecord::ISScheme isscheme=NtesukiRecord::no_is, int tsumero_cost=0, int tsumero_estimate=0, double gc_ratio=0.33) | |
~NtesukiSearcher () | |
template<Player T> | |
int | search () |
int | searchSlow (Player attacker, int rnl=160000) |
NtesukiTable & | getTable () |
int | getNodeCount () const |
bool | exceedReadNodeLimit () const |
Static Public Attributes | |
static bool | delay_non_pass = false |
探索のふるまいを制御する変数. | |
static bool | ptt_invalid_defense = false |
static bool | delay_interpose = false |
static bool | delay_nopromote = false |
static bool | delay_non_attack = false |
static bool | read_attack_only = false |
static bool | ptt_non_attack = false |
static bool | ptt_siblings_fail = false |
static bool | ptt_siblings_success = false |
static bool | ptt_uncle = false |
static bool | ptt_aunt = false |
static unsigned int | dynamic_widening_width = 0 |
static const int | NtesukiNotFound = -1 |
static const int | ReadLimitReached = -2 |
static const int | TableLimitReached = -3 |
Private Types | |
typedef std::vector< Move > | moves_t |
ルートから現在探索中のノードまでの move. | |
typedef std::vector < NtesukiRecord * > | nodes_t |
ルートから現在探索中のノードまでの局面. | |
Private Member Functions | |
template<Player T> | |
NtesukiResult | attack (NtesukiRecord *record, const NtesukiRecord *oracle_attack, const NtesukiRecord *oracle_defense, unsigned int proofLimit, unsigned int disproofLimit, int pass_left, const Move last_move) |
攻撃側の処理 | |
template<Player T> | |
void | attackWithOrder (NtesukiRecord *record, const NtesukiRecord *oracle_attack, const NtesukiRecord *oracle_defense, unsigned int proofLimit, unsigned int disproofLimit, int pass_left, const Move last_move) |
template<Player T> | |
NtesukiMove * | selectMoveAttack (NtesukiRecord *record, unsigned int &best_proof, unsigned int &sum_disproof, unsigned int &second_proof, unsigned int &best_disproof, unsigned int &step_cost, NtesukiMoveList &moves, const int pass_left) |
template<Player T> | |
NtesukiResult | defense (NtesukiRecord *record, const NtesukiRecord *oracle_attack, const NtesukiRecord *oracle_defense, unsigned int proofLimit, unsigned int disproofLimit, int pass_left, const Move last_move) |
防御に関する計算 | |
template<Player T> | |
void | defenseWithPlayer (NtesukiRecord *record, const NtesukiRecord *oracle_attack, const NtesukiRecord *oracle_defense, unsigned int proofLimit, unsigned int disproofLimit, int pass_left, const Move last_move) |
template<Player T> | |
NtesukiMove * | selectMoveDefense (NtesukiRecord *record, unsigned int &best_disproof, unsigned int &sum_proof, unsigned int &second_disproof, unsigned int &best_proof, unsigned int &step_cost, NtesukiMoveList &moves, const int pass_left, const Move last_move) |
template<Player T> | |
void | simulateSiblingsSuccess (NtesukiRecord *record, NtesukiRecord *record_best, int pass_left, unsigned int &success_count, unsigned int &total_count) |
受け手番で,ある手が Success だとわかった場合, 他の手も同様に Success にならないか Simulaition で調べる. | |
template<Player T> | |
void | simulateSiblingsFail (NtesukiRecord *record, NtesukiRecord *record_best, int pass_left, unsigned int &success_count, unsigned int &total_count) |
攻め手番で,ある手が Fail だとわかった場合, 他の手も同様に Fail にならないか Simulaition で調べる. | |
template<Player T> | |
void | handleNonAttack (NtesukiRecord *record, int pass_left) |
攻めになっていない手を除く. | |
template<Player T> | |
void | handleTonshi (NtesukiRecord *record, int pass_left, const Move last_move) |
頓死がないか調べる. | |
template<Player T> | |
void | handleInterpose (NtesukiRecord *record, int pass_left) |
無駄合候補が本当に無駄合が調べる. | |
Private Attributes | |
State & | state |
NtesukiMoveGenerator * | mg |
手生成器. | |
NtesukiTable | table |
トランスポジションテーブル. | |
NtesukiSimulationSearcher | simulator |
シミュレーション探索器. | |
unsigned int | node_count |
現在までに何ノード読んだか. | |
unsigned int | read_node_limit |
最大何ノードまで読むか. | |
bool | verbose |
経過をどこまで表示するか. | |
volatile int * | stop_flag |
探索を途中で強制的に終了させるための flag. | |
PathEncoding | path |
ルートから現在探索中のノードまでの path の hash値. | |
moves_t | moves_played |
nodes_t | nodes_played |
unsigned int | max_pass |
λオーダ | |
NtesukiRecord::IWScheme | iwscheme |
Iterative widening の scheme. | |
NtesukiRecord::PSScheme | psscheme |
Player selection の scheme. | |
NtesukiRecord::ISScheme | isscheme |
Inversion searching の scheme. | |
int | tsumero_cost |
詰めろな手に関する cost | |
int | tsumero_estimate |
詰めろな手に関する証明数の予測値 | |
double | gc_ratio |
GC の際にテーブル をどこまで小さくするか | |
unsigned int | blockByAttackBack |
unsigned int | blockByPass |
unsigned int | attack_node_count |
unsigned int | attack_node_under_attack_count |
unsigned int | attack_node_moves_count |
unsigned int | defense_node_count |
unsigned int | defense_node_under_attack_count |
unsigned int | defense_node_moves_count |
unsigned int | pass_count |
unsigned int | pass_success_count |
unsigned int | pass_attack_count |
unsigned int | pass_attack_success_count |
unsigned int | sibling_defense_count |
unsigned int | sibling_defense_success_count |
unsigned int | sibling_attack_count |
unsigned int | sibling_attack_success_count |
unsigned int | isshogi_defense_count |
unsigned int | isshogi_defense_success_count |
unsigned int | isshogi_attack_count |
unsigned int | isshogi_attack_success_count |
unsigned int | immediate_win |
unsigned int | immediate_lose |
unsigned int | attack_back_count |
unsigned int | proof_without_inversion_count |
unsigned int | proof_AND_count |
unsigned int | disproof_by_inversion_count |
Static Private Attributes | |
static const unsigned int | INITIAL_PROOF_LIMIT |
static const unsigned int | INITIAL_DISPROOF_LIMIT |
Definition at line 20 of file ntesukiSearcher.h.
typedef std::vector<Move> osl::ntesuki::NtesukiSearcher::moves_t [private] |
ルートから現在探索中のノードまでの move.
Definition at line 54 of file ntesukiSearcher.h.
typedef std::vector<NtesukiRecord *> osl::ntesuki::NtesukiSearcher::nodes_t [private] |
ルートから現在探索中のノードまでの局面.
Definition at line 58 of file ntesukiSearcher.h.
typedef NumEffectState osl::ntesuki::NtesukiSearcher::State |
Definition at line 24 of file ntesukiSearcher.h.
osl::ntesuki::NtesukiSearcher::NtesukiSearcher | ( | State & | state, |
NtesukiMoveGenerator * | mg, | ||
unsigned int | table_limit, | ||
volatile int * | stop_flag, | ||
bool | verbose, | ||
int | maxPass = NtesukiRecord::SIZE , |
||
NtesukiRecord::IWScheme | iwscheme = NtesukiRecord::pn_iw , |
||
NtesukiRecord::PSScheme | psscheme = NtesukiRecord::no_ps , |
||
NtesukiRecord::ISScheme | isscheme = NtesukiRecord::no_is , |
||
int | tsumero_cost = 0 , |
||
int | tsumero_estimate = 0 , |
||
double | gc_ratio = 0.33 |
||
) |
Definition at line 44 of file ntesukiSearcher.cc.
References osl::ntesuki::NtesukiRecord::confluence_count, delay_interpose, delay_non_attack, delay_non_pass, delay_nopromote, osl::ntesuki::NtesukiRecord::fixed_search_depth, osl::ntesuki::NtesukiRecord::inversion_cost, mg, osl::ntesuki::NtesukiRecord::mg, ptt_invalid_defense, ptt_non_attack, ptt_siblings_fail, ptt_siblings_success, ptt_uncle, read_attack_only, osl::ntesuki::NtesukiRecord::SIZE, osl::ntesuki::NtesukiRecord::split_count, state, osl::ntesuki::NtesukiRecord::state, table, osl::ntesuki::NtesukiRecord::table, and osl::ntesuki::NtesukiRecord::use_dominance.
Definition at line 140 of file ntesukiSearcher.cc.
References osl::ntesuki::NtesukiRecord::confluence_count, osl::ntesuki::NtesukiRecord::split_count, and verbose.
NtesukiResult osl::ntesuki::NtesukiSearcher::attack | ( | NtesukiRecord * | record, |
const NtesukiRecord * | oracle_attack, | ||
const NtesukiRecord * | oracle_defense, | ||
unsigned int | proofLimit, | ||
unsigned int | disproofLimit, | ||
int | pass_left, | ||
const Move | last_move | ||
) | [private] |
攻撃側の処理
Definition at line 392 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::D, osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::isInvalid(), osl::eval::min(), ntesuki_assert, RETURN, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setUpNode(), and TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::attackWithOrder | ( | NtesukiRecord * | record, |
const NtesukiRecord * | oracle_attack, | ||
const NtesukiRecord * | oracle_defense, | ||
unsigned int | proofLimit, | ||
unsigned int | disproofLimit, | ||
int | pass_left, | ||
const Move | last_move | ||
) | [private] |
Definition at line 526 of file ntesukiSearcher.tcc.
References addWithSaturation(), CATCH_DFPN, osl::D, osl::ntesuki::NtesukiRecord::generateMoves(), osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::isCheck(), osl::ntesuki::NtesukiMove::isCheckmateSuccess(), osl::ntesuki::NtesukiMove::isInvalid(), osl::eval::min(), moves, ntesuki_assert, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::rzone_move_generation, osl::ntesuki::NtesukiMove::setCheckmateFail(), osl::ntesuki::NtesukiMove::setCheckmateSuccess(), osl::ntesuki::NtesukiMove::setPawnDropCheckmate(), osl::ntesuki::NtesukiRecord::setResult(), and TRY_DFPN.
NtesukiResult osl::ntesuki::NtesukiSearcher::defense | ( | NtesukiRecord * | record, |
const NtesukiRecord * | oracle_attack, | ||
const NtesukiRecord * | oracle_defense, | ||
unsigned int | proofLimit, | ||
unsigned int | disproofLimit, | ||
int | pass_left, | ||
const Move | last_move | ||
) | [private] |
防御に関する計算
Definition at line 1215 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::D, osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiRecord::getValueAnd(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::isInvalid(), ntesuki_assert, RETURN, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setUpNode(), and TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::defenseWithPlayer | ( | NtesukiRecord * | record, |
const NtesukiRecord * | oracle_attack, | ||
const NtesukiRecord * | oracle_defense, | ||
unsigned int | proofLimit, | ||
unsigned int | disproofLimit, | ||
int | pass_left, | ||
const Move | last_move | ||
) | [private] |
Definition at line 1322 of file ntesukiSearcher.tcc.
References addWithSaturation(), CATCH_DFPN, osl::ntesuki::NtesukiRecord::do_oracle_attack, osl::ntesuki::NtesukiRecord::do_oracle_aunt, osl::ntesuki::NtesukiRecord::generateMoves(), osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::isCheck(), osl::ntesuki::NtesukiMove::isCheckmateFail(), osl::ntesuki::NtesukiRecord::isLoopWithPath(), osl::ntesuki::NtesukiMove::isPass(), osl::ntesuki::NtesukiRecord::isVisited(), osl::eval::min(), moves, ntesuki_assert, osl::Move::PASS(), RETURN_ON_STOP, osl::ntesuki::NtesukiMove::setBySimulation(), osl::ntesuki::NtesukiMove::setCheckmateFail(), osl::ntesuki::NtesukiMove::setCheckmateSuccess(), osl::ntesuki::NtesukiRecord::setLoopWithPath(), osl::ntesuki::NtesukiRecord::setNtesuki(), osl::ntesuki::NtesukiRecord::setResult(), and TRY_DFPN.
bool osl::ntesuki::NtesukiSearcher::exceedReadNodeLimit | ( | ) | const [inline] |
Definition at line 272 of file ntesukiSearcher.h.
int osl::ntesuki::NtesukiSearcher::getNodeCount | ( | ) | const [inline] |
Definition at line 271 of file ntesukiSearcher.h.
Definition at line 188 of file ntesukiSearcher.cc.
void osl::ntesuki::NtesukiSearcher::handleInterpose | ( | NtesukiRecord * | record, |
int | pass_left | ||
) | [private] |
無駄合候補が本当に無駄合が調べる.
Definition at line 2153 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiRecord::getValue(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::isInvalid(), moves, ntesuki_assert, RETURN_ON_STOP, and TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::handleNonAttack | ( | NtesukiRecord * | record, |
int | pass_left | ||
) | [private] |
攻めになっていない手を除く.
Definition at line 1133 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiRecord::isVisited(), moves, ntesuki_assert, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setLoopWithPath(), and TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::handleTonshi | ( | NtesukiRecord * | record, |
int | pass_left, | ||
const Move | last_move | ||
) | [private] |
頓死がないか調べる.
Definition at line 2038 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::D, osl::ntesuki::NtesukiRecord::distance, osl::ntesuki::NtesukiRecord::getValueWithPath(), ratio, READ_ATTACK_BACK_LIMIT, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setResult(), and TRY_DFPN.
template int osl::ntesuki::NtesukiSearcher::search< WHITE > | ( | ) |
Definition at line 2224 of file ntesukiSearcher.tcc.
References osl::D, osl::ntesuki::NtesukiRecord::getValue(), osl::Move::INVALID(), ntesuki_assert, result, verbose, and osl::WHITE.
int osl::ntesuki::NtesukiSearcher::searchSlow | ( | Player | attacker, |
int | rnl = 160000 |
||
) | [inline] |
Definition at line 261 of file ntesukiSearcher.h.
References osl::BLACK.
osl::ntesuki::NtesukiMove * osl::ntesuki::NtesukiSearcher::selectMoveAttack | ( | NtesukiRecord * | record, |
unsigned int & | best_proof, | ||
unsigned int & | sum_disproof, | ||
unsigned int & | second_proof, | ||
unsigned int & | best_disproof, | ||
unsigned int & | step_cost, | ||
NtesukiMoveList & | moves, | ||
const int | pass_left | ||
) | [private] |
Definition at line 801 of file ntesukiSearcher.tcc.
References addWithSaturation(), CATCH_DFPN, osl::ntesuki::NtesukiRecord::distance, osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiMove::getOrder(), osl::ntesuki::NtesukiRecord::getValueAnd(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::h_a_disproof, osl::ntesuki::NtesukiMove::h_a_proof, osl::ntesuki::NtesukiRecord::is_split, osl::ntesuki::NtesukiMove::isCheck(), osl::ntesuki::NtesukiMove::isCheckmateFail(), osl::ntesuki::NtesukiMove::isLameLong(), osl::ntesuki::NtesukiMove::isNoPromote(), osl::ntesuki::NtesukiMove::isPass(), osl::ntesuki::NtesukiMove::isPawnDropCheckmate(), osl::ntesuki::NtesukiRecord::isVisited(), osl::eval::max(), osl::eval::min(), ntesuki_assert, osl::ntesuki::NtesukiRecord::readNonAttack(), RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::rzone_move_generation, osl::ntesuki::NtesukiMove::setCheckmateFail(), osl::ntesuki::NtesukiMove::setCheckmateSuccess(), osl::ntesuki::NtesukiRecord::setLoopWithPath(), osl::ntesuki::NtesukiMove::setPawnDropCheckmate(), osl::ntesuki::NtesukiRecord::setReadNonAttack(), osl::ntesuki::NtesukiRecord::setResult(), osl::ntesuki::NtesukiRecord::setUseOld(), sorter(), TRY_DFPN, and osl::ntesuki::NtesukiRecord::useOld().
osl::ntesuki::NtesukiMove * osl::ntesuki::NtesukiSearcher::selectMoveDefense | ( | NtesukiRecord * | record, |
unsigned int & | best_disproof, | ||
unsigned int & | sum_proof, | ||
unsigned int & | second_disproof, | ||
unsigned int & | best_proof, | ||
unsigned int & | step_cost, | ||
NtesukiMoveList & | moves, | ||
const int | pass_left, | ||
const Move | last_move | ||
) | [private] |
Definition at line 1676 of file ntesukiSearcher.tcc.
References addWithSaturation(), CATCH_DFPN, osl::ntesuki::NtesukiRecord::distance, osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::h_d_disproof, osl::ntesuki::NtesukiMove::h_d_proof, osl::ntesuki::NtesukiRecord::is_split, osl::ntesuki::NtesukiMove::isCheck(), osl::ntesuki::NtesukiMove::isCheckmateFail(), osl::ntesuki::NtesukiMove::isCheckmateSuccess(), osl::ntesuki::NtesukiMove::isInterpose(), osl::ntesuki::NtesukiMove::isLameLong(), osl::ntesuki::NtesukiRecord::isLoopWithPath(), osl::ntesuki::NtesukiMove::isPass(), osl::ntesuki::NtesukiRecord::isVisited(), osl::eval::max(), osl::eval::min(), ntesuki_assert, osl::Move::PASS(), osl::ntesuki::NtesukiRecord::readCheckDefense(), osl::ntesuki::NtesukiRecord::readInterpose(), RETURN_ON_STOP, osl::ntesuki::NtesukiMove::setCheckmateFail(), osl::ntesuki::NtesukiMove::setCheckmateSuccess(), osl::ntesuki::NtesukiRecord::setLoopWithPath(), osl::ntesuki::NtesukiRecord::setNtesuki(), osl::ntesuki::NtesukiRecord::setReadInterpose(), osl::ntesuki::NtesukiRecord::setResult(), osl::ntesuki::NtesukiRecord::setUseOld(), sorter(), TRY_DFPN, and osl::ntesuki::NtesukiRecord::useOld().
void osl::ntesuki::NtesukiSearcher::simulateSiblingsFail | ( | NtesukiRecord * | record, |
NtesukiRecord * | record_best, | ||
int | pass_left, | ||
unsigned int & | success_count, | ||
unsigned int & | total_count | ||
) | [private] |
攻め手番で,ある手が Fail だとわかった場合, 他の手も同様に Fail にならないか Simulaition で調べる.
Definition at line 302 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::isCheckmateFail(), osl::ntesuki::NtesukiRecord::isVisited(), moves, ntesuki_assert, RETURN_ON_STOP, osl::ntesuki::NtesukiMove::setBySimulation(), osl::ntesuki::NtesukiMove::setCheckmateFail(), and TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::simulateSiblingsSuccess | ( | NtesukiRecord * | record, |
NtesukiRecord * | record_best, | ||
int | pass_left, | ||
unsigned int & | success_count, | ||
unsigned int & | total_count | ||
) | [private] |
受け手番で,ある手が Success だとわかった場合, 他の手も同様に Success にならないか Simulaition で調べる.
現在 $^n$ 探索中の場合には,原則 $^(n-1)$ move の場合には調べない.
e.g. 必至探索中には王手は調べない.
Definition at line 2090 of file ntesukiSearcher.tcc.
References CATCH_DFPN, osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValue(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiRecord::isVisited(), moves, ntesuki_assert, RETURN_ON_STOP, osl::ntesuki::NtesukiMove::setBySimulation(), osl::ntesuki::NtesukiMove::setCheckmateSuccess(), and TRY_DFPN.
unsigned int osl::ntesuki::NtesukiSearcher::attack_back_count [private] |
Definition at line 125 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::attack_node_count [private] |
Definition at line 112 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::attack_node_moves_count [private] |
Definition at line 114 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::attack_node_under_attack_count [private] |
Definition at line 113 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::blockByAttackBack [private] |
Definition at line 107 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::blockByPass [private] |
Definition at line 111 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::defense_node_count [private] |
Definition at line 115 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::defense_node_moves_count [private] |
Definition at line 117 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::defense_node_under_attack_count [private] |
Definition at line 116 of file ntesukiSearcher.h.
bool osl::ntesuki::NtesukiSearcher::delay_interpose = false [static] |
Definition at line 72 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::delay_non_attack = false [static] |
Definition at line 74 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::delay_non_pass = false [static] |
bool osl::ntesuki::NtesukiSearcher::delay_nopromote = false [static] |
Definition at line 73 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::disproof_by_inversion_count [private] |
Definition at line 126 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::dynamic_widening_width = 0 [static] |
Definition at line 84 of file ntesukiSearcher.h.
double osl::ntesuki::NtesukiSearcher::gc_ratio [private] |
GC の際にテーブル をどこまで小さくするか
Definition at line 101 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::immediate_lose [private] |
Definition at line 124 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::immediate_win [private] |
Definition at line 124 of file ntesukiSearcher.h.
const unsigned int osl::ntesuki::NtesukiSearcher::INITIAL_DISPROOF_LIMIT [static, private] |
ProofDisproof::DISPROOF_LIMIT / 4
Definition at line 135 of file ntesukiSearcher.h.
const unsigned int osl::ntesuki::NtesukiSearcher::INITIAL_PROOF_LIMIT [static, private] |
ProofDisproof::PROOF_LIMIT / 4
Definition at line 133 of file ntesukiSearcher.h.
Inversion searching の scheme.
Definition at line 92 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_attack_count [private] |
Definition at line 123 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_attack_success_count [private] |
Definition at line 123 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_defense_count [private] |
Definition at line 122 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_defense_success_count [private] |
Definition at line 122 of file ntesukiSearcher.h.
Iterative widening の scheme.
Definition at line 88 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::max_pass [private] |
λオーダ
Definition at line 62 of file ntesukiSearcher.h.
Definition at line 55 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::node_count [private] |
現在までに何ノード読んだか.
Definition at line 39 of file ntesukiSearcher.h.
Definition at line 59 of file ntesukiSearcher.h.
const int osl::ntesuki::NtesukiSearcher::NtesukiNotFound = -1 [static] |
Definition at line 129 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::pass_attack_count [private] |
Definition at line 119 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::pass_attack_success_count [private] |
Definition at line 119 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::pass_count [private] |
Definition at line 118 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::pass_success_count [private] |
Definition at line 118 of file ntesukiSearcher.h.
ルートから現在探索中のノードまでの path の hash値.
Definition at line 51 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::proof_AND_count [private] |
Definition at line 126 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::proof_without_inversion_count [private] |
Definition at line 126 of file ntesukiSearcher.h.
Player selection の scheme.
Definition at line 90 of file ntesukiSearcher.h.
bool osl::ntesuki::NtesukiSearcher::ptt_aunt = false [static] |
Definition at line 82 of file ntesukiSearcher.h.
bool osl::ntesuki::NtesukiSearcher::ptt_invalid_defense = false [static] |
Definition at line 70 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::ptt_non_attack = false [static] |
Definition at line 76 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::ptt_siblings_fail = false [static] |
Definition at line 78 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::ptt_siblings_success = false [static] |
Definition at line 79 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::ptt_uncle = false [static] |
Definition at line 81 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
bool osl::ntesuki::NtesukiSearcher::read_attack_only = false [static] |
Definition at line 75 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::read_node_limit [private] |
最大何ノードまで読むか.
Definition at line 42 of file ntesukiSearcher.h.
const int osl::ntesuki::NtesukiSearcher::ReadLimitReached = -2 [static] |
Definition at line 130 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::sibling_attack_count [private] |
Definition at line 121 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::sibling_attack_success_count [private] |
Definition at line 121 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::sibling_defense_count [private] |
Definition at line 120 of file ntesukiSearcher.h.
unsigned int osl::ntesuki::NtesukiSearcher::sibling_defense_success_count [private] |
Definition at line 120 of file ntesukiSearcher.h.
シミュレーション探索器.
Definition at line 36 of file ntesukiSearcher.h.
State& osl::ntesuki::NtesukiSearcher::state [private] |
Definition at line 27 of file ntesukiSearcher.h.
Referenced by NtesukiSearcher().
volatile int* osl::ntesuki::NtesukiSearcher::stop_flag [private] |
探索を途中で強制的に終了させるための flag.
Definition at line 48 of file ntesukiSearcher.h.
const int osl::ntesuki::NtesukiSearcher::TableLimitReached = -3 [static] |
Definition at line 131 of file ntesukiSearcher.h.
int osl::ntesuki::NtesukiSearcher::tsumero_cost [private] |
詰めろな手に関する cost
Definition at line 95 of file ntesukiSearcher.h.
int osl::ntesuki::NtesukiSearcher::tsumero_estimate [private] |
詰めろな手に関する証明数の予測値
Definition at line 98 of file ntesukiSearcher.h.
bool osl::ntesuki::NtesukiSearcher::verbose [private] |
経過をどこまで表示するか.
Definition at line 45 of file ntesukiSearcher.h.