Abstract
Tabling is a kind of memoization technique that caches the results of certain calculations in memory and reuses them in subsequent calculations through a quick table lookup. Tabling makes declarative dynamic programming possible. Users only need to describe how to break a problem into subproblems; they do not need to implement the data structures and algorithms for storing and looking up subproblems and their answers. This chapter describes the syntax and semantics of tabling in Picat, and demonstrates several dynamic programming examples.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A minimal model is the semantics given to programs that do not contain negation. There are several proposed definitions for the semantics of logic programs that contain negation. Since none of the examples presented in this book contains negation, the semantics of negation is not discussed in this book.
- 2.
Taken with permission from http://people.cs.clemson.edu/~bcdean/dp_practice.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2015 The Author(s)
About this chapter
Cite this chapter
Zhou, NF., Kjellerstrand, H., Fruhman, J. (2015). Dynamic Programming with Tabling. In: Constraint Solving and Planning with Picat. SpringerBriefs in Intelligent Systems. Springer, Cham. https://doi.org/10.1007/978-3-319-25883-6_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-25883-6_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-25881-2
Online ISBN: 978-3-319-25883-6
eBook Packages: Computer ScienceComputer Science (R0)