
Depth-first restart best solution search engine implementation. More...
#include <restart.hh>
Public Member Functions | |
| Restart (Space *s, size_t sz, const Search::Options &o) | |
| Initialize engine for space s (with size sz) and options o. More... | |
| virtual Space * | next (void) |
| Return next better solution (NULL, if none exists or search has been stopped) More... | |
| virtual | ~Restart (void) |
| Destructor. More... | |
Public Member Functions inherited from Gecode::Search::Parallel::DFS | |
| Worker * | worker (unsigned int i) const |
| Provide access to worker i. More... | |
| void | solution (Space *s) |
| Report solution s. More... | |
| Space * | reset (Space *s) |
| Reset engine to restart at space s and return new root space. More... | |
| DFS (Space *s, size_t sz, const Options &o) | |
| Initialize for space s (of size sz) with options o. More... | |
| virtual Statistics | statistics (void) const |
| Return statistics. More... | |
| virtual | ~DFS (void) |
| Destructor. More... | |
Public Member Functions inherited from Gecode::Search::Parallel::Engine | |
| const Options & | opt (void) const |
| Provide access to search options. More... | |
| unsigned int | workers (void) const |
| Return number of workers. More... | |
| Cmd | cmd (void) const |
| Return current command. More... | |
| void | block (void) |
| Block all workers. More... | |
| void | release (Cmd c) |
| Release all workers. More... | |
| void | wait (void) |
| Ensure that worker waits. More... | |
| void | ack_terminate (void) |
| For worker to acknowledge termination command. More... | |
| void | terminated (void) |
| For worker to register termination. More... | |
| void | wait_terminate (void) |
| For worker to wait until termination is legal. More... | |
| void | terminate (void) |
| For engine to peform thread termination. More... | |
| void | ack_reset_start (void) |
| For worker to acknowledge start of reset cycle. More... | |
| void | ack_reset_stop (void) |
| For worker to acknowledge stop of reset cycle. More... | |
| void | wait_reset (void) |
| For worker to wait for all workers to reset. More... | |
| void | idle (void) |
| Report that worker is idle. More... | |
| void | busy (void) |
| Report that worker is busy. More... | |
| void | stop (void) |
| Report that worker has been stopped. More... | |
| Engine (const Options &o) | |
| Initialize with options o. More... | |
| virtual bool | stopped (void) const |
| Check whether engine has been stopped. More... | |
Public Member Functions inherited from Gecode::Search::Engine | |
| virtual | ~Engine (void) |
| Destructor. More... | |
Protected Attributes | |
| Space * | root |
| Root node. More... | |
| Space * | best |
| So-far best solution. More... | |
| bool | reset_needed |
| Whether a reset is needed. More... | |
Protected Attributes inherited from Gecode::Search::Parallel::DFS | |
| Worker ** | _worker |
| Array of worker references. More... | |
Protected Attributes inherited from Gecode::Search::Parallel::Engine | |
| const Options | _opt |
| Search options. More... | |
| volatile Cmd | _cmd |
| The current command. More... | |
| Support::Mutex | _m_wait |
| Mutex for forcing workers to wait. More... | |
| Support::Mutex | _m_term |
| Mutex for access to termination information. More... | |
| volatile unsigned int | _n_term_not_ack |
| Number of workers that have not yet acknowledged termination. More... | |
| Support::Event | _e_term_ack |
| Event for termination acknowledgment. More... | |
| Support::Mutex | _m_wait_terminate |
| Mutex for waiting for termination. More... | |
| volatile unsigned int | _n_not_terminated |
| Number of not yet terminated workers. More... | |
| Support::Event | _e_terminate |
| Event for termination (all threads have terminated) More... | |
| Support::Mutex | _m_reset |
| Mutex for access to reset information. More... | |
| volatile unsigned int | _n_reset_not_ack |
| Number of workers that have not yet acknowledged reset. More... | |
| Support::Event | e_reset_ack_start |
| Event for reset acknowledgment started. More... | |
| Support::Event | e_reset_ack_stop |
| Event for reset acknowledgment stopped. More... | |
| Support::Mutex | m_wait_reset |
| Mutex for waiting for reset. More... | |
| Support::Mutex | m_search |
| Mutex for search. More... | |
| Support::Event | e_search |
| Event for search (solution found, no more solutions, search stopped) More... | |
| Support::DynamicQueue< Space *, Heap > | solutions |
| Queue of solutions. More... | |
| volatile unsigned int | n_busy |
| Number of busy workers. More... | |
| volatile bool | has_stopped |
| Whether a worker had been stopped. More... | |
Additional Inherited Members | |
Public Types inherited from Gecode::Search::Parallel::Engine | |
| enum | Cmd { C_WORK, C_WAIT, C_RESET, C_TERMINATE } |
| Commands from engine to workers. More... | |
Protected Member Functions inherited from Gecode::Search::Parallel::Engine | |
| bool | signal (void) const |
| Whether search state changed such that signal is needed. More... | |
Depth-first restart best solution search engine implementation.
Definition at line 46 of file restart.hh.
|
inline |
Initialize engine for space s (with size sz) and options o.
Definition at line 64 of file restart.hh.
|
virtual |
Destructor.
Definition at line 158 of file restart.cpp.
|
virtual |
Return next better solution (NULL, if none exists or search has been stopped)
Reimplemented from Gecode::Search::Parallel::Engine.
Definition at line 47 of file restart.cpp.
|
protected |
Root node.
Definition at line 49 of file restart.hh.
|
protected |
So-far best solution.
Definition at line 51 of file restart.hh.
|
protected |
Whether a reset is needed.
Definition at line 53 of file restart.hh.