Tabled Prolog and Linear Tabling - PowerPoint PPT Presentation

About This Presentation
Title:

Tabled Prolog and Linear Tabling

Description:

Otherwise, start a new round of evaluation of A. ... Second round. p1. p3. 7. e(b,Y0), memo(p(a,Y0)). 8. memo(p(a,c)). use p(a,b) e2. 9. e(c,Y0) ... – PowerPoint PPT presentation

Number of Views:118
Avg rating:3.0/5.0
Slides: 21
Provided by: zhoushen
Category:

less

Transcript and Presenter's Notes

Title: Tabled Prolog and Linear Tabling


1
Tabled Prolog and Linear Tabling
  • Neng-Fa Zhou
  • (City Univ. of New York)Yi-Dong Shen
  • (Chinese Academy of Sciences)
  • Taisuke Sato
  • (Tokyo Inst. of Technology)

2
Tabling is Useful
  • Eliminate infinite loops path(X,Y)-edge(X,Y). p
    ath(X,Y)-edge(X,Z),path(Z,Y).
  • Reduce redundant computations fib(0,1). fib(1,1)
    . fib(N,F)-Ngt1, N1 is N-1,fib(N1,F1),
    N2 is N-2,fib(N2,F2), F is F1F2.

3
Tabling in OLDT (SLG-WAM)
  • suspend/resume
  • Complicate implementation
  • freeze stacks
  • overhead on standard programs
  • garbage collection

table
producer
A...
...
consumer
A...
A is suspended after the existing answers are
exhausted
4
Linear Tabling
  • Advantages
  • Easy to implement
  • Space efficient
  • Overhead-free
  • Disadvantage
  • Re-computation
  • Optimizations
  • Subgoal optimization
  • Semi-naïve evaluation

table
A...
pioneer
...
follower
A...
A fails or becomes a producerafter consuming
existing answers A needs to be re-evaluated in
some cases
5
The Linear Tabling Framework
  • Augmented programs

p(X,Y)-p(X,Z),e(Z,Y).p(X,Y)-e(X,Y).
p(X,Y)-p(X,Z),e(Z,Y),memo(p(X,Y)).p(X,Y)-e(X,Y)
,memo(p(X,Y)). p(X,Y)-check_completion(p(X,Y)).
6
The Linear Tabling Framework(cont.)
  • table_start(A)
  • Executed when a tabled subgoal A is encountered
  • memo(A)
  • Executed when a clause succeeds
  • check_completion(A)
  • Executed after all clauses have been tried.

7
Definitions
  • Loops, pioneers and followers
  • A derivation Gi??Gj forms a loop if
  • Gi(A,) and Gj(A,)
  • A and A are variants
  • A is an ancestor of A
  • Subgoal A is called a pioneer and A is called a
    follower of A.

8
Definitions (cont.)
  • Top-most looping nodes and subgoals
  • A node in an SLD-tree is called a top-most
    looping node if the selected subgoal of the node
    is the pioneer of a loop that is not contained in
    any other loops.

9
A Linear Tabling Method
  • table_start(A)
  • If A is complete, resolve A by using answers.
  • If A is a pioneer, register A and resolve A by
    using program clauses.
  • If A is a follower, resolve A by using answers
    and fail A after all existing answers are
    exhausted.

10
A Linear Tabling Method (cont.)
  • memo(A)
  • Add A into the table and fail.

11
A Linear Tabling Method (cont.)
  • check_completion(A)
  • If A has never occurred in a loop, complete A and
    resolve A by using the answers.
  • If A is a top-most looping subgoal
  • If no new answer was produced in the last round,
    then complete A and resolve A by using the
    answers
  • Otherwise, start a new round of evaluation of A.
  • If A is a looping subgoal but not a top-most one
  • Set As state to temporary complete and resolve A
    by using the answers

12
Example
p(X,Y)-p(X,Z),e(Z,Y),memo(p(X,Y)). (p1)p(X,Y)-e
(X,Y),memo(p(X,Y)). (p2) p(X,Y)-check_completion
(p(X,Y)). (p3) e(a,b). (e1) e(b,c). (e2)
program
1. p(a,Y0).
First round
p1
p3
p2
2. p(a,Z1), e(Z1,Y0), memo(p(a,Y0)).
3. e(a,Y0), memo(p(a,Y0)).
5. check_comp(p(a,Y0)).
e1
4. memo(p(a,b)).
13
p(X,Y)-p(X,Z),e(Z,Y),memo(p(X,Y)). (p1)p(X,Y)-e
(X,Y),memo(p(X,Y)). (p2) p(X,Y)-check_completion
(p(X,Y)). (p3) e(a,b). (e1) e(b,c). (e2)
p(a,b).
table
program
Second round
1. p(a,Y0).
p1
p3
p2
6. p(a,Z1), e(Z1,Y0), memo(p(a,Y0)).
10. check_comp(p(a,Y0)).

use p(a,c)
use p(a,b)
9. e(c,Y0), memo(p(a,Y0)).
7. e(b,Y0), memo(p(a,Y0)).
p(a,b). p(a,c).
e2
8. memo(p(a,c)).
14
Characteristics of the Method
  • Fixpoints are computed by iterating the
    evaluation of top-most looping subgoals
  • Followers consume answers only
  • Pioneers consume answers lazily
  • Top-most looping subgoals consume answers after
    they are complete
  • Other looping subgoals consume answers after all
    clauses have been tried

15
Adopted and Related Tabling Strategies
  • Lazy answer consumption
  • Local scheduling strategy in SLG-WAM Freire96
  • What to do after a follower consumes all
    available answers?
  • Steals the pioneers choice pointer Zhou00
  • Fails the follower Guo Gupta 01
  • Where to start re-computation?
  • At the top-most looping subgoal Shen98
  • At every looping subgoal Guo01

16
Strengths and Weaknesses
  • Lazy answer consumption is suitable for
    all-solution search
  • A basic operation used in PRISM
  • Not suitable for single-solution search or
    programs with cuts
  • For the query, once(p(X)), all solutions are
    computed even though only one is needed.

17
Optimization Techniques
  • Subgoal Optimization
  • In each round of evaluation of a top-most looping
    subgoal, each subgoal needs to be evaluated only
    once.
  • Semi-naïve Optimization
  • Mimic the semi-naïve technique in bottom-up
    evaluation at least one new answer is involved
    in the join of answers for each rule.

18
Semi-naïve Evaluation in Linear Tabling
  • Let H-A1,,Ak,,An be a rule where Ak is the
    last dependent subgoal of H. For a subgoal C of
    H, it is safe for Ak to consume only new answers
    if
  • 1. C has occurred in an early round
  • 2. No subgoal Ai (iltk) has consumed a new answer.

19
Performance Evaluation
  • BP vs. XSB (CPU time)
  • BP vs. XSB (Stack space)

20
Papers
  1. N.F. Zhou, Y.D. Shen, L. Yuan, and J. You A
    Linear Tabling Mechanism, The Journal of
    Functional and Logic Programming, 2001.
  2. N.F. Zhou and T. Sato Efficient Fixpoint
    Computation in Linear Tabling, ACM SIGPLAN
    International Conference on Principles and
    Practice of Declarative Programming (PPDP),
    pp.275-283, 2003.
  3. N.F. Zhou, Y. Shen, and T. Sato Semi-naive
    Evaluation in Linear Tabling, ACM PPDP, pp.90-97,
    2004.
Write a Comment
User Comments (0)
About PowerShow.com