Answer Set Programming – a Domain in Need of Explanation a Position Paper
Total Page:16
File Type:pdf, Size:1020Kb
Answer Set Programming – a Domain in Need of Explanation A Position Paper Martin Brain and Marina De Vos Department of Computer Science, University of Bath, United Kingdom {mjb,mdv}@cs.bath.ac.uk Abstract. This paper describes the problems with debugging tools for answer set programming, a declarative programming paradigm. Current approaches are difficult to use on most applications due to the consider- able bottlenecks in communicating the reasons to the user. In this paper we examine the reasons for this and suggest some possible future direc- tions. 1 Introduction One of the long term goals of computer science is creating efficient declarative programming systems. In an ideal world, the user would create a description of what the problem is and the programming system would work out how to solve it, and return the answer. However, as any student of software engineering will note, what the user wants and what the user asks for are often different. In the context of declarative programming languages and other ‘intelligent’ systems, this results in the user trying to understand why the system gave the answer it did. Thus, most practical declarative programming systems rapidly develop tools for explaining why they gave a particular answer. These are normally referred to as ‘debugging’ tools; although they are only superficially related to most procedural debugging tools. Given the strong formal semantics underpinning most declarative programming systems, building a tool to compute (online or offline) the formal argument behind an answer is relatively straight-forward. Although the names vary with the problem domain; proof trees, refutations, traces, arguments and so on, all follow a similar methodology of building a formal structure to explain their answers based on the rules that give the semantics of the language. This is, of course, widely known and implemented, what is much rarely discussed is how to explain this formal, structured information to the user. As the complexity of the declarative program rises, the resultant proof structure grows, often polynomially but in some cases exponentially; resulting in a considerable bottleneck in conveying this information to the user, which often renders these tools unusable on anything more than toy examples. This paper discusses the problems resulting from using these ‘explanations’ for declarative debugging in the context of Answer Set Programming (ASP); a logical, model based, declarative programming paradigm. ASP is a particularly strong example of these issues as the semantics make it easy to compute the (formal) reasons for a given model, the syntax supports a number of natural ways of outputting this information and the models in most typical applications are large enough to make the obvious approaches to communicating explanations impractical. Section 2 describes the logical language, AnsP rolog, used in ASP, Section 3 describes how it is used, Section 4 outlines the literature on debugging tools and the computation of reasons and Section 5 discusses the practicalities of using these, what the problems are and proposes possible approaches to creating a solution. 2 Answer Set Semantics Answer set semantics [13] is a model based semantics for logic programs. Pro- grams written in AnsP rolog1 are unordered2 sets of rules. Rules are made from atoms, indivisible propositions which can either be known or not known, and take the form of basic causal laws. For example: a ← b, not c. is interpreted as “if b is known and c is not known then a is known”. The atom a is the head of the rule, denoted H(r) and {b, not c} is the body of the rule, written B(r). The body is then divided into the negative body, B−(r), the atoms that are negated and the positive body, B+(r), the normal atoms in the body. In the preceding example B−(r) = {c} and B+(r) = {b}. Rules with empty bodies are referred to as facts. The semantics of positive programs (programs Π which do not contain nega- tion, i.e. ∀r ∈ Π ¦ B−(r) = ∅), are relatively straight-forward and uncontrover- sial. Starting with the empty set, an immediate consequence operator is applied until a fixed point is reached. This matches the intuition of starting with no knowledge/assumptions and then only ‘learning’ information when the condi- tions (body) of a rule are met. More formally, this is defined with the Tp operator, a generalisation of the principle of modus ponens. Definition 1. Given a positive program Π and the set of atoms it contains, HB(Π), the immediate consequence operator, Tp : P(HB(Π)) → P(HB(Π)), is defined as: + Tp(A) = A ∪ {H(r)|r ∈ Π,B (r) ⊂ A} (1) 1 Here we use the notation of [3]. 2 This contrasts with Prolog and related operational semantics where the order of rules and the ordering within rules affects the semantics. The model of Π is the fixpoint of applying Tp to ∅. For example, given the following positive program: a ← b. b ← . c ← a, b. d ← b, c. e ← f. f ← e. the model is given by the computation: Tp(∅) = {b} Tp({b}) = {b, a} Tp({b, a}) = {b, a, c} Tp({b, a, c}) = {b, a, c, d} Tp({b, a, c, d}) = {b, a, c, d} note that e and f do not appear in the model. Although {a, b, c, d, e, f} would be a model if the rules where interpreted as propositions in classical logic, e and f are not included as there is no independent ‘reason’ why they should be regarded as being known (to conclude e we have to know f but this is only known if e is known). Clearly, the model of a positive program can be visualised as a graph, with nodes corresponding to atoms, and a directed link expressing inference. More formally the node corresponding to a links to the node corresponding to b ⇐⇒ ∃r ∈ Π ¦ H(r) = b, a ∈ B(r). These are referred to as a support graph, figure 1 shows the graph for the proceeding example. In this case the arc have been labelled with the corresponding rules. The natural mechanism for computing negation in logic programs in negation by failure, which tends to be characterised as epistemic negation (“we do not known this is true”), rather than classical negation (“we know that this is not true”). This correspondence is motivated by the intuition that we should only claim to know things that can be proven, thus anything that can not be proven is not known. To extend the semantics to support this type of negation, the Gelfond-Lifschitz reduct is used. This takes a set of proposed atoms and gives a reduced, positive program by removing any rule which depends on the negation of any atom in the set and dropping all other negative dependencies. Definition 2. The Gelfond-Lifschitz reduct of an AnsP rolog program Π with respect to a set A, written as ΠA is given by: a a :- b. c :- a, b. c :- a, b. b c d :- b, c. d :- b, c. d Fig. 1. The support graph for a simple positive program ΠA = {H(r) ← B+(r)|r ∈ Π,B−(r) ∩ A = ∅} (2) For example, if Π denotes the following program: a ← not b. b ← not a. c ← not d. e ← a, c, not b. f ← not g, e. g ← not f, e. Thus the set {b, c} gives the reduced program Π{b,c} b ← . c ← . f ← e. g ← e. As all rules that depend on not b or not c are ignored and the remaining nega- tions are removed. This naturally leads to the definition of answer sets: Definition 3. If Π is an AnsP rolog program, then A, a set of atoms is an answer set of Π ⇔ A is the model of the program ΠA. So in the previous example, {b, c} is an answer set of Π as it is clearly the least fixpoint of Tp applied to the reduced program. {a, c, e, f} and {a, c, e, g} are also answer sets of Π. A simple but significant corollary of this definition is that a d b :- not a. a :- not b. c :- not d. b e :- a, c, not b. c e :- a, c, not b. e :- a, c, not b. e f :- not g, e. f g :- not f, e. g :- not f, e. f :- not g, e. g Fig. 2. The support graph for {a, c, e, f} given an answer set A and an atom d 6∈ A, there are no rules with H(r) = d, B+(r) ⊂ A and B−(r)∩A = ∅, i.e. every rule that could conclude d has a reason why it is not applicable (one of the positive dependencies is not met or one of the negative dependencies is met). There are a number of ways of displaying an answer set graphically. Clearly, it can be displayed as a directed acyclic graph as in the case of positive pro- grams. However to understand why certain rules are/are not applicable, it is necessary to augment this with nodes corresponding to atoms not in the answer set. Figure 2 shows such a graph for the preceding program and the answer set {a, c, e, f}. Atoms that are not known and rules that are not applicable (some of the conditions in the body are not met) are marked by the use of dotted lines. A program will have zero or more answer sets. Critically, computing an an- swer set of a program is an NP-complete task, which gives rise of a declarative programming paradigm for solving NP and NP-complete problems. 3 Answer Set Programming Answer Set Programming (ASP) is a methodology for solving NP and NP- complete problems by representing the problem as an AnsP rolog program, so that the answer sets of the program correspond to the solutions of the problem.