#include <alphaBeta3.h>


| Classes | |
| struct | CallQuiesce | 
| struct | CallSearch | 
| struct | PVInfo | 
| struct | PVVector | 
| struct | SearchInfo | 
| Public Types | |
| enum | MoveCategory { Initial, KingEscape, Pass, TakeBack, Capture, Killer, CaptureAll, All } | 
| enum | { MaxDepth = 64 } | 
| enum | NodeType { PvNode = 0, CutNode = 1, AllNode = -1 } | 
| typedef SearchState2::checkmate_t | checkmate_t | 
| typedef eval::ml::OpenMidEndingEval | eval_t | 
| Public Member Functions | |
| AlphaBeta3 (const NumEffectState &s, checkmate_t &checker, SimpleHashTable *t, CountRecorder &) | |
| ~AlphaBeta3 () | |
| Move | computeBestMoveIteratively (int limit, int step, int initial_limit=600, size_t node_limit=1600000, const TimeAssigned &assign=TimeAssigned(MilliSeconds::Interval(60 *1000)), MoveWithComment *additional_info=0) | 
| bool | isReasonableMove (Move move, int pawn_sacrifice=1) | 
| void | setRootIgnoreMoves (const MoveVector *rim, bool) | 
| void | setHistory (const MoveStack &h) | 
| void | enableMultiPV (unsigned int) | 
| template<osl::Player P> | |
| osl::Move | nextMove () | 
| template<osl::Player P> | |
| void | generateAllMoves (const NumEffectState &state, const SearchInfo &parent, SearchInfo &node) | 
| template<osl::Player P> | |
| void | generateCapture (const NumEffectState &state, SearchInfo &node) | 
| template<osl::Player P> | |
| bool | seePlusLight (const NumEffectState &state, Move m) | 
| template<osl::Player P> | |
| void | generateCaptureAll (const NumEffectState &state, SearchInfo &node) | 
|  Public Member Functions inherited from osl::search::SearchTimer | |
| SearchTimer () | |
| SearchTimer (const SearchTimer &src) | |
| virtual | ~SearchTimer () | 
| void | setTimeAssign (const TimeAssigned &a) | 
| void | setStartTime (MilliSeconds start) | 
| void | setStable (bool new_stable) | 
| bool | isStableNow () const | 
| bool | hasSchedule () const | 
| const TimeAssigned & | timeAssigned () const | 
| const MilliSeconds | startTime () const | 
| double | elapsed (MilliSeconds now) const | 
| double | elapsed () const | 
| void | setNextIterationCoefficient (double new_value) | 
| void | setNodeCountHardLimit (uint64_t new_value) | 
| double | nextIterationCoefficient () const | 
| bool | stopping () const | 
| void | stopNow () | 
| SearchTimerCommon::StopReason | stopReason () | 
| void | throwIfNoMoreTime (uint64_t node_count) | 
| int | nodeAffordable () const | 
| void | addMonitor (const boost::shared_ptr< SearchMonitor > &) | 
| bool | hasMonitor () const | 
| const vector < boost::shared_ptr < SearchMonitor > > & | monitors () const | 
| int | lastMemoryUseRatio1000 () const | 
| Static Public Member Functions | |
| static void | showNodeDepth (std::ostream &) | 
| static void | clearNodeDepth () | 
| template<Player P> | |
| static void | generateAllMoves (const NumEffectState &state, const SearchInfo &, SearchInfo &) | 
| template<Player P> | |
| static void | generateCapture (const NumEffectState &state, SearchInfo &) | 
| template<Player P> | |
| static void | generateCaptureAll (const NumEffectState &state, SearchInfo &) | 
| template<Player P> | |
| static bool | seePlusLight (const NumEffectState &state, Move m) | 
|  Static Public Member Functions inherited from osl::search::SearchTimer | |
| static void | adjustMemoryUseLimit (double scale=0.9) | 
| メモリとノード数の関係を調整.  More... | |
| Private Member Functions | |
| Move | searchRoot (int limit) | 
| template<Player P> | |
| int | makeMoveAndSearch (Move, int consume) | 
| template<Player P> | |
| void | presearch () | 
| template<Player P> | |
| void | search () | 
| template<Player P> | |
| Move | nextMove () | 
| template<Player P> | |
| void | quiesceRoot () | 
| template<Player P> | |
| int | makeMoveAndQuiesce (Move) | 
| template<Player P> | |
| void | quiesce () | 
| bool | reductionOk () const | 
| int | evalValue () const | 
|  Private Member Functions inherited from osl::search::FixedEval | |
| FixedEval () | |
| void | setDrawValue (int value) | 
| int | drawValue () const | 
| ~FixedEval () | |
| Private Attributes | |
| volatile int | stop_by_alarm | 
| NumEffectState | state | 
| int | depth | 
| CountRecorder & | recorder | 
| SimpleHashTable * | table_common | 
| Friends | |
| struct | CallSearch< BLACK > | 
| struct | CallSearch< WHITE > | 
| struct | CallQuiesce< BLACK > | 
| struct | CallQuiesce< WHITE > | 
| Additional Inherited Members | |
|  Static Private Member Functions inherited from osl::search::FixedEval | |
| static int | winByFoul (Player P) | 
| 相手の王手千日手,打歩詰.  More... | |
| static int | winByLoop (Player P) | 
| 駒得するループ.  More... | |
| static int | winByCheckmate (Player P) | 
| 詰による勝  More... | |
| static int | minusInfty (Player P) | 
| 探索windowの下限 (負けでも更新される値)  More... | |
| static int | winThreshold (Player P) | 
| この値を越えれば勝.  More... | |
| static int | windowMax (Player P) | 
| 探索して意味がある範囲 (偶数)  More... | |
| static int | brinkmatePenalty (Player P, int limit) | 
| 必死(に見える)局面の評価値 Pが負けそう  More... | |
| static int | threatmatePenalty (Player P) | 
| 末端で詰めろがかかっている場合のペナルティ.  More... | |
| static int | isWinValue (Player P, int val) | 
| 勝かどうか.  More... | |
Definition at line 21 of file alphaBeta3.h.
Definition at line 25 of file alphaBeta3.h.
Definition at line 26 of file alphaBeta3.h.
| anonymous enum | 
| Enumerator | |
|---|---|
| MaxDepth | |
Definition at line 47 of file alphaBeta3.h.
| Enumerator | |
|---|---|
| Initial | |
| KingEscape | |
| Pass | |
| TakeBack | |
| Capture | |
| Killer | |
| CaptureAll | |
| All | |
Definition at line 46 of file alphaBeta3.h.
| Enumerator | |
|---|---|
| PvNode | |
| CutNode | |
| AllNode | |
Definition at line 48 of file alphaBeta3.h.
| osl::search::AlphaBeta3::AlphaBeta3 | ( | const NumEffectState & | s, | 
| checkmate_t & | checker, | ||
| SimpleHashTable * | t, | ||
| CountRecorder & | r | ||
| ) | 
Definition at line 142 of file alphaBeta3.cc.
References osl::rating::StandardFeatureSet::instance(), and MaxDepth.
| osl::search::AlphaBeta3::~AlphaBeta3 | ( | ) | 
Definition at line 153 of file alphaBeta3.cc.
| 
 | static | 
Definition at line 261 of file alphaBeta3.cc.
| osl::Move osl::search::AlphaBeta3::computeBestMoveIteratively | ( | int | limit, | 
| int | step, | ||
| int | initial_limit = 600, | ||
| size_t | node_limit = 1600000, | ||
| const TimeAssigned & | assign = TimeAssigned(MilliSeconds::Interval(60*1000)), | ||
| MoveWithComment * | additional_info = 0 | ||
| ) | 
Definition at line 168 of file alphaBeta3.cc.
References osl::search::BigramKillerMove::clear(), osl::stat::Average::clear(), osl::search::CompactHashTable::clear(), osl::stat::Average::getAverage(), limit, osl::eval::min(), osl::search::CompactHashTable::probe_fail, osl::search::CompactHashTable::probe_success, and osl::search::CompactHashTable::table.
| 
 | inline | 
Definition at line 40 of file alphaBeta3.h.
| 
 | private | 
Definition at line 158 of file alphaBeta3.cc.
References depth.
| 
 | static | 
| void osl::search::AlphaBeta3::generateAllMoves | ( | const NumEffectState & | state, | 
| const SearchInfo & | parent, | ||
| SearchInfo & | node | ||
| ) | 
Definition at line 735 of file alphaBeta3.cc.
References osl::search::AlphaBeta3::SearchInfo::alpha, osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), cut_drop_move_in_frontier_node, osl::eval::delta(), osl::search::AlphaBeta3::SearchInfo::eval, extended_futility_margin, extended_futility_pruning_enabled, futility_pruning_enabled, osl::rating::FeatureSet::generateRating(), osl::search::AlphaBeta3::SearchInfo::height, osl::search::AlphaBeta3::SearchInfo::in_check, osl::rating::StandardFeatureSet::instance(), moves, osl::search::AlphaBeta3::SearchInfo::moves, osl::search::AlphaBeta3::SearchInfo::node_type, and osl::eval::ml::OpenMidEndingEval::value().
| 
 | static | 
| void osl::search::AlphaBeta3::generateCapture | ( | const NumEffectState & | state, | 
| SearchInfo & | node | ||
| ) | 
Definition at line 771 of file alphaBeta3.cc.
References osl::move_generator::capture::generate(), osl::move_generator::GenerateCapture::generate(), osl::PtypeTable::getIndexLimit(), osl::PtypeTable::getIndexMin(), osl::Piece::isOnBoardByOwner(), osl::search::AlphaBeta3::SearchInfo::moves, osl::PieceStand::order, osl::PAWN, osl::Ptype_Table, osl::Piece::square(), and store().
| 
 | static | 
| void osl::search::AlphaBeta3::generateCaptureAll | ( | const NumEffectState & | state, | 
| SearchInfo & | node | ||
| ) | 
Definition at line 835 of file alphaBeta3.cc.
References osl::move_generator::GenerateCapture::generate(), osl::PtypeTable::getIndexLimit(), osl::PtypeTable::getIndexMin(), osl::Piece::isOnBoardByOwner(), osl::search::AlphaBeta3::SearchInfo::moves, osl::PieceStand::order, osl::Ptype_Table, osl::Piece::square(), and store().
| bool osl::search::AlphaBeta3::isReasonableMove | ( | Move | move, | 
| int | pawn_sacrifice = 1 | ||
| ) | 
Definition at line 242 of file alphaBeta3.cc.
| 
 | private | 
Definition at line 935 of file alphaBeta3.cc.
References depth.
| 
 | private | 
Definition at line 369 of file alphaBeta3.cc.
References osl::search::AlphaBeta3::SearchInfo::alpha, osl::search::AlphaBeta3::SearchInfo::beta, depth, osl::search::AlphaBeta3::SearchInfo::eval, osl::search::AlphaBeta3::SearchInfo::extended, osl::search::AlphaBeta3::SearchInfo::hash_key, osl::Sennichite::hasWinner(), osl::search::AlphaBeta3::SearchInfo::height, osl::Sennichite::isDraw(), osl::Move::isNormal(), osl::search::AlphaBeta3::SearchInfo::moved, osl::search::AlphaBeta3::SearchInfo::node_type, osl::PathEncoding::path, osl::search::AlphaBeta3::SearchInfo::path, osl::PathEncoding::popMove(), osl::PathEncoding::pushMove(), osl::search::AlphaBeta3::SearchInfo::pv, and osl::Sennichite::winner().
| 
 | private | 
| osl::Move osl::search::AlphaBeta3::nextMove | ( | ) | 
Definition at line 671 of file alphaBeta3.cc.
References osl::All, depth, osl::move_generator::GenerateCapture::generate(), osl::move_generator::GenerateEscape< P >::generate(), osl::search::KillerMoveTable::getMove(), osl::search::BigramKillerMove::getMove(), osl::search::AlphaBeta3::SearchInfo::in_check, osl::Move::isNormal(), osl::search::AlphaBeta3::SearchInfo::move_index, osl::search::AlphaBeta3::SearchInfo::move_type, osl::search::AlphaBeta3::SearchInfo::moved, osl::search::AlphaBeta3::SearchInfo::moves, osl::search::AlphaBeta3::SearchInfo::node_type, osl::Move::PASS(), osl::TakeBack, and osl::Move::to().
| 
 | private | 
Definition at line 422 of file alphaBeta3.cc.
References osl::search::AlphaBeta3::SearchInfo::alpha, osl::alt(), osl::search::CompactRecord::best_move, best_move_extension_enabled, osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), depth, osl::search::AlphaBeta3::SearchInfo::eval, osl::search::AlphaBeta3::SearchInfo::extended, osl::search::AlphaBeta3::SearchInfo::hash_key, osl::search::AlphaBeta3::SearchInfo::height, osl::search::AlphaBeta3::SearchInfo::in_check, osl::Move::isNormal(), osl::Move::isPass(), osl::KING, lmr_enabled, lmr_fullwidth, lmr_reduce_limit, lmr_verify_enabled, osl::eval::min(), osl::search::AlphaBeta3::SearchInfo::moved, moves, osl::search::AlphaBeta3::SearchInfo::node_type, osl::search::CompactHashTable::probe(), osl::search::AlphaBeta3::SearchInfo::search_value, table_record_limit, osl::Move::to(), and osl::eval::ml::OpenMidEndingEval::update().
| 
 | private | 
Definition at line 957 of file alphaBeta3.cc.
References osl::search::AlphaBeta3::SearchInfo::alpha, osl::alt(), osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), osl::eval::ml::OpenMidEndingEval::captureValue(), osl::eval::delta(), depth, osl::search::AlphaBeta3::SearchInfo::eval, osl::move_generator::GenerateCapture::generate(), osl::move_generator::GenerateEscape< P >::generate(), osl::PtypeTable::getIndexLimit(), osl::PtypeTable::getIndexMin(), immediate_checkmate_enabled, osl::search::AlphaBeta3::SearchInfo::in_check, osl::Piece::isOnBoardByOwner(), osl::eval::min(), osl::search::AlphaBeta3::SearchInfo::moved, osl::search::AlphaBeta3::SearchInfo::moves, osl::newPtypeO(), osl::search::AlphaBeta3::SearchInfo::node_type, osl::PieceStand::order, osl::search::promoteIf(), osl::Ptype_Table, osl::search::AlphaBeta3::SearchInfo::pv, osl::search::AlphaBeta3::SearchInfo::search_value, osl::search::AlphaBeta3::PVVector::setPV(), osl::Piece::square(), and osl::eval::ml::OpenMidEndingEval::update().
| 
 | private | 
Definition at line 866 of file alphaBeta3.cc.
References osl::search::AlphaBeta3::SearchInfo::alpha, osl::alt(), osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), osl::eval::ml::OpenMidEndingEval::captureValue(), osl::eval::delta(), depth, osl::search::AlphaBeta3::SearchInfo::eval, osl::move_generator::GenerateCapture::generate(), osl::move_generator::GenerateEscape< P >::generate(), osl::PtypeTable::getIndexLimit(), osl::PtypeTable::getIndexMin(), immediate_checkmate_enabled, osl::search::AlphaBeta3::SearchInfo::in_check, osl::Piece::isOnBoardByOwner(), osl::search::AlphaBeta3::SearchInfo::moves, osl::newPtypeO(), osl::search::AlphaBeta3::SearchInfo::node_type, osl::PieceStand::order, osl::search::promoteIf(), osl::Ptype_Table, osl::search::AlphaBeta3::SearchInfo::pv, osl::search::AlphaBeta3::SearchInfo::search_value, osl::search::AlphaBeta3::PVVector::setPV(), and osl::Piece::square().
| 
 | inlineprivate | 
Definition at line 409 of file alphaBeta3.cc.
References depth, osl::search::AlphaBeta3::SearchInfo::in_check, osl::Move::isCaptureOrPromotion(), and osl::search::AlphaBeta3::SearchInfo::moved.
| 
 | private | 
Definition at line 541 of file alphaBeta3.cc.
References osl::stat::Average::add(), osl::eval::betterThan(), osl::eval::delta(), depth, osl::search::CompactRecord::Exact, extended_futility_margin, extended_futility_pruning_enabled, futility_margin, futility_pruning_enabled, immediate_checkmate_enabled, osl::Move::isInvalid(), osl::search::CompactRecord::LowerBound, osl::search::CompactHashTable::probe(), osl::search::BigramKillerMove::setMove(), osl::search::KillerMoveTable::setMove(), osl::search::CompactHashTable::store(), table_record_limit, and osl::search::CompactRecord::UpperBound.
| 
 | private | 
Definition at line 267 of file alphaBeta3.cc.
References osl::search::AlphaBeta3::SearchInfo::alpha, osl::alt(), osl::search::CompactRecord::best_move, osl::search::AlphaBeta3::SearchInfo::beta, osl::eval::betterThan(), osl::BLACK, osl::search::ShouldPromoteCut::canIgnoreAndNotDrop(), decorate_csa_in_pv, osl::eval::delta(), depth, osl::search::AlphaBeta3::SearchInfo::eval, osl::search::CompactRecord::Exact, osl::find(), osl::move_generator::capture::generate(), osl::rating::FeatureSet::generateRating(), osl::search::AlphaBeta3::SearchInfo::hash_key, osl::search::AlphaBeta3::SearchInfo::height, osl::rating::StandardFeatureSet::instance(), osl::Move::isNormal(), limit, osl::search::CompactRecord::limit, osl::search::AlphaBeta3::SearchInfo::moved, moves, osl::search::AlphaBeta3::SearchInfo::moves, osl::search::AlphaBeta3::SearchInfo::node_type, osl::Move::PASS(), osl::search::AlphaBeta3::SearchInfo::path, osl::search::CompactHashTable::probe(), osl::search::AlphaBeta3::SearchInfo::pv, osl::search::SimpleHashRecord::setLowerBound(), osl::search::AlphaBeta3::PVVector::setPV(), osl::record::csa::show(), show_height_in_pv, osl::search::CompactHashTable::store(), osl::search::CompactRecord::type, and osl::search::CompactRecord::value.
| 
 | static | 
| 
 | inline | 
Definition at line 823 of file alphaBeta3.cc.
References osl::Move::capturePtype(), osl::Move::isDrop(), osl::Move::oldPtype(), osl::Move::player(), osl::eval::Ptype_Eval_Table, osl::Move::to(), and osl::eval::PtypeEvalTable::value().
| void osl::search::AlphaBeta3::setHistory | ( | const MoveStack & | h) | 
Definition at line 252 of file alphaBeta3.cc.
| void osl::search::AlphaBeta3::setRootIgnoreMoves | ( | const MoveVector * | rim, | 
| bool | |||
| ) | 
Definition at line 248 of file alphaBeta3.cc.
| 
 | static | 
Definition at line 257 of file alphaBeta3.cc.
| 
 | friend | 
Definition at line 87 of file alphaBeta3.h.
| 
 | friend | 
Definition at line 88 of file alphaBeta3.h.
| 
 | friend | 
Definition at line 84 of file alphaBeta3.h.
| 
 | friend | 
Definition at line 86 of file alphaBeta3.h.
| 
 | private | 
Definition at line 100 of file alphaBeta3.h.
| 
 | private | 
Definition at line 101 of file alphaBeta3.h.
| 
 | private | 
Definition at line 99 of file alphaBeta3.h.
| 
 | private | 
Definition at line 98 of file alphaBeta3.h.
| 
 | private | 
Definition at line 102 of file alphaBeta3.h.
 1.8.4
 1.8.4