Table design in dynamic programming

8 years 10 months ago
Table design in dynamic programming
Dynamic Programming solves combinatorial optimization problems by recursive decomposition and tabulation of intermediate results. The first step in the design of a dynamic programming algorithm is to decide on the set of tables that will hold optimal solutions to subproblems. This step predetermines the shape of the dynamic programming recurrences as well as the asymptotic efficiency of the algorithm in time and space. We study dynamic programming in a formal framework where design of tables and problem decomposition can be done independently. Our main result shows that choosing a good table design for a given decomposition is an NP-complete problem. A heuristic or approximate approach is therefore needed to automate good table design. We report on a strategy that combines user annotation and a brute force algorithm, which is shown to perform well in a large application. Key words: Dynamic programming, programming methodology, NP completeness, space-time trade-off.
Peter Steffen, Robert Giegerich
Added 12 Dec 2010
Updated 12 Dec 2010
Type Journal
Year 2006
Authors Peter Steffen, Robert Giegerich
Comments (0)