Skip to main content

2019 | Buch

Answer Set Programming

insite
SUCHEN

Über dieses Buch

Answer set programming (ASP) is a programming methodology oriented towards combinatorial search problems. In such a problem, the goal is to find a solution among a large but finite number of possibilities. The idea of ASP came from research on artificial intelligence and computational logic. ASP is a form of declarative programming: an ASP program describes what is counted as a solution to the problem, but does not specify an algorithm for solving it. Search is performed by sophisticated software systems called answer set solvers.

Combinatorial search problems often arise in science and technology, and ASP has found applications in diverse areas—in historical linguistic, in bioinformatics, in robotics, in space exploration, in oil and gas industry, and many others. The importance of this programming method was recognized by the Association for the Advancement of Artificial Intelligence in 2016, when AI Magazine published a special issue on answer set programming.

The book will introduce the reader to the theory and practice of ASP. It will describe the input language of the answer set solver CLINGO, which was designed at the University of Potsdam in Germany and is used today by ASP programmers in many countries. It will include numerous examples of ASP programs and present the mathematical theory that ASP is based on. There will be many exercises with complete solutions.

Inhaltsverzeichnis

Frontmatter
Chapter 1. Introduction
Abstract
When a programmer solves a computational problem, this is usually accomplished by finding or designing an algorithm and encoding it in an implemented programming language. This book is about an alternative, declarative approach to programming, which does not involve encoding algorithms. A program in a declarative language only describes what is counted as a solution. Given such a description, a declarative programming system finds a solution by the process of automated reasoning. A program in a declarative language is an encoding of the problem itself, not of an algorithm.
Vladimir Lifschitz
Chapter 2. Input Language of clingo
Abstract
clingois the centerpiece of the collection of ASP-related tools created at the University of Potsdam in Germany, called Potassco (for Potsdam Answer Set Solving Collection). Useful documentation and teaching materials, including information on downloading the latest clingo release and on running clingo in your browser, are available at the website of the Potassco project, https://potassco.org.
Vladimir Lifschitz
Chapter 3. Combinatorial Search
Abstract
In a combinatorial search problem, the goal is to find a solution among a finite number of candidates. The ASP approach is to encode such a problem as a logic program whose stable models correspond to solutions, and then use an answer set solver to find a stable model.
Vladimir Lifschitz
Chapter 4. Propositional Programs and Minimal Models
Abstract
In this chapter and the next, we discuss the mathematical definition of a stable model. In the process, we introduce a few syntactic features of the input language of clingo that have not been mentioned earlier.
Vladimir Lifschitz
Chapter 5. Programs with Negation
Abstract
Our next goal is to extend the definition of a stable model from Sect. 4.​4 to propositional programs that contain negation, and to apply this generalization to clingo programs with negation and choice. We begin with an informal discussion of a few examples.
Vladimir Lifschitz
Chapter 6. Mathematics of Stable Models
Abstract
In Chap. 5 we saw how properties of stable models expressed by Theorem on Facts, Theorem on Irrelevant Formulas, and Theorem on Constraints can be used sometimes to calculate the stable models of a program without referring to the definition of a stable model directly. This chapter discusses other useful properties of stable models.
Vladimir Lifschitz
Chapter 7. More About the Language of clingo
Abstract
The programming constructs described below significantly extend the expressive possibilities of the language used Chaps. 2 and 3. The first three sections are about aggregates—functions that apply to sets. Then we show how clingo can be used to solve combinatorial optimization problems and discuss clingo programs with symbolic functions and classical negation.
Vladimir Lifschitz
Chapter 8. Dynamic Systems
Abstract
Answer set programming has important applications to the study of dynamic systems—systems whose states can be changed by performing actions. It can be used, for instance, to predict and to plan. In a prediction problem, the task is to determine how the current state of a dynamic system will change after executing a given sequence of actions. In a planning problem, the task is to find a sequence of actions that leads a dynamic system from a given initial state to a goal state.
Vladimir Lifschitz
Chapter 9. Conclusion
Abstract
The discussion of answer set programming in this book is incomplete in three ways. First, it says almost nothing about the algorithms that answer set solvers use to find stable models, about what happens “under the hood.” Section 3.​4 is, in fact, the only place where the operation of answer set solvers is discussed in any detail. The algorithms implemented in Smodels are described in Chaps. 3 and 4 of the doctoral dissertation of one of its designers (Simons, Extending and implementing the stable model semantics. Ph.D. Thesis, Helsinki University of Technology, 2000). You can learn about the operation of clingo from Chaps. 4 and 6 of the book (Gebser et al. Answer set solving in practice. Synthesis lectures on artificial intelligence and machine learning. Morgan and Claypool Publishers, 2012) written by members of the Potassco team.
Vladimir Lifschitz
Correction to: Propositional Programs and Minimal Models
Vladimir Lifschitz
Backmatter
Metadaten
Titel
Answer Set Programming
verfasst von
Prof. Vladimir Lifschitz
Copyright-Jahr
2019
Electronic ISBN
978-3-030-24658-7
Print ISBN
978-3-030-24657-0
DOI
https://doi.org/10.1007/978-3-030-24658-7

Premium Partner