98 research outputs found
CMODELS – SAT-based Disjunctive Answer Set Solver
Disjunctive logic programming under the stable model semantics [GL91] is a new methodology called answer set programming (ASP) for solving combinatorial search problems. This programming method uses answer set solvers, such as DLV [Lea05], GNT [Jea05], SMODELS [SS05], ASSAT [LZ02], CMODELS [Lie05a]. Systems DLV and GNT are more general as they work with the class of disjunctive logic programs, while other systems cover only normal programs. DLV is uniquely designed to find the answer sets for disjunctive logic programs. On the other hand, GNT first generates possible stable model candidates and then tests the candidate on the minimality using system SMODELS as an inference engine for both tasks. Systems CMODELS and ASSAT use SAT solvers as search engines. They are based on the relationship between the completion semantics [Cla78], loop formulas [LZ02] and answer set semantics for logic programs. Here we present the implementation of a SAT-based algorithm for finding answer sets for disjunctive logic programs within CMODELS. The work is based on the definition of completion for disjunctive programs [LL03] and the generalisation of loop formulas [LZ02] to the case of disjunctive programs [LL03].We propose the necessary modifications to the SAT based ASSAT algorithm [LZ02] as well as to the generate and test algorithmfrom [GLM04] in order to adapt them to the case of disjunctive programs. We implement the algorithms in CMODELS and demonstrate the experimental results
Disjunctive Answer Set Solvers via Templates
Answer set programming is a declarative programming paradigm oriented towards
difficult combinatorial search problems. A fundamental task in answer set
programming is to compute stable models, i.e., solutions of logic programs.
Answer set solvers are the programs that perform this task. The problem of
deciding whether a disjunctive program has a stable model is
-complete. The high complexity of reasoning within disjunctive
logic programming is responsible for few solvers capable of dealing with such
programs, namely DLV, GnT, Cmodels, CLASP and WASP. In this paper we show that
transition systems introduced by Nieuwenhuis, Oliveras, and Tinelli to model
and analyze satisfiability solvers can be adapted for disjunctive answer set
solvers. Transition systems give a unifying perspective and bring clarity in
the description and comparison of solvers. They can be effectively used for
analyzing, comparing and proving correctness of search algorithms as well as
inspiring new ideas in the design of disjunctive answer set solvers. In this
light, we introduce a general template, which accounts for major techniques
implemented in disjunctive solvers. We then illustrate how this general
template captures solvers DLV, GnT and Cmodels. We also show how this framework
provides a convenient tool for designing new solving algorithms by means of
combinations of techniques employed in different solvers.Comment: To appear in Theory and Practice of Logic Programming (TPLP
A Multi-Engine Approach to Answer Set Programming
Answer Set Programming (ASP) is a truly-declarative programming paradigm
proposed in the area of non-monotonic reasoning and logic programming, that has
been recently employed in many applications. The development of efficient ASP
systems is, thus, crucial. Having in mind the task of improving the solving
methods for ASP, there are two usual ways to reach this goal: extending
state-of-the-art techniques and ASP solvers, or designing a new ASP
solver from scratch. An alternative to these trends is to build on top of
state-of-the-art solvers, and to apply machine learning techniques for choosing
automatically the "best" available solver on a per-instance basis.
In this paper we pursue this latter direction. We first define a set of
cheap-to-compute syntactic features that characterize several aspects of ASP
programs. Then, we apply classification methods that, given the features of the
instances in a {\sl training} set and the solvers' performance on these
instances, inductively learn algorithm selection strategies to be applied to a
{\sl test} set. We report the results of a number of experiments considering
solvers and different training and test sets of instances taken from the ones
submitted to the "System Track" of the 3rd ASP Competition. Our analysis shows
that, by applying machine learning techniques to ASP solving, it is possible to
obtain very robust performance: our approach can solve more instances compared
with any solver that entered the 3rd ASP Competition. (To appear in Theory and
Practice of Logic Programming (TPLP).)Comment: 26 pages, 8 figure
Effectively Solving NP-SPEC Encodings by Translation to ASP
NP-SPEC is a language for specifying problems in NP in a declarative way. Despite the fact that the semantics of the language was given by referring to Datalog with circumscription, which is very close to ASP, so far the only existing implementations are by means of ECLiPSe Prolog and via Boolean satisfiability solvers. In this paper, we present translations from NP-SPEC into ASP, and provide an experimental evaluation of existing implementations and the proposed translations to ASP using various ASP solvers. The results show that translating to ASP clearly has an edge over the existing translation into SAT, which involves an intrinsic grounding process. We also argue that it might be useful to incorporate certain language constructs of NPSPEC into mainstream ASP
Cmodels for Tight Disjunctive Logic Programs
Disjunctive logic programming under the stable model semantics [GL91] is a new answer set programming (ASP) methodology for solving combinatorial search problems. It is a form of declarative programming related to logic programming languages, such as Prolog, where the solutions to a problem are represented by answer sets, and not by answer substitutions produced in response to a query as in convential logic programming. Instead of Prolog systems, this programming method uses answer set solvers, such as smodels1, smodelscc2, cmodels3, dlv4, and gnt1. These systems made it possible for ASP to be successfully applied in such areas as planning, bounded model checking, and space shuttle control. dlv and gnt are more general as they work with the class of disjunctive logic programs, while other systems cover nondisjunctive programs. System cmodels uses SAT solvers as search engines, which allows it to take advantage of rapid progress in the area of SAT. cmodels proved to be an efficient system in providing the solution to the wire-routing problem [EW04], and to the problem of reconstructing probable phylogenies in the area of historical linguistics [BEMR05]. In this work we extend cmodels [GLM04] to tight disjunctive programs. Complexity of finding a solution for such programs is NP, as in the case of nondisjunctive programs. Extending the syntax of the input language of cmodels to tight disjunctive programs permits the knowledge engineer to be more flexible with the encoding of the problems in the NP complexity class. Experimental analyses demonstrate that the approach is computationally promising and may advance applications of disjunctive logic programming
Computing Answer Sets of a Logic Program via-enumeration of SAT certificates
Answer set programming is a new programming paradigm proposed based on the answer set semantics of Prolog. It is well known that an answer set for a logic program is also a model of the program\u27s completion. The converse is true when the logic program is tight . Lin and Zhao showed that for non-tight programs the models of completion which do not correspond to answer sets can be eliminated by adding to the completion what they called loop formulas . Nevertheless, their solver ASSAT 1 has some disadvantages: it can work only with basic rules, and it can compute only one answer set. Answer set solver CMODELS-1 is a system that computes answer sets for logic programs that are tight or can be transformed into tight programs, and does not suffer from these limitations. We are going to present a new system CMODELS-2 , that is able to fix ASSAT\u27s disadvantages. Another attractive feature of the new system is that it organizes the search process more efficiently then ASSAT, because it does not explore the same part of the search tree more than once. In the rest of the paper we will omit number 2 in the name of the system
Experiments with SAT-based Answer Set Programming
Answer Set Programming (ASP) emerged in the late 1990s as a new logic programming paradigm which has been successfully applied in various application domains. Propositional satisfiability (SAT) is one of the most studied problems in Computer Science. ASP and SAT are closely related: Recent works have studied their relation, and efficient SAT-based ASP solvers (like assat and Cmodels) exist. In this paper we report about (i) the extension of the basic procedures in Cmodels in order to incorporate the most popular SAT reasoning strategies, and (ii) an extensive comparative analysis involving also other state-of-the-art answer set solvers. The experimental analysis points out, besides the fact that Cmodels is highly competitive, that the reasoning strategies that work best on “small but hard” problems are ineffective on “big but easy” problems and vice-versa
What is answer set programming to propositional satisfiability
Propositional satisfiability (or satisfiability) and answer set programming are two closely related subareas of Artificial Intelligence that are used to model and solve difficult combinatorial search problems. Satisfiability solvers and answer set solvers are the software systems that find satisfying interpretations and answer sets for given propositional formulas and logic programs, respectively. These systems are closely related in their common design patterns. In satisfiability, a propositional formula is used to encode problem specifications in a way that its satisfying interpretations correspond to the solutions of the problem. To find solutions to a problem it is then sufficient to use a satisfiability solver on a corresponding formula. Niemelä, Marek, and Truszczyński coined answer set programming paradigm in 1999: in this paradigm a logic program encodes problem specifications in a way that the answer sets of a logic program represent the solutions of the problem. As a result, to find solutions to a problem it is sufficient to use an answer set solver on a corresponding program. These parallels that we just draw between paradigms naturally bring up a question: what is a fundamental difference between the two? This paper takes a close look at this question
- …