Solving Hard Disjunctive Logic Programs Faster (Sometimes)

Disjunctive Logic Programming (DLP) under the consistent answer set semantics is an advanced formalism for knowledge representation and reasoning. It is, under widely believed assumptions, strictly more expressive than normal (disjunction-free) logic programming, whose expressiveness is limited to properties decidable in NP. However, this higher expressiveness comes at a computational cost, and while there are now several efficient systems for normal logic programming under the answer set semantics, we are only aware of two serious implementations for the full, disjunctive case. In this paper we investigate a novel technique to couple two main modules usually employed for the implementation of a DLP system more tightly: a model generator (which generates model candidates using a backtracking procedure) and a model checker (which verifies whether such a candidate indeed is an answer set). Instead of using the model checker only as a boolean oracle, in our approach, for every failed check, the model checker also returns a so-called unfounded set. Intuitively, this set provides a diagnosis why the model candidate is not an answer set, and the generator employs this knowledge to backtrack until the set is no longer unfounded, which is vastly more efficient than employing full-fledged model checks to control backtracking. We implemented this approach in DLV, the leading implementation of DLP according to recent comparisons, and experiments on hard benchmark instances indeed show a significant speedup.

[1]  Jürgen Dix,et al.  Planning in Answer Set Programming using Ordered Task Decomposition , 2003, We Will Show Them!.

[2]  Gerald Pfeifer,et al.  Progress Report on the Disjunctive Deductive Database System dlv , 1998, FQAS.

[3]  Wolfgang Faber,et al.  A logic programming approach to knowledge-state planning: Semantics and complexity , 2004, TOCL.

[4]  Timo Soininen,et al.  Extending and implementing the stable model semantics , 2000, Artif. Intell..

[5]  V. Lifschitz,et al.  Foundations of Logic Programming , 1997 .

[6]  Francesco Scarcello,et al.  Disjunctive Stable Models: Unfounded Sets, Fixpoint Semantics, and Computation , 1997, Inf. Comput..

[7]  Wolfgang Faber,et al.  Experimenting with Heuristics for Answer Set Programming , 2001, IJCAI.

[8]  Bernhard Nebel,et al.  Encoding Planning Problems in Nonmonotonic Logic Programs , 1997, ECP.

[9]  Arthur B. Markman,et al.  Knowledge Representation , 1998 .

[10]  Chitta Baral,et al.  Knowledge Representation, Reasoning and Declarative Problem Solving , 2003 .

[11]  Fangzhen Lin,et al.  ASSAT: computing answer sets of a logic program by SAT solvers , 2002, Artif. Intell..

[12]  Gerald Pfeifer,et al.  Enhancing disjunctive logic programming systems by SAT checkers , 2003, Artif. Intell..

[13]  Wolfgang Faber,et al.  Pruning operators for answer set programming systems , 2002, NMR.

[14]  Georg Gottlob,et al.  Disjunctive datalog , 1997, TODS.

[15]  Georg Gottlob,et al.  On the computational cost of disjunctive logic programming: Propositional case , 1995, Annals of Mathematics and Artificial Intelligence.

[16]  Peter Szolovits,et al.  What Is a Knowledge Representation? , 1993, AI Mag..

[17]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[18]  Christos H. Papadimitriou,et al.  Computational complexity , 1993 .

[19]  Jean H. Gallier,et al.  Linear-Time Algorithms for Testing the Satisfiability of Propositional Horn Formulae , 1984, J. Log. Program..