2 research outputs found

    Relevance for SAT(ID)

    No full text
    Inductive definitions and justifications are well-studied concepts. Solvers that support inductive definitions have been developed, but several of their computationally nice properties have never been exploited to improve these solvers. In this paper, we present a new notion called relevance. We determine a class of literals that are relevant for a given definition and partial interpretation, and show that choices on irrelevant atoms can never benefit the search for a model. We propose an early stopping criterion and a modification of existing heuristics that exploit relevance. We present a first implementation in MinisatID and experimentally evaluate our approach, and study how often existing solvers make choices on irrelevant atoms.status: publishe

    Advanced Techniques for Grounding and Solving in the IDP Knowledge Base System

    No full text
    The area of Knowledge Representation and Reasoning, a subfield of Artificial Intelligence, studies how knowledge can be represented and how it can be used for automated reasoning. Several declarative programming paradigms implement this by developing a formal language to symbolically represent knowledge, as well as an associated form of inference to achieve the desired solution. Recently, the Knowledge Base System (KBS) paradigm has been proposed, based on the idea that knowledge is not inherently linked to a specific reasoning task. Instead, this paradigm proposes to express knowledge in a truly declarative manner. Additionally, to stress reusability of this knowledge, the KBS paradigm allows the knowledge to be combined with one out of a set of possible inferences, each providing a solution to some type of computational task. The initial implementation of this KBS paradigm, also known as the IDP3 system, provided a suitable laboratory to examine a new type of software engineering. State-of-the-art declarative programming systems such as IDP3, clasp, WASP, and lp2sat work using the ground-and-solve methodology. First, the high-level language is ground into a low-level propositional language. As a second step the grounding is used as input for general-purpose, low-level propositional (generally SAT-like) solvers. This thesis contains a thorough study of the impact of different grounding approaches on the solver behaviour. I.e., if the grounding process that is used is smart and results in a smaller low-level representation, does this impact the search behaviour of the underlying solver? The language supported by the IDP3 system contains constraints and definitions. For the purpose of this thesis, we split up definitions into two kinds: input* (also called intentional or stratified predicates, or domain atoms) and search definitions. Input* definitions are definitions that depend on concepts that are known beforehand and can be evaluated. One contribution of this thesis is the evaluation of input* definitions using Tabled Prolog. In order to use these techniques, definitions have to be transformed into a format usable by Prolog. The main challenge in this transformation is correctly projecting away the types and rich language constructs, whilst taking into acount Prolog's left-to-right execution mechanism. Search definitions on the other hand cannot be evaluated because they depend on unknown data. This text elaborates how the above translation to Prolog can be re-used: 1) to partially evaluate definitions, deriving as much information as possible, and 2) ground definitions using a Tabled Prolog execution mechanism. We developed a method to guide the solver to focus on relevant parts in the search space. Only the part of the specification that is linked with the current search branch of the problem has to be taken into account. The goal of this technique is to prevent certain decisions from being made once it is possible to prove that they will not influence the outcome of searching in the current search branch. Additionally, this leads us to an improved stopping criterion for SAT(ID) solvers since any state without relevant decisions is considered an end state, instead of only states in which all literals have been decided. An implementation of technique is presented. The implementation uses a incremental approach, adjusting certain data structures based on the changes in the solver state. With this work we intend to increase the usability of the IDP3 system and elevate it to a "mature" Knowledge Base System.Abstract iii Contents vii List of Acronyms xi List of Symbols xiii List of Figures xvii List of Tables xix 1 Introduction 1 2 Preliminaries: FO(·) 7 2.1 Some Mathematical Basics 7 2.1.1 Sets 7 2.1.2 Lists 8 2.1.3 Type 9 2.1.4 Typings and Tuples 9 2.1.5 Functions 9 2.1.6 Predicate 10 2.2 The Language FO(·) 10 2.2.1 Vocabulary Σ 11 2.2.2 Interpretation I 13 2.2.3 Theory T 17 2.2.4 Concluding Example: Sudoku 21 2.3 Semantics for FO(·) 23 2.3.1 Evaluating a Term in a Structure 24 2.3.2 Semantics of Formulas 24 2.3.3 Semantics of Definitions 24 2.4 Conclusion 26 3 Preliminaries: KBS and IDP 27 3.1 KBS paradigm: Inferences as Tools for Solving Problems 27 3.1.1 Inferences 28 3.1.2 Advantages of the KBS Paradigm 30 3.2 The IDP System 30 3.2.1 The Grounder of IDP 31 3.2.2 The Solver of IDP 40 3.3 Conclusion 43 4 Experimental Evaluation of a State-of-the-art Grounder 45 4.1 Grounding Technique Experiments 46 4.1.1 Experimental Evaluation of RED 49 4.1.2 Experimental Evaluation of LUP 51 4.1.3 Experimental Evaluation of GWB 52 4.2 Solver Behaviour on Optimized Ground Theories 53 4.3 Conclusion 60 5 Complementing the IDP3 system with XSB 63 5.1 Preliminaries 63 5.1.1 Workflow Analysis of IDP3 64 5.1.2 The Calculating Definitions Step 65 5.2 Evaluating input∗ Symbols With XSB 69 5.2.1 Translating FO(·) to a tabled Prolog Program 69 5.2.2 Choosing and Configuring a Prolog System 79 5.2.3 Calling XSB from IDP3 80 5.3 Experimental Evaluation 81 5.4 Refining Definitions With XSB 84 5.5 Conclusion 88 6 Relevance for SAT(ID) 91 6.1 Introduction 91 6.2 Preliminaries 93 6.2.1 PC(ID) 93 6.2.2 Justifications 94 6.3 Relevance 96 6.3.1 Observations 96 6.3.2 Exploiting Relevance 99 6.4 Implementing Relevance as part of an Existing SAT(ID) Solver 100 6.4.1 The Basic Framework 100 6.4.2 Deriving the Justification Status of Literals 101 6.4.3 Implementing the Relevance Tracker 103 6.5 Experimental Evaluation 109 6.6 Conclusion 114 7 Conclusion 117 7.1 Contributions and Conclusions 117 7.2 Future Research Ideas 119 A Additional XSB Prolog code 121 A.1 The forall/2 Predicate in XSB 121 A.2 Translation of IDP3 Built-in Arithmetic Operators to XSB Prolog Code 121 A.3 Translation of IDP3 Aggregate Terms to XSB Prolog Code 123 Bibliography 125 Curriculum Vitae 135 List of Publications 137status: publishe
    corecore