Base class for UCT searches in Go. More...
#include <GoUctSearch.h>

Public Member Functions | |
| GoUctSearch (GoBoard &bd, SgUctThreadStateFactory *factory) | |
| Constructor. | |
| ~GoUctSearch () | |
| void | SetThreadStateFactory (SgUctThreadStateFactory *factory) |
| SgUctThreadState & | ThreadState (int i) const |
| bool | ThreadsCreated () const |
| void | CreateThreads () |
| virtual SgUctValue | UnknownEval () const =0 |
| virtual void | OnEndSearch () |
| virtual void | OnThreadStartSearch (SgUctThreadState &state) |
| virtual void | OnThreadEndSearch (SgUctThreadState &state) |
| virtual SgUctValue | GamesPlayed () const |
| void | GenerateAllMoves (std::vector< SgUctMoveInfo > &moves) |
| void | PlayGame () |
| void | StartSearch (const std::vector< SgMove > &rootFilter=std::vector< SgMove >(), SgUctTree *initTree=0) |
| void | EndSearch () |
| SgUctValue | Search (SgUctValue maxGames, double maxTime, std::vector< SgMove > &sequence, const std::vector< SgMove > &rootFilter=std::vector< SgMove >(), SgUctTree *initTree=0, SgUctEarlyAbortParam *earlyAbort=0) |
| SgPoint | SearchOnePly (SgUctValue maxGames, double maxTime, SgUctValue &value) |
| const SgUctNode * | FindBestChild (const SgUctNode &node, const std::vector< SgMove > *excludeMoves=0) const |
| void | FindBestSequence (std::vector< SgMove > &sequence) const |
| SgUctValue | GetBound (bool useRave, const SgUctNode &node, const SgUctNode &child) const |
| const SgUctGameInfo & | LastGameInfo () const |
| std::string | LastGameSummaryLine () const |
| bool | WasEarlyAbort () const |
| const SgUctTree & | Tree () const |
| SgUctTree & | GetTempTree () |
| float | BiasTermConstant () const |
| void | SetBiasTermConstant (float biasTermConstant) |
| std::vector< SgUctValue > | KnowledgeThreshold () const |
| void | SetKnowledgeThreshold (const std::vector< SgUctValue > &counts) |
| std::size_t | MaxNodes () const |
| void | SetMaxNodes (std::size_t maxNodes) |
| unsigned int | NumberThreads () const |
| void | SetNumberThreads (unsigned int n) |
| bool | LockFree () const |
| void | SetLockFree (bool enable) |
| int | RandomizeRaveFrequency () const |
| void | SetRandomizeRaveFrequency (int frequency) |
| bool | RaveCheckSame () const |
| void | SetRaveCheckSame (bool enable) |
| SgUctValue | FirstPlayUrgency () const |
| void | SetFirstPlayUrgency (SgUctValue firstPlayUrgency) |
| bool | LogGames () const |
| void | SetLogGames (bool enable) |
| std::size_t | MaxGameLength () const |
| void | SetMaxGameLength (std::size_t maxGameLength) |
| SgUctValue | ExpandThreshold () const |
| void | SetExpandThreshold (SgUctValue expandThreshold) |
| std::size_t | NumberPlayouts () const |
| void | SetNumberPlayouts (std::size_t n) |
| bool | Rave () const |
| void | SetRave (bool enable) |
| SgUctMoveSelect | MoveSelect () const |
| void | SetMoveSelect (SgUctMoveSelect moveSelect) |
| float | RaveWeightInitial () const |
| void | SetRaveWeightInitial (float value) |
| float | RaveWeightFinal () const |
| void | SetRaveWeightFinal (float value) |
| bool | WeightRaveUpdates () const |
| void | SetWeightRaveUpdates (bool enable) |
| bool | VirtualLoss () const |
| void | SetVirtualLoss (bool enable) |
| bool | PruneFullTree () const |
| void | SetPruneFullTree (bool enable) |
| SgUctValue | PruneMinCount () const |
| void | SetPruneMinCount (SgUctValue n) |
| bool | CheckFloatPrecision () const |
| void | SetCheckFloatPrecision (bool enable) |
| void | SetMpiSynchronizer (const SgMpiSynchronizerHandle &synchronizerHandle) |
| SgMpiSynchronizerHandle | MpiSynchronizer () |
| const SgMpiSynchronizerHandle | MpiSynchronizer () const |
| const SgUctSearchStat & | Statistics () const |
| void | WriteStatistics (std::ostream &out) const |
Pure virtual functions of SgUctSearch | |
| std::string | MoveString (SgMove move) const |
| SgBlackWhite | ToPlay () const |
| Color to play at the root node of the last search. | |
Virtual functions of SgUctSearch | |
| void | OnSearchIteration (SgUctValue gameNumber, unsigned int threadId, const SgUctGameInfo &info) |
| void | OnStartSearch () |
Go-specific functions | |
| GoBoard & | Board () |
| const GoBoard & | Board () const |
| void | SaveGames (const std::string &fileName) const |
| See SetKeepGames(). | |
| void | SaveTree (std::ostream &out, int maxDepth=-1) const |
| See GoUctUtil::SaveTree(). | |
| void | SetToPlay (SgBlackWhite toPlay) |
| Set initial color to play. | |
| const GoBoardHistory & | BoardHistory () const |
| Identifier for the position the last search was performed on. | |
Go-specific parameters | |
| bool | KeepGames () const |
| Keep a SGF tree of all games. | |
| void | SetKeepGames (bool enable) |
| See KeepGames(). | |
| GoUctLiveGfx | LiveGfx () const |
| Output live graphics commands for GoGui. | |
| void | SetLiveGfx (GoUctLiveGfx mode) |
| See LiveGfx(). | |
| SgUctValue | LiveGfxInterval () const |
| Interval for outputting of live graphics commands for GoGui. | |
| void | SetLiveGfxInterval (SgUctValue interval) |
| See LiveGfxInterval(). | |
Static Public Member Functions | |
| static SgUctValue | InverseEval (SgUctValue eval) |
| static SgUctValue | InverseEstimate (SgUctValue eval) |
Protected Member Functions | |
| virtual void | DisplayGfx () |
Private Member Functions | |
| GoUctSearch (const GoUctSearch &search) | |
| Not implemented. | |
| GoUctSearch & | operator= (const GoUctSearch &search) |
| Not implemented. | |
Private Attributes | |
| bool | m_keepGames |
| See SetKeepGames(). | |
| SgUctValue | m_liveGfxInterval |
| See SetLiveGfxInterval(). | |
| volatile SgUctValue | m_nextLiveGfx |
| SgBlackWhite | m_toPlay |
| Color to play. | |
| SgBWSet | m_stones |
| Stones of position that the current search tree belongs to. | |
| GoBoard & | m_bd |
| SgNode * | m_root |
| See SetKeepGames(). | |
| GoUctLiveGfx | m_liveGfx |
| GoBoardHistory | m_boardHistory |
Base class for UCT searches in Go.
Definition at line 149 of file GoUctSearch.h.
| GoUctSearch::GoUctSearch | ( | GoBoard & | bd, | |
| SgUctThreadStateFactory * | factory | |||
| ) |
Constructor.
| bd | The board | |
| factory |
Definition at line 172 of file GoUctSearch.cpp.
References SgUctSearch::SetRaveCheckSame(), and SG_BLACK.
| GoUctSearch::~GoUctSearch | ( | ) |
Definition at line 184 of file GoUctSearch.cpp.
References SgNode::DeleteTree(), and m_root.
| GoUctSearch::GoUctSearch | ( | const GoUctSearch & | search | ) | [private] |
Not implemented.
| GoBoard & GoUctSearch::Board | ( | ) |
Definition at line 277 of file GoUctSearch.h.
References m_bd.
Referenced by GoUctEstimatorStat::Compute(), GoUctGlobalSearchStateFactory< POLICY, FACTORY >::Create(), GoUctGlobalSearch< POLICY, FACTORY >::DisplayGfx(), GoUctGlobalSearch< POLICY, FACTORY >::OnStartSearch(), and GoUctSearchUtil::TrompTaylorPassCheck().
| const GoBoard & GoUctSearch::Board | ( | ) | const |
Definition at line 282 of file GoUctSearch.h.
References m_bd.
| const GoBoardHistory & GoUctSearch::BoardHistory | ( | ) | const |
Identifier for the position the last search was performed on.
Definition at line 287 of file GoUctSearch.h.
References m_boardHistory.
| void GoUctSearch::DisplayGfx | ( | ) | [protected, virtual] |
Reimplemented in GoUctGlobalSearch< POLICY, FACTORY >.
Definition at line 212 of file GoUctSearch.cpp.
References GoUctUtil::GfxBestMove(), GoUctUtil::GfxCounts(), GoUctUtil::GfxMoveValues(), GoUctUtil::GfxSequence(), GoUctUtil::GfxStatus(), GOUCT_LIVEGFX_COUNTS, GOUCT_LIVEGFX_NONE, GOUCT_LIVEGFX_SEQUENCE, m_liveGfx, m_toPlay, SG_ASSERT, SgDebug(), and SgUctSearch::Tree().
Referenced by OnSearchIteration().
| bool GoUctSearch::KeepGames | ( | ) | const |
Keep a SGF tree of all games.
This is reset in OnStartSearch() and can be saved with SaveGames().
Definition at line 292 of file GoUctSearch.h.
References m_keepGames.
Referenced by GoUctCommands::CmdParamSearch().
| GoUctLiveGfx GoUctSearch::LiveGfx | ( | ) | const |
Output live graphics commands for GoGui.
If enabled, LiveGfx commands for GoGui are outputted to the debug stream every n games. Note that GoUctUtil::GoGuiGfx() outputs values as influence data and assumes values in [0:1].
Definition at line 297 of file GoUctSearch.h.
References m_liveGfx.
Referenced by GoUctCommands::CmdParamSearch().
| SgUctValue GoUctSearch::LiveGfxInterval | ( | ) | const |
Interval for outputting of live graphics commands for GoGui.
Default is every 5000 games.
Definition at line 302 of file GoUctSearch.h.
References m_liveGfxInterval.
Referenced by GoUctCommands::CmdParamSearch().
| std::string GoUctSearch::MoveString | ( | SgMove | move | ) | const [virtual] |
Implements SgUctSearch.
Definition at line 191 of file GoUctSearch.cpp.
References SgPointUtil::PointToString().
| void GoUctSearch::OnSearchIteration | ( | SgUctValue | gameNumber, | |
| unsigned int | threadId, | |||
| const SgUctGameInfo & | info | |||
| ) | [virtual] |
Reimplemented from SgUctSearch.
Definition at line 196 of file GoUctSearch.cpp.
References DisplayGfx(), GOUCT_LIVEGFX_NONE, SgUctSearch::LockFree(), m_liveGfx, m_liveGfxInterval, m_nextLiveGfx, m_root, and m_toPlay.
| void GoUctSearch::OnStartSearch | ( | ) | [virtual] |
Reimplemented from SgUctSearch.
Reimplemented in GoUctGlobalSearch< POLICY, FACTORY >.
Definition at line 234 of file GoUctSearch.cpp.
References GoBoard::All(), GoNodeUtil::CreateRoot(), SgNode::DeleteTree(), GO_MAX_NUM_MOVES, SgUctSearch::LockFree(), m_bd, m_boardHistory, m_keepGames, m_liveGfxInterval, m_nextLiveGfx, m_root, m_stones, m_toPlay, GoBoard::MoveNumber(), GoBoardHistory::SetFromBoard(), SgUctSearch::SetMaxGameLength(), SgWarning(), GoBoard::Size(), and GoBoard::ToPlay().
| GoUctSearch& GoUctSearch::operator= | ( | const GoUctSearch & | search | ) | [private] |
Not implemented.
| void GoUctSearch::SaveGames | ( | const std::string & | fileName | ) | const |
See SetKeepGames().
| SgException | if KeepGames() was false at last invocation of StartSearch() |
Definition at line 264 of file GoUctSearch.cpp.
References m_root, and SgUctSearch::MpiSynchronizer().
Referenced by GoUctCommands::CmdSaveGames().
| void GoUctSearch::SaveTree | ( | std::ostream & | out, | |
| int | maxDepth = -1 | |||
| ) | const |
Definition at line 276 of file GoUctSearch.cpp.
References m_bd, m_stones, m_toPlay, GoBoard::Size(), and SgUctSearch::Tree().
Referenced by GoUctCommands::CmdSaveTree().
| void GoUctSearch::SetKeepGames | ( | bool | enable | ) |
See KeepGames().
Definition at line 307 of file GoUctSearch.h.
References m_keepGames.
Referenced by GoUctCommands::CmdParamSearch().
| void GoUctSearch::SetLiveGfx | ( | GoUctLiveGfx | mode | ) |
See LiveGfx().
Definition at line 312 of file GoUctSearch.h.
References m_liveGfx.
Referenced by GoUctCommands::CmdParamSearch().
| void GoUctSearch::SetLiveGfxInterval | ( | SgUctValue | interval | ) |
See LiveGfxInterval().
Definition at line 317 of file GoUctSearch.h.
References m_liveGfxInterval, and SG_ASSERT.
Referenced by GoUctCommands::CmdParamSearch().
| void GoUctSearch::SetToPlay | ( | SgBlackWhite | toPlay | ) |
Set initial color to play.
Definition at line 323 of file GoUctSearch.h.
References m_bd, m_toPlay, and GoBoard::SetToPlay().
| SgBlackWhite GoUctSearch::ToPlay | ( | ) | const |
Color to play at the root node of the last search.
Definition at line 282 of file GoUctSearch.cpp.
References m_toPlay.
Referenced by GoUctCommands::CmdGfx(), GoUctGlobalSearch< POLICY, FACTORY >::DisplayGfx(), and GoUctSearchUtil::TrompTaylorPassCheck().
GoBoard& GoUctSearch::m_bd [private] |
Definition at line 261 of file GoUctSearch.h.
Referenced by Board(), OnStartSearch(), SaveTree(), and SetToPlay().
GoBoardHistory GoUctSearch::m_boardHistory [private] |
Definition at line 268 of file GoUctSearch.h.
Referenced by BoardHistory(), and OnStartSearch().
bool GoUctSearch::m_keepGames [private] |
See SetKeepGames().
Definition at line 242 of file GoUctSearch.h.
Referenced by KeepGames(), OnStartSearch(), and SetKeepGames().
GoUctLiveGfx GoUctSearch::m_liveGfx [private] |
Definition at line 266 of file GoUctSearch.h.
Referenced by DisplayGfx(), LiveGfx(), OnSearchIteration(), and SetLiveGfx().
SgUctValue GoUctSearch::m_liveGfxInterval [private] |
See SetLiveGfxInterval().
Definition at line 245 of file GoUctSearch.h.
Referenced by LiveGfxInterval(), OnSearchIteration(), OnStartSearch(), and SetLiveGfxInterval().
volatile SgUctValue GoUctSearch::m_nextLiveGfx [private] |
Definition at line 247 of file GoUctSearch.h.
Referenced by OnSearchIteration(), and OnStartSearch().
SgNode* GoUctSearch::m_root [private] |
See SetKeepGames().
Definition at line 264 of file GoUctSearch.h.
Referenced by OnSearchIteration(), OnStartSearch(), SaveGames(), and ~GoUctSearch().
SgBWSet GoUctSearch::m_stones [private] |
Stones of position that the current search tree belongs to.
Needed such that the tree can be saved even if the board has changed (e.g. after a move was generated and played).
Definition at line 259 of file GoUctSearch.h.
Referenced by OnStartSearch(), and SaveTree().
SgBlackWhite GoUctSearch::m_toPlay [private] |
Color to play.
Does not use GoBoard::ToPlay(), because the color to play at the root node of the search could be needed after the board has changed (e.g. when saving the tree after a move was generated and played on the board).
Definition at line 254 of file GoUctSearch.h.
Referenced by DisplayGfx(), OnSearchIteration(), OnStartSearch(), SaveTree(), SetToPlay(), and ToPlay().