Abstract Constraint answer set programming or CASP, for short, is a hybrid approach in automated reasoning putting together the advances of distinct research areas such as answer set programming, constraint processing, and satisfiability modulo theories. CASP demonstrates promising results, including the development of a multitude of solvers: acsolver, clingcon, ezcsp, idp, inca, dingo, mingo, aspmt2smt, clingo[l,dl], and ezsmt . It opens new horizons for declarative programming applications such as solving complex train scheduling problems. Systems designed to find solutions to constraint answer set programs can be grouped according to their construction into, what we call, integrational or translational approaches. The focus of this paper is an overview of the key ingredients of the design of constraint answer set solvers drawing distinctions and parallels between integrational and translational approaches. The paper also provides a glimpse at the kind of programs its users develop by utilizing a CASP encoding of Traveling Salesman problem for illustration. In addition, we place the CASP technology on the map among its automated reasoning peers as well as discuss future possibilities for the development of CASP.
more »
« less
xASP: An Explanation Generation System for Answer Set Programming
In this paper, we present a system, called xASP, for generating explanations that explain why an atom belongs to (or does not belong to) an answer set of a given program. The system can generate all possible explanations for a query without the need to simplify the program before computing explanations, i.e., it works with nonground programs. These properties distinguish xASP from existing systems such as π‘π²πππππ
, π³ππππ°ππΏ
, exp(ASPπ)
, and s(CASP)
, which also generate explanations for queries to logic programs under the answer set semantics but simplify and ground the programs (the three systems π‘π²πππππ
, π³ππππ°ππΏ
, exp(ASPπ)
) or do not always generate all possible explanations (the system s(CASP)
). In addition, the output of xASP is insensitive to syntactic variations such as the order conditions and the order of rules, which is also different from the output of s(CASP)
.
more »
« less
 Award ID(s):
 1757207
 NSFPAR ID:
 10462534
 Date Published:
 Journal Name:
 Lecture notes in computer science
 ISSN:
 03029743
 Format(s):
 Medium: X
 Sponsoring Org:
 National Science Foundation
More Like this


FOLDR is an automated inductive learning algorithm for learning default rules for mixed (numerical and categorical) data. It generates an (explainable) normal logic program (NLP) rule set for classification tasks. We present an improved FOLDR algorithm, called FOLDR++, that significantly increases the efficiency and scalability of FOLDR by orders of magnitude. FOLDR++ improves upon FOLDR without compromising or losing information in the input training data during the encoding or feature selection phase. The FOLDR++ algorithm is competitive in performance with the widelyused XGBoost algorithm, however, unlike XGBoost, the FOLDR++ algorithm produces an explainable model. FOLDR++ is also competitive in performance with the RIPPER system, however, on large datasets FOLDR++ outperforms RIPPER. We also create a powerful toolset by combining FOLDR++ with s(CASP)βa goaldirected answer set programming (ASP) execution engineβto make predictions on new data samples using the normal logic program generated by FOLDR++. The s(CASP) system also produces a justification for the prediction. Experiments presented in this paper show that our improved FOLDR++ algorithm is a significant improvement over the original design and that the s(CASP) system can make predictions in an efficient manner as well.more » « less

In this paper, we study the βdecodingβ problem for discretetime, stochastic hybrid systems with linear dynamics in each mode. Given an output trace of the system, the decoding problem seeks to construct a sequence of modes and states that yield a trace βas close as possibleβ to the original output trace. The decoding problem generalizes the state estimation problem, and is applicable to hybrid systems with nondeterminism. The decoding problem is NPcomplete, and can be reduced to solving a mixedinteger linear program (MILP). In this paper, we decompose the decoding problem into two parts: (a) finding a sequence of discrete modes and transitions; and (b) finding corresponding continuous states for the mode/transition sequence. In particular, once a sequence of modes/transitions is fixed, the problem of βfilling inβ the continuous states is performed by a linear programming problem. In order to support the decomposition, we βcoverβ the set of all possible mode/transition sequences by a finite subset. We use wellknown probabilistic arguments to justify a choice of cover with high confidence and design randomized algorithms for finding such covers. Our approach is demonstrated on a series of benchmarks, wherein we observe that relatively tiny fraction of the possible mode/transition sequences can be used as a cover. Furthermore, we show that the resulting linear programs can be solved rapidly by exploiting the tree structure of the set cover.more » « less

Abstract Answer set programming is a prominent declarative programming paradigm used in formulating combinatorial search problems and implementing different knowledge representation formalisms. Frequently, several related and yet substantially different answer set programs exist for a given problem. Sometimes these encodings may display significantly different performance. Uncovering precise formal links between these programs is often important and yet far from trivial. This paper presents formal results carefully relating a number of interesting program rewritings. It also provides the proof of correctness of system projector concerned with automatic program rewritings for the sake of efficiency.more » « less

null (Ed.)Abstract In this paper, we present a method for explaining the results produced by dynamic programming (DP) algorithms. Our approach is based on retaining a granular representation of values that are aggregated during program execution. The explanations that are created from the granular representations can answer questions of why one result was obtained instead of another and therefore can increase the confidence in the correctness of program results. Our focus on dynamic programming is motivated by the fact that dynamic programming offers a systematic approach to implementing a large class of optimization algorithms which produce decisions based on aggregated value comparisons. It is those decisions that the granular representation can help explain. Moreover, the fact that dynamic programming can be formalized using semirings supports the creation of a Haskell library for dynamic programming that has two important features. First, it allows programmers to specify programs by recurrence relationships from which efficient implementations are derived automatically. Second, the dynamic programs can be formulated generically (as type classes), which supports the smooth transition from programs that only produce result to programs that can run with granular representation and also produce explanations. Finally, we also demonstrate how to anticipate user questions about program results and how to produce corresponding explanations automatically in advance.more » « less