Efficient fixpoint computation in linear tabling

Early resolution mechanisms proposed for tabling such as OLDT rely on suspension and resumption of subgoals to compute fixpoints. Recently, a new resolution framework called linear tabling has emerged as an alternative tabling method. The idea of linear tabling is to use iterative computation rather than suspension to compute fixpoints. Although linear tabling is simple, easy to implement, and superior in space efficiency, the current implementations are several times slower than XSB, the state-of-the-art implementation of OLDT, due to re-evaluation of looping subgoals. In this paper, we present a new linear tabling method and propose several optimization techniques for fast computation of fixpoints. The optimization techniques significantly improve the performance by avoiding redundant evaluation of subgoals, re-application of clauses, and reproduction of answers in iterative computation. Our implementation of the method in B-Prolog not only consumes an order of magnitude less stack space than XSB for some programs but also compares favorably well with XSB in speed.

[1]  Li-Yan Yuan,et al.  Implementation of a Linear Tabling Mechanism , 2001, J. Funct. Log. Program..

[2]  Juliana Freire,et al.  Beyond Depth-First: Improving Tabled Logic Programs through Alternative Scheduling Strategies , 1996, PLILP.

[3]  Bart Demoen,et al.  CHAT: the copy-hybrid approach to tabling , 2000, Future Gener. Comput. Syst..

[4]  Teodor C. Przymusinski Every logic program has a natural stratification and an iterated least fixed point model , 1989, PODS.

[5]  Neng-Fa Zhou,et al.  Toward a High-performance System for Symbolic and Statistical Modeling , 2002 .

[6]  Gopal Gupta,et al.  A Simple Scheme for Implementing Tabled Logic Programming Systems Based on Dynamic Reordering of Alternatives , 2001, ICLP.

[7]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

[8]  Li-Yan Yuan,et al.  Linear tabulated resolution based on Prolog control strategy , 2000, Theory and Practice of Logic Programming.

[9]  C. R. Ramakrishnan,et al.  Model Checking with Tabled Logic Programming , 2002 .

[10]  Konstantinos Sagonas,et al.  An abstract machine for tabled execution of fixed-order stratified logic programs , 1998, TOPL.

[11]  Ricardo Rocha,et al.  On a Tabling Engine That Can Exploit Or-Parallelism , 2001, ICLP.

[12]  Neng-Fa Zhou,et al.  Parameter passing and control stack management in Prolog implementation revisited , 1996, TOPL.

[13]  Bart Demoen,et al.  CAT: The Copying Approach to Tabling , 1999, J. Funct. Log. Program..

[14]  D. Michie “Memo” Functions and Machine Learning , 1968, Nature.

[15]  Roland N. Bol,et al.  Tabulated Resolution for the Well-Founded Semantics , 1993, J. Log. Program..

[16]  Jeffrey D. Ullman,et al.  Principles of Database and Knowledge-Base Systems, Volume II , 1988, Principles of computer science series.

[17]  K. A. Ross,et al.  Tabled Evaluation with Delaying for General Logic Programs , 1996 .

[18]  John Lloyd,et al.  Foundation of logic programming , 1983 .

[19]  David Scott Warren,et al.  Memoing for logic programs , 1992, CACM.

[20]  Hisao Tamaki,et al.  OLD Resolution with Tabulation , 1986, ICLP.