Dynamic Programming with Tabling
- 395 Downloads
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.