Affiliation:
1. State University of New York at Stony Brook, Stony Brook, NY
Abstract
This paper describes a systematic method for optimizing recursive functions using both indexed and recursive data structures. The method is based on two critical ideas: first, determining a minimal input increment operation so as to compute a function on repeatedly incremented input; second, determining appropriate additional values to maintain in appropriate data structures, based on what values are needed in computation on an incremented input and how these values can be established and accessed. Once these two are determined, the method extends the original program to return the additional values, derives an incremental version of the extended program, and forms an optimized program that repeatedly calls the incremental program. The method can derive all dynamic programming algorithms found in standard algorithm textbooks. There are many previous methods for deriving efficient algorithms, but none is as simple, general, and systematic as ours.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference36 articles.
1. Merging and Sorting Applied to the Zero-One Knapsack Problem
2. Magic sets and other strange ways to implement logic programs (extended abstract)
3. H. Bernstein. To transpose or not to transpose-performance issues in the use of Java-based XML software for real-world problems. http://www.cs.sunysb.edu/liu/darseminar/msg00005.html Sept. 2001.]] H. Bernstein. To transpose or not to transpose-performance issues in the use of Java-based XML software for real-world problems. http://www.cs.sunysb.edu/liu/darseminar/msg00005.html Sept. 2001.]]
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献