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 introduces the reader to the theory and practice of ASP. It describes 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 includes numerous examples of ASP programs and present the mathematical theory that ASP is based on. There are many exercises with complete solutions.
Vladimir Lifschitz is a Professor of Computer Science at the University of Texas at Austin and a Fellow of the Association for the Advancement of Artificial Intelligence. He received a degree in Mathematics from the Steklov Mathematical Institute in Leningrad, USSR in 1971. A few years later he came to the United States, and his research interests turned to computational logic and knowledge representation. Lifschitz has written over 60 papers on logic programming, coined the term "answer set programming," and received several awards for publications in this area, including a Most Influential Paper in 20 Years Award and a Test of Time Award from the Association for Logic Programming. Lifschitz has served as the Editor-in-Chief of ACM Transactions on Computational Logic and as a member of the Editorial Board of the journal Artificial Intelligence.
Introduction.- Input Language of CLINGO.- Combinatorial Search.- Propositional Programs and Minimal Models.- Programs with Negation.- Mathematics of Stable Models.- More about the Language of CLINGO.- Dynamic Systems.- Conclusion.