Enhancing DLV instantiator by backjumping techniques

  • Authors:
  • Simona Perri;Francesco Scarcello;Gelsomina Catalano;Nicola Leone

  • Affiliations:
  • Department of Mathematics, University of Calabria, Rende (CS), Italy 87036;DEIS, University of Calabria, Rende (CS), Italy 87036;Department of Mathematics, University of Calabria, Rende (CS), Italy 87036;Department of Mathematics, University of Calabria, Rende (CS), Italy 87036

  • Venue:
  • Annals of Mathematics and Artificial Intelligence
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Disjunctive logic programming (DLP) is a powerful formalism for knowledge representation and reasoning. The high expressiveness of DLP language, together with the recent availability of some efficient DLP system, has favoured the application of DLP in emerging areas like Knowledge Management and Information Integration. These applications have often to deal with huge input data, and have evidenced the need to improve the efficiency of DLP instantiators. Program instantiation is the first phase of a DLP computation; in this phase, variables are replaced by constants to generate a ground program which is then evaluated by propositional algorithms in the second phase of the computation. The instantiation process may be computationally expensive, and in fact its efficiency has been recognized to be a key issue for solving real-world problems by using disjunctive logic programming. Given a program P, a good instantiation for P is a ground program P驴 having precisely the same answer sets as P and such that: (1) P驴 can be computed efficiently from P, and (2) P驴 does not contain "useless" rules, (P驴 is as small as possible) and can thus be evaluated efficiently. In this paper, we present a structure-based backjumping algorithm for the instantiation of disjunctive logic programs, that meets the above requirements. In particular, given a rule r to be grounded, our algorithm exploits both the semantical and the structural information about r for computing efficiently the ground instances of r, avoiding the generation of "useless" rules. That is, from each general rule r, we compute only a relevant subset of its ground instances, avoiding the generation of "useless" instances, while fully preserving the semantic of the program. We have implemented this algorithm in DLV--the state-of-the-art implementation of DLP--and we have carried out an experimentation activity on an ample collection of benchmark problems. The experimental results are very positive: the new technique improves sensibly the efficiency of the DLV system on many program classes.