6 research outputs found
Recursive Rules with Aggregation: A Simple Unified Semantics
Complex reasoning problems are most clearly and easily specified using
logical rules, especially recursive rules with aggregation such as counts and
sums for practical applications. Unfortunately, the meaning of such rules has
been a significant challenge, leading to many different conflicting semantics.
This paper describes a unified semantics for recursive rules with
aggregation, extending the unified founded semantics and constraint semantics
for recursive rules with negation. The key idea is to support simple expression
of the different assumptions underlying different semantics, and orthogonally
interpret aggregation operations straightforwardly using their simple usual
meaning
Shared aggregate sets in answer set programming
Aggregates are among the most frequently used linguistic extensions of answer set programming. The result of an aggregation may introduce new constants during the instantiation of the input program, a feature known as value invention. When the aggregation involves literals whose truth value is undefined at instantiation time, modern grounders introduce several instances of the aggregate, one for each possible interpretation of the undefined literals. This paper introduces new data structures and techniques to handle such cases, and more in general aggregations on the same aggregate set identified in the ground program in input. The proposed solution reduces the memory footprint of the solver without sacrificing efficiency. On the contrary, the performance of the solver may improve thanks to the addition of some simple entailed clauses which are not easily discovered otherwise, and since redundant computation is avoided during propagation. Empirical evidence of the potential impact of the proposed solution is given. Copyright \ua9 Cambridge University Press 2018