1 / 20

Tabled Prolog and Linear Tabling

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). Tabling is Useful. Eliminate infinite loops path(X,Y):-edge(X,Y). path(X,Y):-edge(X,Z),path(Z,Y).

plato
Download Presentation

Tabled Prolog and Linear Tabling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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) Linear Tabling

  2. Tabling is Useful • Eliminate infinite loopspath(X,Y):-edge(X,Y). path(X,Y):-edge(X,Z),path(Z,Y). • Reduce redundant computationsfib(0,1). fib(1,1). fib(N,F):-N>1, N1 is N-1,fib(N1,F1), N2 is N-2,fib(N2,F2), F is F1+F2. Linear Tabling

  3. suspend/resume Complicate implementation freeze stacks overhead on standard programs garbage collection Tabling in OLDT (SLG-WAM) table producer A... ... consumer A’... A’ is suspended after the existing answers are exhausted Linear Tabling

  4. Advantages Easy to implement Space efficient Overhead-free Disadvantage Re-computation Optimizations Subgoal optimization Semi-naïve evaluation Linear Tabling table A... pioneer ... follower A’... A’ fails or becomes a producerafter consuming existing answers A needs to be re-evaluated in some cases Linear Tabling

  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)). Linear Tabling

  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. Linear Tabling

  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. Linear Tabling

  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. Linear Tabling

  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. Linear Tabling

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

  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 A’s state to temporary complete and resolve A by using the answers Linear Tabling

  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)). Linear Tabling

  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):-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)). Linear Tabling

  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 Linear Tabling

  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 pioneer’s 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] Linear Tabling

  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. Linear Tabling

  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. Linear Tabling

  18. Semi-naïve Evaluation in Linear Tabling • Let H:-A1,…,Ak,…,Anbe a rulewhere Akis 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 (i<k) has consumed a new answer. Linear Tabling

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

  20. Papers • N.F. Zhou, Y.D. Shen, L. Yuan, and J. You: A Linear Tabling Mechanism, The Journal of Functional and Logic Programming, 2001. • 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. • N.F. Zhou, Y. Shen, and T. Sato: Semi-naive Evaluation in Linear Tabling, ACM PPDP, pp.90-97, 2004. Linear Tabling

More Related