|
My Project
|
詰探索 More...
#include <dfpn.h>
Classes | |
| struct | DepthLimitReached |
| struct | ProofOracle |
| struct | NodeBase |
| struct | Node |
| struct | Tree |
| struct | CallAttack |
| struct | CallDefense |
| struct | CallProofOracleAttack |
| struct | CallProofOracleDefense |
Public Types | |
| enum | { DfpnMaxUniqMoves = CheckOrEscapeMaxUniqMoves } |
| typedef CheckMoveVector | DfpnMoveVector |
| typedef DfpnTable | table_t |
Public Member Functions | |
| Dfpn () | |
| ~Dfpn () | |
| void | setTable (DfpnTable *new_table) |
| void | setIllegal (const HashKey &key, PieceStand white) |
| void | setBlockingVerify (bool enable=true) |
| void | setParallel (int id, DfpnShared *s) |
| const ProofDisproof | hasCheckmateMove (const NumEffectState &state, const HashKey &key, const PathEncoding &path, size_t limit, Move &best_move, Move last_move=Move::INVALID(), std::vector< Move > *pv=0) |
| const ProofDisproof | hasCheckmateMove (const NumEffectState &state, const HashKey &key, const PathEncoding &path, size_t limit, Move &best_move, PieceStand &proof, Move last_move=Move::INVALID(), std::vector< Move > *pv=0) |
| const ProofDisproof | hasEscapeMove (const NumEffectState &state, const HashKey &key, const PathEncoding &path, size_t limit, Move last_move) |
| size_t | nodeCount () const |
| const DfpnTable & | currentTable () const |
| void | analyze (const PathEncoding &path, const NumEffectState &state, const std::vector< Move > &moves) const |
| void | clear () |
| template<Player P> | |
| void | attack () |
| template<Player P> | |
| void | defense () |
| template<Player P, bool UseTable> | |
| void | proofOracleAttack (const ProofOracle &oracle, int proof_limit) |
| template<Player P, bool UseTable> | |
| void | proofOracleDefense (const ProofOracle &oracle, int proof_limit) |
| template<Player P> | |
| void | blockingSimulation (int seed, const ProofOracle &) |
| 合駒が詰と判った直後に、同じような合駒を詰める | |
| template<Player P> | |
| void | grandParentSimulation (int cur_move, const Node &gparent, int gp_move) |
| const ProofDisproof | tryProof (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &, size_t oracle_id, Move &best_move, Move last_move=Move::INVALID()) |
| const ProofDisproof | tryProofLight (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &, size_t oracle_id, Move &best_move, Move last_move=Move::INVALID()) |
| int | distance (const HashKey &) const |
| bool | grandParentSimulationSuitable () const |
| test suitability of simulation of grand-parent relation | |
| template<bool UseTable> | |
| const osl::checkmate::ProofDisproof | tryProofMain (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &oracle, size_t oracle_id, Move &best_move, Move last_move) |
Static Public Member Functions | |
| template<Player P> | |
| static void | generateCheck (const NumEffectState &, DfpnMoveVector &, bool &) |
| Pは攻撃側 | |
| template<Player P> | |
| static void | generateEscape (const NumEffectState &, bool need_full_width, Square grand_parent_delay_last_to, DfpnMoveVector &) |
| Pは攻撃側 | |
| template<Player Turn> | |
| static void | sort (const NumEffectState &, DfpnMoveVector &) |
Private Member Functions | |
| Dfpn (const Dfpn &)=delete | |
| Dfpn & | operator= (const Dfpn &)=delete |
| template<bool UseTable> | |
| const ProofDisproof | tryProofMain (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &, size_t oracle_id, Move &best_move, Move last_move) |
| void | findDagSource () |
| void | findDagSource (const HashKey &terminal_key, DfpnRecord &terminal_record, PieceStand terminal_stand, int offset=0) |
Private Attributes | |
| DfpnTable * | table |
| std::unique_ptr< Tree > | tree |
| std::unique_ptr< DfpnPathTable > | path_table |
| size_t | node_count |
| size_t | node_count_limit |
| DfpnShared * | parallel_shared |
| int | thread_id |
| bool | blocking_verify |
|
privatedelete |
References Dfpn().
Referenced by osl::checkmate::Dfpn::CallAttack< P >::CallAttack(), osl::checkmate::Dfpn::CallDefense< P >::CallDefense(), osl::checkmate::Dfpn::CallProofOracleAttack< P, UseTable >::CallProofOracleAttack(), osl::checkmate::Dfpn::CallProofOracleDefense< P, UseTable >::CallProofOracleDefense(), Dfpn(), and operator=().
| osl::checkmate::Dfpn::Dfpn | ( | ) |
Definition at line 1287 of file dfpn.cc.
References blocking_verify, parallel_shared, path_table, table, thread_id, and tree.
| void osl::checkmate::Dfpn::analyze | ( | const PathEncoding & | path, |
| const NumEffectState & | state, | ||
| const std::vector< Move > & | moves ) const |
Definition at line 2650 of file dfpn.cc.
References osl::BLACK, osl::checkmate::DfpnPathRecord::distance, generateCheck(), generateEscape(), osl::NumEffectState::isAlmostValidMove(), osl::SimpleState::kingSquare(), osl::NumEffectState::makeMove(), osl::hash::HashKey::newMakeMove(), osl::checkmate::DfpnRecordBase::node_count, path_table, osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::csa::show(), osl::FixedCapacityVector< T, Capacity >::size(), table, osl::SimpleState::turn(), osl::checkmate::DfpnPathRecord::twin_list, and osl::WHITE.
| void osl::checkmate::Dfpn::attack | ( | ) |
Definition at line 1655 of file dfpn.cc.
References osl::PieceStand::add(), osl::stat::Ratio::add(), AdHocSumScale, osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::LibertyEstimator::attackH(), osl::checkmate::attackProofCost(), osl::checkmate::BadAttackLoop, osl::BISHOP, osl::BLACK, osl::hash::HashKey128::blackStand(), osl::checkmate::ProofDisproof::Checkmate(), CHECKMATE_A3_GOLD, osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::misc::BitOp::countBit(), DagFindThreshold, DagFindThreshold2, debug_time_start, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::DfpnPathRecord::distance, osl::checkmate::Edge_Table, osl::FixedCapacityVector< T, Capacity >::empty(), EnableGCDepth, findDagSource(), generateCheck(), osl::PathEncoding::getDepth(), osl::GOLD, osl::checkmate::FixedDepthSolverExt::hasCheckmateMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::EffectContent::hasUnblockableEffect(), IgnoreUpwardDisproofThreshold, osl::HashRandomPair::initialized(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::isMajor(), osl::Move::isNormal(), osl::isPromoted(), osl::checkmate::DisproofPieces::leaf(), LongDropCount, osl::checkmate::ProofDisproof::LOOP_DETECTION_PROOF, osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::ProofDisproof::NoCheckmate(), node_count, osl::checkmate::DfpnPathRecord::node_count, node_count_limit, osl::checkmate::ProofDisproof::NoEscape(), NoPromoeIgnoreDisproofThreshold, NoPromoeIgnoreProofThreshold, parallel_shared, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::PAWN, osl::checkmate::ProofDisproof::PAWN_CHECK_MATE_PROOF, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::Dfpn::Node::proof_cost, osl::checkmate::DfpnRecordBase::proof_disproof, osl::checkmate::ProofDisproof::PROOF_LIMIT, osl::Move::ptype(), osl::Ptype_Table, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::ROOK, osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::Dfpn::Node::setNoCheckmateAttack(), osl::FixedCapacityVector< T, Capacity >::size(), osl::checkmate::slow_increase(), table, thread_id, osl::checkmate::Dfpn::NodeBase::threshold, timer, tree, osl::unpromote(), UpwardWeight, osl::HashRandomPair::value(), osl::checkmate::Dfpn::Node::visit_time, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.
Referenced by hasCheckmateMove(), osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setNoCheckmateAttack(), osl::checkmate::Dfpn::Node::setNoCheckmateDefense(), and osl::checkmate::Dfpn::Tree::setNoCheckmateDefense().
| void osl::checkmate::Dfpn::blockingSimulation | ( | int | seed, |
| const ProofOracle & | oracle ) |
合駒が詰と判った直後に、同じような合駒を詰める
Definition at line 3045 of file dfpn.cc.
References osl::stat::Ratio::add(), osl::alt(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::Dfpn::Node::moves, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::FixedCapacityVector< T, Capacity >::size(), osl::checkmate::DfpnRecordBase::solved, table, osl::checkmate::Dfpn::NodeBase::threshold, osl::Move::to(), osl::checkmate::Dfpn::ProofOracle::traceable(), and tree.
Referenced by defense().
| void osl::checkmate::Dfpn::clear | ( | ) |
Definition at line 1305 of file dfpn.cc.
References path_table.
|
inline |
| void osl::checkmate::Dfpn::defense | ( | ) |
Definition at line 2182 of file dfpn.cc.
References AdHocSumScale, osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::BadAttackLoop, osl::CArray< T, Capacity >::begin(), osl::FixedCapacityVector< T, Capacity >::begin(), osl::BLACK, osl::hash::HashKey128::blackStand(), blocking_verify, blockingSimulation(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::misc::BitOp::countBit(), DagFindThreshold, DagFindThreshold2, debug_time_start, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::ProofDisproof::DISPROOF_MAX, osl::checkmate::DfpnPathRecord::distance, osl::FixedCapacityVector< T, Capacity >::empty(), osl::FixedCapacityVector< T, Capacity >::end(), findDagSource(), generateEscape(), osl::PathEncoding::getDepth(), grandParentSimulation(), grandParentSimulationSuitable(), osl::checkmate::FixedDepthSolverExt::hasEscapeByMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, IgnoreUpwardProofThreshold, osl::HashRandomPair::initialized(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::Dfpn::Node::isLoop(), osl::Move::isNormal(), osl::KING, osl::checkmate::ProofPieces::leaf(), MEMORIZE_SOLVED_IN_BITSET, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::Node::nextWhiteStand(), node_count, osl::checkmate::DfpnPathRecord::node_count, node_count_limit, osl::checkmate::ProofDisproof::NoEscape(), parallel_shared, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::FixedCapacityVector< T, Capacity >::pop_back(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, SacrificeBlockCount, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::FixedCapacityVector< T, Capacity >::size(), osl::checkmate::slow_increase(), osl::checkmate::DfpnRecordBase::solved, table, thread_id, osl::checkmate::Dfpn::NodeBase::threshold, timer, osl::Move::to(), tree, UpwardWeight, osl::HashRandomPair::value(), osl::checkmate::Dfpn::Node::visit_time, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.
Referenced by hasEscapeMove().
| int osl::checkmate::Dfpn::distance | ( | const HashKey & | key | ) | const |
Definition at line 3130 of file dfpn.cc.
References path_table.
|
private |
Definition at line 1646 of file dfpn.cc.
References findDagSource(), and tree.
Referenced by attack(), defense(), findDagSource(), proofOracleAttack(), and proofOracleDefense().
|
private |
Definition at line 1605 of file dfpn.cc.
References osl::alt(), osl::checkmate::DfpnRecordBase::dag_terminal, osl::Move::isNormal(), osl::checkmate::DfpnRecordBase::last_move, MaxDagTraceDepth, osl::hash::HashKey::newUnmakeMove(), parallel_shared, osl::Move::player(), osl::PieceStand::previousStand(), table, tree, osl::hash::HashKey128::turn(), and osl::WHITE.
|
static |
Pは攻撃側
Definition at line 1572 of file dfpn.cc.
References osl::alt(), osl::FixedCapacityVector< T, Capacity >::empty(), osl::move_generator::GenerateEscape< P >::generateKingEscape(), osl::NumEffectState::inCheck(), osl::SimpleState::kingPiece(), osl::SimpleState::kingSquare(), osl::Piece::number(), osl::SimpleState::pieceAt(), osl::NumEffectState::pinOrOpen(), osl::Ptype_Table, osl::FixedCapacityVector< T, Capacity >::push_back(), sort(), and osl::unpromote().
|
static |
Pは攻撃側
Definition at line 2104 of file dfpn.cc.
References osl::alt(), osl::FixedCapacityVector< T, Capacity >::begin(), osl::FixedCapacityVector< T, Capacity >::empty(), osl::NumEffectState::hasEffectAt(), osl::NumEffectState::hasEffectNotBy(), osl::SimpleState::kingPiece(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::FixedCapacityVector< T, Capacity >::size(), and sort().
Referenced by analyze(), osl::checkmate::ProofTreeDepthDfpn::andNode(), defense(), and proofOracleDefense().
| void osl::checkmate::Dfpn::grandParentSimulation | ( | int | cur_move, |
| const Node & | gparent, | ||
| int | gp_move ) |
Definition at line 3095 of file dfpn.cc.
References osl::stat::Ratio::add(), osl::alt(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::DfpnRecordBase::solved, table, osl::checkmate::Dfpn::NodeBase::threshold, and tree.
Referenced by defense().
| bool osl::checkmate::Dfpn::grandParentSimulationSuitable | ( | ) | const |
test suitability of simulation of grand-parent relation
Definition at line 2161 of file dfpn.cc.
References osl::Move::from(), osl::Move::isCapture(), osl::Move::isNormal(), osl::checkmate::Dfpn::NodeBase::moved, osl::Move::to(), and tree.
Referenced by defense(), and proofOracleDefense().
| const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::hasCheckmateMove | ( | const NumEffectState & | state, |
| const HashKey & | key, | ||
| const PathEncoding & | path, | ||
| size_t | limit, | ||
| Move & | best_move, | ||
| Move | last_move = Move::INVALID(), | ||
| std::vector< Move > * | pv = 0 ) |
Definition at line 1328 of file dfpn.cc.
References hasCheckmateMove().
Referenced by osl::checkmate::DualDfpn::findProof(), and hasCheckmateMove().
| const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::hasCheckmateMove | ( | const NumEffectState & | state, |
| const HashKey & | key, | ||
| const PathEncoding & | path, | ||
| size_t | limit, | ||
| Move & | best_move, | ||
| PieceStand & | proof, | ||
| Move | last_move = Move::INVALID(), | ||
| std::vector< Move > * | pv = 0 ) |
Definition at line 1338 of file dfpn.cc.
References attack(), osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, osl::checkmate::Dfpn::Node::clear(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, node_count, node_count_limit, parallel_shared, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::checkmate::DfpnRecordBase::proof_disproof, osl::checkmate::DfpnRecord::proofPieces(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::ProofTreeDepthDfpn::retrievePV(), ROOT_DISPROOF_TOL, ROOT_PROOF_TOL, table, thread_id, osl::checkmate::Dfpn::NodeBase::threshold, tree, osl::SimpleState::turn(), osl::checkmate::DfpnPathRecord::twin_list, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.
| const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::hasEscapeMove | ( | const NumEffectState & | state, |
| const HashKey & | key, | ||
| const PathEncoding & | path, | ||
| size_t | limit, | ||
| Move | last_move ) |
Definition at line 1468 of file dfpn.cc.
References osl::alt(), osl::BLACK, osl::checkmate::Dfpn::Node::clear(), defense(), osl::NumEffectState::hasEffectAt(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::Move::isDrop(), osl::Move::isNormal(), osl::SimpleState::kingSquare(), osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::DfpnRecordBase::need_full_width, osl::checkmate::ProofDisproof::NoCheckmate(), node_count, node_count_limit, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::PAWN, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::Move::ptype(), osl::checkmate::Dfpn::NodeBase::record, ROOT_DISPROOF_TOL, ROOT_PROOF_TOL, table, osl::checkmate::Dfpn::NodeBase::threshold, tree, osl::SimpleState::turn(), osl::checkmate::DfpnPathRecord::twin_list, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.
Referenced by osl::checkmate::DualDfpn::isLosingState().
|
inline |
Definition at line 152 of file dfpn.h.
References node_count.
Referenced by osl::checkmate::DualDfpn::findProof(), and osl::checkmate::DualDfpn::isLosingState().
| void osl::checkmate::Dfpn::proofOracleAttack | ( | const ProofOracle & | oracle, |
| int | proof_limit ) |
Definition at line 2745 of file dfpn.cc.
References osl::PieceStand::add(), osl::stat::Ratio::add(), osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::OracleAdjust::attack(), osl::checkmate::BadAttackLoop, osl::checkmate::DfpnRecordBase::best_move, osl::checkmate::ProofDisproof::Checkmate(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::FixedCapacityVector< T, Capacity >::clear(), osl::hash::HashKey::dumpContents(), findDagSource(), osl::checkmate::FixedDepthSolverExt::hasCheckmateMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::Dfpn::Node::isLoop(), osl::Move::isNormal(), osl::checkmate::Dfpn::ProofOracle::key, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::ProofOracle::newOracle(), osl::checkmate::Dfpn::Node::nextWhiteStand(), node_count, node_count_limit, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::PAWN, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::Move::ptype(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, root_proof_simulation_limit, osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setLoopDetection(), table, thread_id, osl::checkmate::Dfpn::ProofOracle::traceable(), tree, osl::WHITE, osl::checkmate::Dfpn::NodeBase::white_stand, and osl::checkmate::Dfpn::ProofOracle::white_stand.
Referenced by tryProofMain().
| void osl::checkmate::Dfpn::proofOracleDefense | ( | const ProofOracle & | oracle, |
| int | proof_limit ) |
Definition at line 2871 of file dfpn.cc.
References osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::BadAttackLoop, osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::checkmate::DfpnRecord::disproof(), osl::FixedCapacityVector< T, Capacity >::empty(), findDagSource(), generateEscape(), grandParentSimulationSuitable(), osl::checkmate::FixedDepthSolverExt::hasEscapeByMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::ProofPieces::leaf(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::ProofOracle::newOracle(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::ProofDisproof::NoCheckmate(), node_count, osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::checkmate::DfpnRecord::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, ProofSimulationTolerance, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::FixedCapacityVector< T, Capacity >::size(), table, osl::Move::to(), osl::checkmate::Dfpn::ProofOracle::traceable(), tree, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.
|
inline |
Definition at line 131 of file dfpn.h.
References blocking_verify.
| void osl::checkmate::Dfpn::setIllegal | ( | const HashKey & | key, |
| PieceStand | white ) |
Definition at line 1311 of file dfpn.cc.
References osl::BLACK, osl::hash::HashKey128::blackStand(), osl::checkmate::ProofDisproof::NoCheckmate(), path_table, osl::checkmate::DfpnRecordBase::proof_disproof, osl::checkmate::DfpnRecord::setDisproofPieces(), table, and osl::WHITE.
Referenced by osl::checkmate::DualDfpn::writeRootHistory().
|
inline |
Definition at line 132 of file dfpn.h.
References parallel_shared, and thread_id.
| void osl::checkmate::Dfpn::setTable | ( | DfpnTable * | new_table | ) |
Definition at line 1296 of file dfpn.cc.
References EnableGCDepth, GrowthLimitInfty, parallel_shared, path_table, table, and tree.
|
static |
Definition at line 1554 of file dfpn.cc.
References osl::FixedCapacityVector< T, Capacity >::begin(), osl::PTYPE_EMPTY, and osl::FixedCapacityVector< T, Capacity >::size().
Referenced by generateCheck(), and generateEscape().
| const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::tryProof | ( | const NumEffectState & | state, |
| const HashKey & | key, | ||
| const PathEncoding & | path, | ||
| const ProofOracle & | oracle, | ||
| size_t | oracle_id, | ||
| Move & | best_move, | ||
| Move | last_move = Move::INVALID() ) |
Definition at line 1392 of file dfpn.cc.
References tryProofMain().
Referenced by osl::checkmate::DualDfpn::findProof().
| const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::tryProofLight | ( | const NumEffectState & | state, |
| const HashKey & | key, | ||
| const PathEncoding & | path, | ||
| const ProofOracle & | oracle, | ||
| size_t | oracle_id, | ||
| Move & | best_move, | ||
| Move | last_move = Move::INVALID() ) |
Definition at line 1400 of file dfpn.cc.
References tryProofMain().
Referenced by osl::checkmate::DualDfpn::findProof().
|
private |
References osl::Move::INVALID().
Referenced by tryProof(), and tryProofLight().
| const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::tryProofMain | ( | const NumEffectState & | state, |
| const HashKey & | key, | ||
| const PathEncoding & | path, | ||
| const ProofOracle & | oracle, | ||
| size_t | oracle_id, | ||
| Move & | best_move, | ||
| Move | last_move ) |
Definition at line 1412 of file dfpn.cc.
References osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, osl::checkmate::Dfpn::Node::clear(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, node_count, node_count_limit, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, path_table, osl::checkmate::DfpnRecordBase::proof_disproof, proofOracleAttack(), ProofSimulationTolerance, osl::checkmate::Dfpn::NodeBase::record, ROOT_DISPROOF_TOL, root_proof_simulation_limit, ROOT_PROOF_TOL, table, thread_id, osl::checkmate::Dfpn::NodeBase::threshold, tree, osl::checkmate::DfpnRecordBase::tried_oracle, osl::SimpleState::turn(), osl::checkmate::DfpnPathRecord::twin_list, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.
|
private |
Definition at line 125 of file dfpn.h.
Referenced by defense(), Dfpn(), and setBlockingVerify().
|
private |
Definition at line 121 of file dfpn.h.
Referenced by attack(), defense(), hasCheckmateMove(), hasEscapeMove(), nodeCount(), proofOracleAttack(), proofOracleDefense(), and tryProofMain().
|
private |
Definition at line 122 of file dfpn.h.
Referenced by attack(), defense(), hasCheckmateMove(), hasEscapeMove(), proofOracleAttack(), and tryProofMain().
|
private |
Definition at line 123 of file dfpn.h.
Referenced by attack(), defense(), Dfpn(), findDagSource(), hasCheckmateMove(), setParallel(), and setTable().
|
private |
Definition at line 120 of file dfpn.h.
Referenced by analyze(), attack(), clear(), defense(), Dfpn(), distance(), hasCheckmateMove(), hasEscapeMove(), proofOracleAttack(), proofOracleDefense(), setIllegal(), setTable(), and tryProofMain().
|
private |
Definition at line 115 of file dfpn.h.
Referenced by analyze(), attack(), blockingSimulation(), currentTable(), defense(), Dfpn(), findDagSource(), grandParentSimulation(), hasCheckmateMove(), hasEscapeMove(), proofOracleAttack(), proofOracleDefense(), setIllegal(), setTable(), and tryProofMain().
|
private |
Definition at line 124 of file dfpn.h.
Referenced by attack(), defense(), Dfpn(), hasCheckmateMove(), proofOracleAttack(), setParallel(), and tryProofMain().
|
private |
Definition at line 119 of file dfpn.h.
Referenced by attack(), blockingSimulation(), defense(), Dfpn(), findDagSource(), findDagSource(), grandParentSimulation(), grandParentSimulationSuitable(), hasCheckmateMove(), hasEscapeMove(), proofOracleAttack(), proofOracleDefense(), setTable(), and tryProofMain().