Provides a simplified interface to the services of the clasp library. More...
#include <clasp_facade.h>
Classes | |
struct | Result |
Result of a solving step. More... | |
struct | SolveImpl |
struct | SolveStrategy |
struct | StepReady |
Event type used to signal that a solve step has terminated. More... | |
struct | StepStart |
Event type used to signal that a solve step has started. More... | |
struct | Summary |
Type summarizing one or more solving steps. More... | |
Public Member Functions | |
ClaspFacade () | |
const ClaspConfig * | config () const |
Returns the active configuration. | |
const char * | getKeys (const char *path) const |
ExpectedQuantity | getStat (const char *path) const |
bool | ok () const |
Returns whether the problem is still valid. | |
ProgramBuilder * | program () const |
Returns the active program or 0 if it was already released. | |
Result | result () const |
Returns the result of the active step. (unknown if run is not yet completed). | |
const Summary & | shutdown () |
Result | solve (Clasp::EventHandler *onModel=0) |
Solves the current prepared problem. | |
bool | solving () const |
Returns whether a solve operation is currently active. | |
int | step () const |
Returns the current incremental step (starts at 0). | |
const Summary & | summary () const |
Returns the summary of the active step. | |
bool | terminate (int signal) |
Tries to terminate an active solve operation. | |
~ClaspFacade () | |
Public Attributes | |
SharedContext | ctx |
Private Types | |
typedef SingleOwnerPtr < ProgramBuilder > | BuilderPtr |
typedef SingleOwnerPtr < Asp::LpStats > | LpStatsPtr |
typedef SingleOwnerPtr< SolveImpl > | SolvePtr |
typedef SingleOwnerPtr< Summary > | SummaryPtr |
Private Member Functions | |
void | accuStep () |
void | discardProblem () |
ExpectedQuantity | getStat (const SharedContext &ctx, const char *key, bool accu, const Range< uint32 > &r) const |
ExpectedQuantity | getStatImpl (const char *path, bool keys) const |
void | init (ClaspConfig &cfg, bool discardProblem) |
void | initBuilder (ProgramBuilder *in, bool incremental) |
bool | onModel (const Solver &s, const Model &m) |
void | startStep (uint32 num) |
Result | stopStep (int signal, bool complete) |
Private Attributes | |
SummaryPtr | accu_ |
LitVec | assume_ |
BuilderPtr | builder_ |
ClaspConfig * | config_ |
LpStatsPtr | lpStats_ |
SolvePtr | solve_ |
Summary | step_ |
Start functions | |
Functions for defining a problem. Calling one of the start functions discards any previous problem. The allowUpdate parameter determines whether or not program updates are allowed once the problem is initially defined. | |
enum | EnumMode { enum_volatile, enum_static } |
Asp::LogicProgram & | startAsp (ClaspConfig &config, bool allowUpdate=false) |
Starts definition of an ASP-problem. | |
SatBuilder & | startSat (ClaspConfig &config, bool allowUpdate=false) |
Starts definition of a SAT-problem. | |
PBBuilder & | startPB (ClaspConfig &config, bool allowUpdate=false) |
Starts definition of a PB-problem. | |
ProgramBuilder & | start (ClaspConfig &config, ProblemType t, bool allowUpdate=false) |
Starts definition of a problem of type t. | |
bool | prepare (EnumMode m=enum_volatile) |
Finishes the definition of a problem and prepares it for solving. | |
void | assume (Literal p) |
Adds p to the list of assumptions under which solving should operate. | |
void | assume (const LitVec &ext) |
Calls assume(p) for all literals p in ext. | |
ProgramBuilder & | update (bool updateConfig=false) |
Starts update of the active problem. |
Provides a simplified interface to the services of the clasp library.
Definition at line 107 of file clasp_facade.h.
typedef SingleOwnerPtr<ProgramBuilder> Clasp::ClaspFacade::BuilderPtr [private] |
Definition at line 312 of file clasp_facade.h.
typedef SingleOwnerPtr<Asp::LpStats> Clasp::ClaspFacade::LpStatsPtr [private] |
Definition at line 313 of file clasp_facade.h.
typedef SingleOwnerPtr<SolveImpl> Clasp::ClaspFacade::SolvePtr [private] |
Definition at line 314 of file clasp_facade.h.
typedef SingleOwnerPtr<Summary> Clasp::ClaspFacade::SummaryPtr [private] |
Definition at line 315 of file clasp_facade.h.
Definition at line 193 of file clasp_facade.h.
Definition at line 274 of file clasp_facade.cpp.
Definition at line 275 of file clasp_facade.cpp.
void Clasp::ClaspFacade::accuStep | ( | ) | [private] |
Definition at line 452 of file clasp_facade.cpp.
void Clasp::ClaspFacade::assume | ( | Literal | p | ) |
Adds p to the list of assumptions under which solving should operate.
Definition at line 388 of file clasp_facade.cpp.
void Clasp::ClaspFacade::assume | ( | const LitVec & | ext | ) |
Calls assume(p) for all literals p in ext.
Definition at line 391 of file clasp_facade.cpp.
const ClaspConfig* Clasp::ClaspFacade::config | ( | ) | const [inline] |
Returns the active configuration.
Definition at line 301 of file clasp_facade.h.
void Clasp::ClaspFacade::discardProblem | ( | ) | [private] |
Definition at line 276 of file clasp_facade.cpp.
const char * Clasp::ClaspFacade::getKeys | ( | const char * | path | ) | const |
Definition at line 567 of file clasp_facade.cpp.
ExpectedQuantity Clasp::ClaspFacade::getStat | ( | const char * | path | ) | const |
Definition at line 564 of file clasp_facade.cpp.
ExpectedQuantity Clasp::ClaspFacade::getStat | ( | const SharedContext & | ctx, |
const char * | key, | ||
bool | accu, | ||
const Range< uint32 > & | r | ||
) | const [private] |
Definition at line 572 of file clasp_facade.cpp.
ExpectedQuantity Clasp::ClaspFacade::getStatImpl | ( | const char * | path, |
bool | keys | ||
) | const [private] |
Definition at line 479 of file clasp_facade.cpp.
void Clasp::ClaspFacade::init | ( | ClaspConfig & | cfg, |
bool | discardProblem | ||
) | [private] |
Definition at line 285 of file clasp_facade.cpp.
void Clasp::ClaspFacade::initBuilder | ( | ProgramBuilder * | in, |
bool | incremental | ||
) | [private] |
Definition at line 302 of file clasp_facade.cpp.
bool Clasp::ClaspFacade::ok | ( | ) | const [inline] |
Returns whether the problem is still valid.
Definition at line 292 of file clasp_facade.h.
bool Clasp::ClaspFacade::onModel | ( | const Solver & | s, |
const Model & | m | ||
) | [private, virtual] |
Reimplemented from Clasp::EventHandler.
Definition at line 466 of file clasp_facade.cpp.
bool Clasp::ClaspFacade::prepare | ( | EnumMode | m = enum_volatile | ) |
Finishes the definition of a problem and prepares it for solving.
Once the problem is prepared, call solve() to solve it.
m | Mode to be used for all enumeration-related knowledge. If m is enum_volatile, all enumeration knowledge is learnt under an assumption that is retracted on program update. Otherwise, no special assumption is used and enumeration-related knowledge might become unretractable. |
Definition at line 366 of file clasp_facade.cpp.
ProgramBuilder* Clasp::ClaspFacade::program | ( | ) | const [inline] |
Returns the active program or 0 if it was already released.
Definition at line 307 of file clasp_facade.h.
Result Clasp::ClaspFacade::result | ( | ) | const [inline] |
Returns the result of the active step. (unknown if run is not yet completed).
Definition at line 305 of file clasp_facade.h.
const ClaspFacade::Summary & Clasp::ClaspFacade::shutdown | ( | ) |
Definition at line 396 of file clasp_facade.cpp.
ClaspFacade::Result Clasp::ClaspFacade::solve | ( | Clasp::EventHandler * | onModel = 0 | ) |
Solves the current prepared problem.
handler | An optional event handler that is notified on each model and once after the solve operation has completed. |
Definition at line 403 of file clasp_facade.cpp.
bool Clasp::ClaspFacade::solving | ( | ) | const |
Returns whether a solve operation is currently active.
Definition at line 394 of file clasp_facade.cpp.
ProgramBuilder & Clasp::ClaspFacade::start | ( | ClaspConfig & | config, |
ProblemType | t, | ||
bool | allowUpdate = false |
||
) |
Starts definition of a problem of type t.
Definition at line 316 of file clasp_facade.cpp.
Asp::LogicProgram & Clasp::ClaspFacade::startAsp | ( | ClaspConfig & | config, |
bool | allowUpdate = false |
||
) |
Starts definition of an ASP-problem.
Definition at line 335 of file clasp_facade.cpp.
PBBuilder & Clasp::ClaspFacade::startPB | ( | ClaspConfig & | config, |
bool | allowUpdate = false |
||
) |
Starts definition of a PB-problem.
Definition at line 329 of file clasp_facade.cpp.
SatBuilder & Clasp::ClaspFacade::startSat | ( | ClaspConfig & | config, |
bool | allowUpdate = false |
||
) |
Starts definition of a SAT-problem.
Definition at line 323 of file clasp_facade.cpp.
void Clasp::ClaspFacade::startStep | ( | uint32 | num | ) | [private] |
Definition at line 426 of file clasp_facade.cpp.
int Clasp::ClaspFacade::step | ( | ) | const [inline] |
Returns the current incremental step (starts at 0).
Definition at line 303 of file clasp_facade.h.
ClaspFacade::Result Clasp::ClaspFacade::stopStep | ( | int | signal, |
bool | complete | ||
) | [private] |
Definition at line 433 of file clasp_facade.cpp.
const Summary& Clasp::ClaspFacade::summary | ( | ) | const [inline] |
Returns the summary of the active step.
Definition at line 299 of file clasp_facade.h.
bool Clasp::ClaspFacade::terminate | ( | int | signal | ) |
Tries to terminate an active solve operation.
Definition at line 357 of file clasp_facade.cpp.
ProgramBuilder & Clasp::ClaspFacade::update | ( | bool | updateConfig = false | ) |
Starts update of the active problem.
Definition at line 345 of file clasp_facade.cpp.
SummaryPtr Clasp::ClaspFacade::accu_ [private] |
Definition at line 329 of file clasp_facade.h.
LitVec Clasp::ClaspFacade::assume_ [private] |
Definition at line 330 of file clasp_facade.h.
BuilderPtr Clasp::ClaspFacade::builder_ [private] |
Definition at line 326 of file clasp_facade.h.
ClaspConfig* Clasp::ClaspFacade::config_ [private] |
Definition at line 325 of file clasp_facade.h.
Context-object used to store problem.
Definition at line 174 of file clasp_facade.h.
LpStatsPtr Clasp::ClaspFacade::lpStats_ [private] |
Definition at line 327 of file clasp_facade.h.
SolvePtr Clasp::ClaspFacade::solve_ [private] |
Definition at line 328 of file clasp_facade.h.
Summary Clasp::ClaspFacade::step_ [private] |
Definition at line 331 of file clasp_facade.h.