About this book
Answer set programming (ASP) is a declarative language tailored towards solving combinatorial optimization problems. It has been successfully applied to e.g. planning problems, configuration and verification of software, diagnosis and database repairs. However, ASP is not directly suitable for modeling problems with continuous domains. Such problems occur naturally in diverse fields such as the design of gas and electricity networks, computer vision and investment portfolios. To overcome this problem we study FASP, a combination of ASP with fuzzy logic -- a class of manyvalued logics that can handle continuity. We specifically focus on the following issues: 1. An important question when modeling continuous optimization problems is how we should handle overconstrained problems, i.e. problems that have no solutions. In many cases we can opt to accept an imperfect solution, i.e. a solution that does not satisfy all the stated rules (constraints). However, this leads to the question: what imperfect solutions should we choose? We investigate this question and improve upon the state-of-the-art by proposing an approach based on aggregation functions. 2. Users of a programming language often want a rich language that is easy to model in. However, implementers and theoreticians prefer a small language that is easy to implement and reason about. We create a bridge between these two desires by proposing a small core language for FASP and by showing that this language is capable of expressing many of its common extensions such as constraints, monotonically decreasing functions, aggregators, S-implicators and classical negation. 3. A well-known technique for solving ASP consists of translating a program P to a propositional theory whose models exactly correspond to the answer sets of P. We show how this technique can be generalized to FASP, paving the way to implement efficient fuzzy answer set solvers that can take advantage of existing fuzzy reasoners.
Answer Set Programming Continuous Optimization Fuzzy Logic Logic Programming