Answer set programming (ASP) is a logic programming paradigm that can be used to solve complex combinatorial search problems. Aggregates are an ASP construct that plays an important role in many applications. Defining a satisfactory semantics of aggregates turned out to be a difficult problem, and in this paper we propose a new approach, based on an analogy between aggregates and propositional connectives. First, we extend the definition of an answer set/stable model to cover arbitrary propositional theories; then we define aggregates on top of them both as primitive constructs and as abbreviations for formulas. Our definition of an aggregate combines expressiveness and simplicity, and it inherits many theorems about programs with nested expressions, such as theorems about strong equivalence and splitting.
Deep Dive into Logic programs with propositional connectives and aggregates.
Answer set programming (ASP) is a logic programming paradigm that can be used to solve complex combinatorial search problems. Aggregates are an ASP construct that plays an important role in many applications. Defining a satisfactory semantics of aggregates turned out to be a difficult problem, and in this paper we propose a new approach, based on an analogy between aggregates and propositional connectives. First, we extend the definition of an answer set/stable model to cover arbitrary propositional theories; then we define aggregates on top of them both as primitive constructs and as abbreviations for formulas. Our definition of an aggregate combines expressiveness and simplicity, and it inherits many theorems about programs with nested expressions, such as theorems about strong equivalence and splitting.
Answer set programming (ASP) is a logic programming paradigm that can be used to solve complex combinatorial search problems ( [Marek and Truszczyński, 1999]), ( [Niemelä, 1999]). ASP is based on the stable model semantics [Gelfond and Lifschitz, 1988] for logic programs: programming in ASP consists in writing a logic program whose stable models (also called answer sets) represent the solution to our problem. ASP has been used, for instance, in planning [Dimopoulos et al., 1997;Lifschitz, 1999], model checking [Liu et al., 1998;Heljanko and Niemelä, 2001], product configuration [Soininen and Niemelä, 1998], logical cryptanalysis [Hietalahti et al., 2000], workflow specification [Trajcevski et al., 2000;Koksal et al., 2001], reasoning about policies [Son and Lobo, 2001], wire routing problems [Erdem et al., 2000] and phylogeny reconstruction problems [Erdem et al., 2003].
The stable models of a logic program are found by systems called answer set solvers. Answer set solvers can be considered the equivalent of SAT solverssystems used to find the models of propositional formulas -in logic programming. On the other hand, it is much easier to express, in logic programming, recursive definitions (such as reachability in a graph) and defaults. Several answer set solvers have been developed so far, with SMODELS1 and DLV2 among the most popular. As in the case of SAT solvers, answer set solver competitions -where answer set solvers are compared to each others in terms of performance -are planned to be held regularly. 3An important construct in ASP are aggregates. Aggregates allow, for instance, to perform set operations such as counting the number of atoms in a set that are true, or summing weights the weights of the atoms that are true. We can, for instance, express that a node in a graph has exactly one color by the following cardinality constraint:
1 ≤ {c(node, color 1 ), . . . , c(node, color m )} ≤ 1.
As another example, a weight constraint of the form
intuitively says that the sum of the weights (the numbers after the “=” sign) of the atoms from the list p, q, r that are true is at least 3.
Aggregates are a hot topic in ASP not only because of their importance, but also because there is no standard understanding of the concept of an aggregate. In fact, different answer set solvers implement different definitions of aggregates: for instance, SMODELS implements cardinality and weight constraints [Niemelä and Simons, 2000], while DLV implements aggregates as defined by Faber, Leone and Pfeifer (2005) (we call them FLP-aggregates). Unfortunately, constructs that are intuitively equivalent to each other may actually lead to different stable models. In some sense, no current definition of an aggregate can be considered fully satisfactory, as each of them seems to have properties that look unintuitive. For instance, it is somehow puzzling that, as noticed in [Ferraris and Lifschitz, 2005b], weight constraints
are semantically different from each other (may lead to different stable models).
Part of this problem is probably related to the lack of mathematical tools for study-“propositional” extensions (application oriented) (theory oriented) PDB-aggregates [Pelov et al., 2003] FLP-aggregates [Faber et al., 2004] [ Lifschitz et al.,1999] Nested Expressions [Gelfond and Lifchitz, 1988] Traditional programs [Niemelä and Simons, 2000] Cardinality and weight constraints Disjunctive [Gelfond and Lifschitz, 1991] extensions with aggregates ing properties of programs with aggregates, in particular for reasoning about the correctness of programs with aggregates.
This paper addresses the problems of aggregates mentioned above by (i) giving a new semantics of aggregates that, we argue, is more satisfactory than the existing alternatives, and (ii) providing tools for studying properties of logic programs with aggregates.
Our approach is based on a relationship between two directions of research on extending the stable model semantics: the work on aggregates, mentioned above, and the work on “propositional extensions” (see Figure 1). The latter makes the syntax of rules more and more similar to the syntax of propositional formulas. In disjunctive programs, the head of each rule is a (possibly empty) disjunction of atoms, while in programs with nested expressions the head and body of each rule can be any arbitrary formula built with connectives AND, OR and NOT. For instance, ¬(p ∨ ¬q) ← p ∨ ¬¬r is a rule with nested expressions. Programs with nested expressions are quite attractive especially relative to point (ii) above, because many theorems about properties of logic programs have been proved for programs of this kind. For instance, the splitting set theorem [Lifschitz and Turner, 1994;Erdogan and Lifschitz, 2004] simplifies the task of computing the stable models of a program/theory by breaking it into two parts. Work on strong equivalence [Lifschitz et al., 2001] allows us to PDB-aggregates [Gelfond and Lifschitz, 1991]
…(Full text truncated)…
This content is AI-processed based on ArXiv data.