Cache efficient simple dynamic programming

New cache-oblivious and cache-aware algorithms for simple dynamic programming based on Valiant's context-free language recognition algorithm are designed, implemented, analyzed, and empirically evaluated with timing studies and cache simulations. The studies show that for large inputs the cache-oblivious and cache-aware dynamic programming algorithms are significantly faster than the standard dynamic programming algorithm.

[1]  Tadao Kasami,et al.  An Efficient Recognition and Syntax-Analysis Algorithm for Context-Free Languages , 1965 .

[2]  R. Bellman Dynamic programming. , 1957, Science.

[3]  Daniel H. Younger,et al.  Recognition and Parsing of Context-Free Languages in Time n^3 , 1967, Inf. Control..

[4]  V. Strassen Gaussian elimination is not optimal , 1969 .

[5]  George Epstein,et al.  Comments on "The Relationship Between Multivalued Switching Algebra and Boolean Algebra Under Different Definitions of Complement" , 1973, IEEE Trans. Computers.

[6]  Yoichi Muraoka,et al.  On the time required for a sequence of matrix products , 1973, CACM.

[7]  Sadashiva S. Godbole,et al.  On Efficient Computation of Matrix Chain Products , 1973, IEEE Transactions on Computers.

[8]  Leslie G. Valiant,et al.  General Context-Free Recognition in Less than Cubic Time , 1975, J. Comput. Syst. Sci..

[9]  F. Frances Yao,et al.  Efficient dynamic programming using quadrangle inequalities , 1980, STOC '80.

[10]  Alok Aggarwal,et al.  Geometric applications of a matrix-searching algorithm , 1987, SCG '86.

[11]  Alok Aggarwal,et al.  Geometric Applications of a Matrix Searching Algorithm , 1986, Symposium on Computational Geometry.

[12]  Zvi Galil,et al.  Dynamic Programming with Convexity, Concavity, and Sparsity , 1992, Theor. Comput. Sci..

[13]  Jop F. Sibeyn,et al.  Algorithms for Memory Hierarchies: Advanced Lectures , 2003 .

[14]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.

[15]  Donald E. Knuth,et al.  Optimum binary search trees , 1971, Acta Informatica.