Overview
clasp is part of the Potassco project hosted at SourceForge. Source code and pre-compiled binaries are available on the Potassco download page.
clasp is an answer set solver for (extended) normal logic programs. It combines the high-level modeling capacities of answer set programming (ASP) with state-of-the-art techniques from the area of Boolean constraint solving. The primary clasp algorithm relies on conflict-driven nogood learning, a technique that proved very successful for satisfiability checking (SAT).
Unlike other learning ASP solvers, clasp does not rely on legacy software, such as a SAT solver or any other existing ASP solver. Rather, clasp has been genuinely developed for answer set solving based on conflict-driven nogood learning. clasp can be applied as an ASP solver (on SMODELS format, as output by Gringo), as a SAT solver (on a simplified version of DIMACS/CNF format), or as a PB solver (on OPB format).
The following competition results show that clasp is a very versatile solver and suitable for many applications:
- ASP Competition 2009
- 1st in all categories (for problems in the P category, clasp merely printed the unique solution computed by a grounder; unlike with most of the other teams, settings used by the Potassco team were geared towards benchmarks)
- SAT Competition 2009
- 1st in two categories (Crafted SAT+UNSAT and Crafted SAT)
- 2nd in one category (Crafted UNSAT)
- PB Evaluation 2009
- 1st in one category (optimization, small integers, linear constraints: UNSAT answers)
- 3rd in three categories
- ASP System Competition 2007
- 1st in two categories (SCore and SLparse)
- 3rd in one category (MGS)
- PB Evaluation 2007
- 1st in one category (PURE-SAT)
clasp provides different reasoning modes including:
- Enumeration of (Projected) Solutions
- Optimization of Solutions
- Cautious and Brave Reasoning
clasp's search procedure incorporates many advanced features from Boolean constraint solving, among them:
- Conflict Analysis via the FirstUIP Scheme
- Nogood Recording and Deletion
- Backjumping
- Restarts
- Conflict-driven Decision Heuristics
- Progress Saving
- Unit Propagation via Watched Literals
- Dedicated Propagation of Binary and Ternary Nogoods
- Dedicated Propagation of Extended Rules (over Cardinality and Weight Constraints)
- Equivalence Reasoning and Resolution-based Preprocessing
To get an impression of clasp's performance, visit the benchmarking area
For the system and a brief user introduction, visit the resources area
Find the latest information and tools at the Potassco project page