#include <ntesukiSearcher.h>
Public 型 | |
typedef NumEffectState | State |
Public メソッド | |
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 変数 | |
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 const int | NtesukiNotFound = -1 |
static const int | ReadLimitReached = -2 |
static const int | TableLimitReached = -3 |
Private 型 | |
typedef std::vector< Move > | moves_t |
롼Ȥ鸽õΥΡɤޤǤ move. | |
typedef std::vector < NtesukiRecord * > | nodes_t |
롼Ȥ鸽õΥΡɤޤǤζ. | |
Private メソッド | |
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 変数 | |
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 変数 | |
static const unsigned int | INITIAL_PROOF_LIMIT |
static const unsigned int | INITIAL_DISPROOF_LIMIT |
構成 | |
class | AttackHelper |
class | CallSimulationAttack |
class | CallSimulationDefense |
class | CallSimulationDefenseDisproof |
class | DefenseHelper |
ntesukiSearcher.h の 20 行で定義されています。
typedef NumEffectState osl::ntesuki::NtesukiSearcher::State |
ntesukiSearcher.h の 24 行で定義されています。
typedef std::vector<Move> osl::ntesuki::NtesukiSearcher::moves_t [private] |
typedef std::vector<NtesukiRecord *> osl::ntesuki::NtesukiSearcher::nodes_t [private] |
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 | |||
) |
ntesukiSearcher.cc の 41 行で定義されています。
参照先 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, 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, osl::ntesuki::NtesukiRecord::state, table, osl::ntesuki::NtesukiRecord::table, と osl::ntesuki::NtesukiRecord::use_dominance.
osl::ntesuki::NtesukiSearcher::~NtesukiSearcher | ( | ) |
ntesukiSearcher.cc の 137 行で定義されています。
参照先 attack_back_count, attack_node_count, attack_node_moves_count, attack_node_under_attack_count, osl::ntesuki::NtesukiRecord::confluence_count, defense_node_count, defense_node_moves_count, defense_node_under_attack_count, disproof_by_inversion_count, immediate_lose, immediate_win, isshogi_attack_count, isshogi_attack_success_count, isshogi_defense_count, isshogi_defense_success_count, node_count, pass_count, pass_success_count, proof_AND_count, proof_without_inversion_count, read_node_limit, sibling_attack_count, sibling_attack_success_count, sibling_defense_count, sibling_defense_success_count, osl::ntesuki::NtesukiTable::size(), osl::ntesuki::NtesukiRecord::split_count, table, と 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 | |||
) | [inline, private] |
¦ν
ntesukiSearcher.tcc の 390 行で定義されています。
参照先 osl::checkmate::ProofDisproof::BigProofNumber, CATCH_DFPN, osl::D, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), immediate_win, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::ntesuki::NtesukiMove::isInvalid(), iwscheme, osl::eval::min(), osl::ntesuki::NtesukiRecord::no_iw, ntesuki_assert, path, osl::ntesuki::NtesukiRecord::pn_iw, osl::checkmate::ProofDisproof::proof(), osl::checkmate::ProofDisproof::PROOF_LIMIT, RETURN, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setUpNode(), state, osl::ntesuki::NtesukiRecord::strict_iw, table, と 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 | |||
) | [inline, private] |
ntesukiSearcher.tcc の 524 行で定義されています。
参照先 addWithSaturation(), osl::ntesuki::NtesukiTable::allocateWithMove(), attack_node_count, attack_node_moves_count, attack_node_under_attack_count, osl::checkmate::ProofDisproof::BigProofNumber, CATCH_DFPN, osl::checkmate::ProofDisproof::Checkmate(), osl::D, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::ntesuki::NtesukiRecord::generateMoves(), osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::INVALID(), osl::ntesuki::NtesukiMove::isCheck(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::ntesuki::NtesukiMove::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), osl::ntesuki::NtesukiMove::isInvalid(), osl::checkmate::ProofDisproof::LoopDetection(), osl::eval::min(), moves, moves_played, osl::checkmate::ProofDisproof::NoCheckmate(), node_count, ntesuki_assert, path, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::ProofDisproof::PROOF_LIMIT, ptt_aunt, ptt_siblings_fail, 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(), sibling_attack_count, sibling_attack_success_count, state, stop_flag, table, TableLimitReached, と TRY_DFPN.
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 | |||
) | [inline, private] |
ntesukiSearcher.tcc の 783 行で定義されています。
参照先 addWithSaturation(), osl::checkmate::ProofDisproof::BigProofNumber, CATCH_DFPN, osl::checkmate::ProofDisproof::Checkmate(), delay_non_attack, delay_nopromote, osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::ntesuki::NtesukiRecord::distance, osl::ntesuki::NtesukiTable::findWithMove(), 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::NtesukiMove::INVALID(), 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(), iwscheme, osl::checkmate::ProofDisproof::LoopDetection(), osl::eval::max(), osl::ntesuki::NtesukiRecord::max_for_split, osl::eval::min(), osl::checkmate::ProofDisproof::NoCheckmate(), ntesuki_assert, path, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::ProofDisproof::PROOF_LIMIT, psscheme, ptt_non_attack, read_attack_only, 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(), table, TRY_DFPN, tsumero_cost, tsumero_estimate, と osl::ntesuki::NtesukiRecord::useOld().
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 | |||
) | [inline, private] |
ɸ˴ؤ
ntesukiSearcher.tcc の 1165 行で定義されています。
参照先 CATCH_DFPN, osl::D, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiRecord::getValueAnd(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), immediate_lose, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isFinal(), osl::ntesuki::NtesukiMove::isInvalid(), iwscheme, node_count, ntesuki_assert, path, osl::checkmate::ProofDisproof::proof(), osl::checkmate::ProofDisproof::PROOF_LIMIT, psscheme, RETURN, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setUpNode(), state, table, と 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 | |||
) | [inline, private] |
ntesukiSearcher.tcc の 1272 行で定義されています。
参照先 addWithSaturation(), osl::ntesuki::NtesukiTable::allocateWithMove(), osl::checkmate::ProofDisproof::AttackBack(), osl::checkmate::ProofDisproof::BigProofNumber, CATCH_DFPN, defense_node_count, defense_node_moves_count, defense_node_under_attack_count, delay_non_pass, osl::checkmate::ProofDisproof::disproof(), disproof_by_inversion_count, osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::ntesuki::NtesukiRecord::do_oracle_attack, osl::ntesuki::NtesukiRecord::do_oracle_aunt, osl::ntesuki::NtesukiTable::findWithMove(), osl::ntesuki::NtesukiRecord::generateMoves(), osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueOr(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::ntesuki::NtesukiMove::INVALID(), osl::ntesuki::NtesukiMove::isCheck(), osl::ntesuki::NtesukiMove::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), osl::ntesuki::NtesukiRecord::isLoopWithPath(), osl::ntesuki::NtesukiMove::isPass(), isshogi_attack_count, isshogi_attack_success_count, osl::checkmate::ProofDisproof::isUnknown(), osl::ntesuki::NtesukiRecord::isVisited(), iwscheme, osl::checkmate::ProofDisproof::LoopDetection(), osl::eval::min(), moves, moves_played, osl::checkmate::ProofDisproof::NoEscape(), ntesuki_assert, osl::Move::PASS(), osl::ntesuki::NtesukiRecord::pass_count, pass_count, pass_success_count, path, osl::checkmate::ProofDisproof::proof(), ptt_invalid_defense, ptt_siblings_success, ptt_uncle, 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(), sibling_defense_count, sibling_defense_success_count, simulator, state, stop_flag, table, TableLimitReached, と TRY_DFPN.
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 | |||
) | [inline, private] |
ntesukiSearcher.tcc の 1626 行で定義されています。
参照先 addWithSaturation(), osl::checkmate::ProofDisproof::BigProofNumber, CATCH_DFPN, osl::checkmate::ProofDisproof::Checkmate(), delay_interpose, osl::ntesuki::NtesukiRecord::delay_is, delay_non_pass, disproof_by_inversion_count, osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::ntesuki::NtesukiRecord::distance, osl::ntesuki::NtesukiTable::findWithMove(), 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::NtesukiMove::INVALID(), 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(), isscheme, osl::ntesuki::NtesukiRecord::isVisited(), iwscheme, osl::checkmate::ProofDisproof::LoopDetection(), osl::eval::max(), osl::ntesuki::NtesukiRecord::max_for_split, osl::eval::min(), osl::ntesuki::NtesukiRecord::no_is, osl::ntesuki::NtesukiRecord::normal_is, ntesuki_assert, osl::Move::PASS(), pass_count, pass_success_count, path, osl::checkmate::ProofDisproof::PROOF_LIMIT, proof_without_inversion_count, ptt_invalid_defense, ptt_siblings_success, 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(), sibling_defense_count, sibling_defense_success_count, state, table, osl::ntesuki::NtesukiRecord::tonshi_is, TRY_DFPN, と osl::ntesuki::NtesukiRecord::useOld().
void osl::ntesuki::NtesukiSearcher::simulateSiblingsSuccess | ( | NtesukiRecord * | record, | |
NtesukiRecord * | record_best, | |||
int | pass_left, | |||
unsigned int & | success_count, | |||
unsigned int & | total_count | |||
) | [inline, private] |
֤ǡ꤬ Success Ȥ狼ä硤 ¾μƱͤ Success ˤʤʤ Simulaition Ĵ٤.
$^n$ õξˤϡ§ $^(n-1)$ move ξˤĴ٤ʤ.
e.g. ɬõˤϲĴ٤ʤ.
ntesukiSearcher.tcc の 2007 行で定義されています。
参照先 osl::ntesuki::NtesukiTable::allocateWithMove(), CATCH_DFPN, osl::ntesuki::NtesukiMoveGenerator::generate(), osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValue(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::ntesuki::NtesukiRecord::isVisited(), mg, moves, ntesuki_assert, path, RETURN_ON_STOP, osl::ntesuki::NtesukiMove::setBySimulation(), osl::ntesuki::NtesukiMove::setCheckmateSuccess(), simulator, state, stop_flag, table, TableLimitReached, と TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::simulateSiblingsFail | ( | NtesukiRecord * | record, | |
NtesukiRecord * | record_best, | |||
int | pass_left, | |||
unsigned int & | success_count, | |||
unsigned int & | total_count | |||
) | [inline, private] |
֤ǡ꤬ Fail Ȥ狼ä硤 ¾μƱͤ Fail ˤʤʤ Simulaition Ĵ٤.
ntesukiSearcher.tcc の 300 行で定義されています。
参照先 osl::ntesuki::NtesukiTable::allocateWithMove(), CATCH_DFPN, osl::ntesuki::NtesukiMoveGenerator::generate(), osl::ntesuki::NtesukiMove::getMove(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::ntesuki::NtesukiMove::isCheckmateFail(), osl::ntesuki::NtesukiRecord::isVisited(), mg, moves, ntesuki_assert, path, RETURN_ON_STOP, osl::ntesuki::NtesukiMove::setBySimulation(), osl::ntesuki::NtesukiMove::setCheckmateFail(), simulator, state, stop_flag, table, TableLimitReached, と TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::handleNonAttack | ( | NtesukiRecord * | record, | |
int | pass_left | |||
) | [inline, private] |
ˤʤäƤʤ.
ntesukiSearcher.tcc の 1083 行で定義されています。
参照先 osl::ntesuki::NtesukiTable::allocateWithMove(), CATCH_DFPN, osl::ntesuki::NtesukiTable::findWithMove(), osl::ntesuki::NtesukiMoveGenerator::generate(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isFinal(), osl::ntesuki::NtesukiRecord::isVisited(), mg, moves, ntesuki_assert, path, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setLoopWithPath(), simulator, state, stop_flag, table, TableLimitReached, と TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::handleTonshi | ( | NtesukiRecord * | record, | |
int | pass_left, | |||
const Move | last_move | |||
) | [inline, private] |
ܻबʤĴ٤.
ntesukiSearcher.tcc の 1955 行で定義されています。
参照先 attack_back_count, osl::checkmate::ProofDisproof::Bottom(), CATCH_DFPN, osl::D, osl::ntesuki::NtesukiRecord::distance, osl::ntesuki::NtesukiRecord::getValueWithPath(), INITIAL_PROOF_LIMIT, osl::ntesuki::NtesukiMove::INVALID(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), node_count, path, ratio, READ_ATTACK_BACK_LIMIT, read_node_limit, RETURN_ON_STOP, osl::ntesuki::NtesukiRecord::setResult(), と TRY_DFPN.
void osl::ntesuki::NtesukiSearcher::handleInterpose | ( | NtesukiRecord * | record, | |
int | pass_left | |||
) | [inline, private] |
̵̹䤬̵̹礬Ĵ٤.
ntesukiSearcher.tcc の 2070 行で定義されています。
参照先 osl::ntesuki::NtesukiTable::allocateWithMove(), CATCH_DFPN, osl::ntesuki::NtesukiTable::findWithMove(), osl::ntesuki::NtesukiMoveGenerator::generate(), osl::ntesuki::NtesukiRecord::getBestMove(), osl::ntesuki::NtesukiRecord::getValue(), osl::ntesuki::NtesukiRecord::getValueWithPath(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isFinal(), osl::ntesuki::NtesukiMove::isInvalid(), mg, moves, ntesuki_assert, path, RETURN_ON_STOP, simulator, state, stop_flag, table, TableLimitReached, と TRY_DFPN.
template int osl::ntesuki::NtesukiSearcher::search< WHITE > | ( | ) | [inline] |
ntesukiSearcher.tcc の 2141 行で定義されています。
参照先 osl::ntesuki::NtesukiTable::allocateRoot(), osl::D, osl::ntesuki::NtesukiRecord::getValue(), INITIAL_DISPROOF_LIMIT, INITIAL_PROOF_LIMIT, osl::Move::INVALID(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), max_pass, node_count, ntesuki_assert, NtesukiNotFound, osl::ntesuki::NtesukiRecord::pass_count, read_node_limit, ReadLimitReached, state, stop_flag, table, verbose, と osl::WHITE.
int osl::ntesuki::NtesukiSearcher::searchSlow | ( | Player | attacker, | |
int | rnl = 160000 | |||
) | [inline] |
NtesukiTable & osl::ntesuki::NtesukiSearcher::getTable | ( | ) |
int osl::ntesuki::NtesukiSearcher::getNodeCount | ( | ) | const [inline] |
ntesukiSearcher.h の 269 行で定義されています。
bool osl::ntesuki::NtesukiSearcher::exceedReadNodeLimit | ( | ) | const [inline] |
ntesukiSearcher.h の 270 行で定義されています。
State& osl::ntesuki::NtesukiSearcher::state [private] |
.
ntesukiSearcher.h の 30 行で定義されています。
参照元 handleInterpose(), handleNonAttack(), simulateSiblingsFail(), と simulateSiblingsSuccess().
ȥݥơ֥.
ntesukiSearcher.h の 33 行で定義されています。
参照元 attack(), attackWithOrder(), CountChildLock::CountChildLock(), defense(), defenseWithPlayer(), getTable(), handleInterpose(), handleNonAttack(), NtesukiSearcher(), osl::ntesuki::NtesukiSearcher::CallSimulationDefenseDisproof< Search, T >::operator()(), osl::ntesuki::NtesukiSearcher::CallSimulationDefense< Search, T >::operator()(), osl::ntesuki::NtesukiSearcher::CallSimulationAttack< Search, T >::operator()(), search(), selectMoveAttack(), selectMoveDefense(), simulateSiblingsFail(), simulateSiblingsSuccess(), CountChildLock::~CountChildLock(), と ~NtesukiSearcher().
ߥ졼õ.
ntesukiSearcher.h の 36 行で定義されています。
参照元 defenseWithPlayer(), handleInterpose(), handleNonAttack(), osl::ntesuki::NtesukiSearcher::CallSimulationDefenseDisproof< Search, T >::operator()(), osl::ntesuki::NtesukiSearcher::CallSimulationDefense< Search, T >::operator()(), osl::ntesuki::NtesukiSearcher::CallSimulationAttack< Search, T >::operator()(), simulateSiblingsFail(), と simulateSiblingsSuccess().
unsigned int osl::ntesuki::NtesukiSearcher::node_count [private] |
ߤޤǤ˲Ρɤ.
ntesukiSearcher.h の 39 行で定義されています。
参照元 attackWithOrder(), defense(), handleTonshi(), search(), と ~NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::read_node_limit [private] |
bool osl::ntesuki::NtesukiSearcher::verbose [private] |
volatile int* osl::ntesuki::NtesukiSearcher::stop_flag [private] |
õǶŪ˽λ뤿 flag.
ntesukiSearcher.h の 48 行で定義されています。
参照元 attackWithOrder(), defenseWithPlayer(), handleInterpose(), handleNonAttack(), search(), simulateSiblingsFail(), と simulateSiblingsSuccess().
롼Ȥ鸽õΥΡɤޤǤ path hash.
ntesukiSearcher.h の 51 行で定義されています。
参照元 attack(), attackWithOrder(), defense(), defenseWithPlayer(), handleInterpose(), handleNonAttack(), handleTonshi(), selectMoveAttack(), selectMoveDefense(), simulateSiblingsFail(), と simulateSiblingsSuccess().
ntesukiSearcher.h の 59 行で定義されています。
unsigned int osl::ntesuki::NtesukiSearcher::max_pass [private] |
bool osl::ntesuki::NtesukiSearcher::delay_non_pass = false [static] |
õΤդޤ椹ѿ.
ntesukiSearcher.h の 69 行で定義されています。
参照元 defenseWithPlayer(), NtesukiSearcher(), と selectMoveDefense().
bool osl::ntesuki::NtesukiSearcher::ptt_invalid_defense = false [static] |
ntesukiSearcher.h の 70 行で定義されています。
参照元 defenseWithPlayer(), NtesukiSearcher(), と selectMoveDefense().
bool osl::ntesuki::NtesukiSearcher::delay_interpose = false [static] |
bool osl::ntesuki::NtesukiSearcher::delay_nopromote = false [static] |
bool osl::ntesuki::NtesukiSearcher::delay_non_attack = false [static] |
bool osl::ntesuki::NtesukiSearcher::read_attack_only = false [static] |
bool osl::ntesuki::NtesukiSearcher::ptt_non_attack = false [static] |
bool osl::ntesuki::NtesukiSearcher::ptt_siblings_fail = false [static] |
bool osl::ntesuki::NtesukiSearcher::ptt_siblings_success = false [static] |
ntesukiSearcher.h の 79 行で定義されています。
参照元 defenseWithPlayer(), NtesukiSearcher(), と selectMoveDefense().
bool osl::ntesuki::NtesukiSearcher::ptt_uncle = false [static] |
bool osl::ntesuki::NtesukiSearcher::ptt_aunt = false [static] |
Iterative widening scheme
ntesukiSearcher.h の 86 行で定義されています。
参照元 attack(), defense(), defenseWithPlayer(), selectMoveAttack(), と selectMoveDefense().
int osl::ntesuki::NtesukiSearcher::tsumero_cost [private] |
int osl::ntesuki::NtesukiSearcher::tsumero_estimate [private] |
double osl::ntesuki::NtesukiSearcher::gc_ratio [private] |
unsigned int osl::ntesuki::NtesukiSearcher::blockByAttackBack [private] |
ntesukiSearcher.h の 105 行で定義されています。
unsigned int osl::ntesuki::NtesukiSearcher::blockByPass [private] |
ntesukiSearcher.h の 109 行で定義されています。
unsigned int osl::ntesuki::NtesukiSearcher::attack_node_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::attack_node_under_attack_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::attack_node_moves_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::defense_node_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::defense_node_under_attack_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::defense_node_moves_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::pass_count [private] |
ntesukiSearcher.h の 116 行で定義されています。
参照元 defenseWithPlayer(), selectMoveDefense(), と ~NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::pass_success_count [private] |
ntesukiSearcher.h の 116 行で定義されています。
参照元 defenseWithPlayer(), selectMoveDefense(), と ~NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::pass_attack_count [private] |
ntesukiSearcher.h の 117 行で定義されています。
unsigned int osl::ntesuki::NtesukiSearcher::pass_attack_success_count [private] |
ntesukiSearcher.h の 117 行で定義されています。
unsigned int osl::ntesuki::NtesukiSearcher::sibling_defense_count [private] |
ntesukiSearcher.h の 118 行で定義されています。
参照元 defenseWithPlayer(), selectMoveDefense(), と ~NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::sibling_defense_success_count [private] |
ntesukiSearcher.h の 118 行で定義されています。
参照元 defenseWithPlayer(), selectMoveDefense(), と ~NtesukiSearcher().
unsigned int osl::ntesuki::NtesukiSearcher::sibling_attack_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::sibling_attack_success_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_defense_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_defense_success_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_attack_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::isshogi_attack_success_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::immediate_win [private] |
unsigned int osl::ntesuki::NtesukiSearcher::immediate_lose [private] |
unsigned int osl::ntesuki::NtesukiSearcher::attack_back_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::proof_without_inversion_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::proof_AND_count [private] |
unsigned int osl::ntesuki::NtesukiSearcher::disproof_by_inversion_count [private] |
ntesukiSearcher.h の 124 行で定義されています。
参照元 defenseWithPlayer(), selectMoveDefense(), と ~NtesukiSearcher().
const int osl::ntesuki::NtesukiSearcher::NtesukiNotFound = -1 [static] |
const int osl::ntesuki::NtesukiSearcher::ReadLimitReached = -2 [static] |
const int osl::ntesuki::NtesukiSearcher::TableLimitReached = -3 [static] |
const unsigned int osl::ntesuki::NtesukiSearcher::INITIAL_PROOF_LIMIT [static, private] |
const unsigned int osl::ntesuki::NtesukiSearcher::INITIAL_DISPROOF_LIMIT [static, private] |