Interface for complex solve algorithms. More...
#include <solve_algorithms.h>

| Public Member Functions | |
| virtual void | enableInterrupts ()=0 | 
| Prepares the algorithm for handling (asynchronous) calls to SolveAlgorithm::terminate(int). | |
| const Enumerator * | enumerator () const | 
| bool | interrupt () | 
| Tries to terminate the current solve process. | |
| virtual bool | interrupted () const =0 | 
| const SolveLimits & | limits () const | 
| virtual void | resetSolve ()=0 | 
| Resets solving state and sticky messages like terminate. | |
| void | setEnumerator (Enumerator &e) | 
| void | setEnumLimit (uint64 m) | 
| void | setLimits (const SolveLimits &x) | 
| bool | solve (SharedContext &ctx, const LitVec &assume=LitVec(), EventHandler *modelHandler=0) | 
| Runs the solve algorithm. | |
| SolveAlgorithm (Enumerator *enumerator=0, const SolveLimits &limit=SolveLimits()) | |
| virtual | ~SolveAlgorithm () | 
| Protected Member Functions | |
| virtual bool | doInterrupt ()=0 | 
| Shall return true if termination is supported, otherwise false. | |
| virtual bool | doSolve (SharedContext &ctx, const LitVec &assume)=0 | 
| The actual solve algorithm. | |
| Enumerator & | enumerator () | 
| SolveAlgorithm & | operator= (const SolveAlgorithm &) | 
| bool | reportModel (Solver &s) const | 
| SolveAlgorithm (const SolveAlgorithm &) | |
| Private Attributes | |
| Enumerator * | enum_ | 
| uint64 | enumLimit_ | 
| SolveLimits | limits_ | 
| EventHandler * | onModel_ | 
Interface for complex solve algorithms.
SolveAlgorithms implement complex algorithms like enumeration or optimization.
Definition at line 125 of file solve_algorithms.h.
| Clasp::SolveAlgorithm::SolveAlgorithm | ( | Enumerator * | enumerator = 0, | 
| const SolveLimits & | limit = SolveLimits() | ||
| ) |  [explicit] | 
| lim | An optional solve limit applied in solve(). | 
Definition at line 227 of file solve_algorithms.cpp.
| Clasp::SolveAlgorithm::~SolveAlgorithm | ( | ) |  [virtual] | 
Definition at line 228 of file solve_algorithms.cpp.
| Clasp::SolveAlgorithm::SolveAlgorithm | ( | const SolveAlgorithm & | ) |  [protected] | 
| virtual bool Clasp::SolveAlgorithm::doInterrupt | ( | ) |  [protected, pure virtual] | 
Shall return true if termination is supported, otherwise false.
Implemented in Clasp::SequentialSolve.
| virtual bool Clasp::SolveAlgorithm::doSolve | ( | SharedContext & | ctx, | 
| const LitVec & | assume | ||
| ) |  [protected, pure virtual] | 
The actual solve algorithm.
Implemented in Clasp::SequentialSolve.
| virtual void Clasp::SolveAlgorithm::enableInterrupts | ( | ) |  [pure virtual] | 
Prepares the algorithm for handling (asynchronous) calls to SolveAlgorithm::terminate(int).
Implemented in Clasp::SequentialSolve.
| const Enumerator* Clasp::SolveAlgorithm::enumerator | ( | ) | const  [inline] | 
Definition at line 133 of file solve_algorithms.h.
| Enumerator& Clasp::SolveAlgorithm::enumerator | ( | ) |  [inline, protected] | 
Definition at line 179 of file solve_algorithms.h.
| bool Clasp::SolveAlgorithm::interrupt | ( | ) | 
Tries to terminate the current solve process.
Definition at line 230 of file solve_algorithms.cpp.
| virtual bool Clasp::SolveAlgorithm::interrupted | ( | ) | const  [pure virtual] | 
Implemented in Clasp::SequentialSolve.
| const SolveLimits& Clasp::SolveAlgorithm::limits | ( | ) | const  [inline] | 
Definition at line 134 of file solve_algorithms.h.
| SolveAlgorithm& Clasp::SolveAlgorithm::operator= | ( | const SolveAlgorithm & | ) |  [protected] | 
| bool Clasp::SolveAlgorithm::reportModel | ( | Solver & | s | ) | const  [protected] | 
Definition at line 258 of file solve_algorithms.cpp.
| virtual void Clasp::SolveAlgorithm::resetSolve | ( | ) |  [pure virtual] | 
Resets solving state and sticky messages like terminate.
Implemented in Clasp::SequentialSolve.
| void Clasp::SolveAlgorithm::setEnumerator | ( | Enumerator & | e | ) |  [inline] | 
Definition at line 137 of file solve_algorithms.h.
| void Clasp::SolveAlgorithm::setEnumLimit | ( | uint64 | m | ) |  [inline] | 
Definition at line 138 of file solve_algorithms.h.
| void Clasp::SolveAlgorithm::setLimits | ( | const SolveLimits & | x | ) |  [inline] | 
Definition at line 139 of file solve_algorithms.h.
| bool Clasp::SolveAlgorithm::solve | ( | SharedContext & | ctx, | 
| const LitVec & | assume = LitVec(), | ||
| EventHandler * | modelHandler = 0 | ||
| ) | 
Runs the solve algorithm.
| ctx | A context object containing the problem. | 
| assume | A list of initial unit-assumptions. | 
Definition at line 233 of file solve_algorithms.cpp.
| Enumerator* Clasp::SolveAlgorithm::enum_  [private] | 
Definition at line 182 of file solve_algorithms.h.
| uint64 Clasp::SolveAlgorithm::enumLimit_  [private] | 
Definition at line 184 of file solve_algorithms.h.
| SolveLimits Clasp::SolveAlgorithm::limits_  [private] | 
Definition at line 181 of file solve_algorithms.h.
| EventHandler* Clasp::SolveAlgorithm::onModel_  [private] | 
Definition at line 183 of file solve_algorithms.h.