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.

[1]  Sean R Eddy,et al.  What is dynamic programming? , 2004, Nature Biotechnology.

[2]  Yanhong A. Liu,et al.  Program optimization using indexed and recursive data structures , 2002, PEPM '02.

[3]  Eugene W. Myers,et al.  Optimal alignments in linear space , 1988, Comput. Appl. Biosci..

[4]  Robert Giegerich,et al.  A systematic approach to dynamic programming in bioinformatics , 2000, Bioinform..

[5]  Stuart E. Dreyfus,et al.  Applied Dynamic Programming , 1965 .

[6]  Robert Giegerich,et al.  A discipline of dynamic programming over sequence data , 2004, Sci. Comput. Program..

[7]  Jan Krüger,et al.  RNA-related tools on the Bielefeld Bioinformatics Server , 2003, Nucleic Acids Res..

[8]  L. Pachter,et al.  Algebraic Statistics for Computational Biology: Preface , 2005 .

[9]  Richard M. Karp,et al.  The Organization of Computations for Uniform Recurrence Equations , 1967, JACM.

[10]  Vineet Bafna,et al.  On de novo interpretation of tandem mass spectra for peptide identification , 2003, RECOMB '03.

[11]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[12]  Dan Gusfield,et al.  Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology , 1997 .

[13]  R. Durbin,et al.  Biological sequence analysis: Background on probability , 1998 .

[14]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[15]  Walter S. Brainerd,et al.  Tree Generating Regular Systems , 1969, Inf. Control..

[16]  Robert Giegerich,et al.  Design, implementation and evaluation of a practical pseudoknot folding algorithm based on thermodynamics , 2004, BMC Bioinformatics.

[17]  Dan Gusfield,et al.  Algorithms on strings , 1997 .

[18]  P. Gács,et al.  Algorithms , 1992 .

[19]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[20]  Alfred V. Aho,et al.  The Theory of Parsing, Translation, and Compiling , 1972 .

[21]  Jan Arne Telle,et al.  Space-Efficient Construction Variants of Dynamic Programming , 2004, Nord. J. Comput..

[22]  Dan Gusfield,et al.  Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology , 1997 .

[23]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[24]  Daniel S. Hirschberg,et al.  A linear space algorithm for computing maximal common subsequences , 1975, Commun. ACM.

[25]  Donald E. Knuth,et al.  A Generalization of Dijkstra's Algorithm , 1977, Inf. Process. Lett..

[26]  John M. Lewis,et al.  The Node-Deletion Problem for Hereditary Properties is NP-Complete , 1980, J. Comput. Syst. Sci..

[27]  G. Rote Path Problems in Graphs , 1990 .

[28]  Gilles Brassard,et al.  Algorithmics - theory and practice , 1988 .

[29]  Kurt Mehlhorn,et al.  Data Structures and Algorithms 3: Multi-dimensional Searching and Computational Geometry , 2012, EATCS Monographs on Theoretical Computer Science.