Abstract
Dynamic programming is a classic programming technique, applicable in a wide variety of domains, like stochastic systems analysis, operations research, combinatorics of discrete structures, flow problems, parsing with ambiguous grammars, or biosequence analysis. Yet, no methodology is available for designing such algorithms. The matrix recurrences that typically describe a dynamic programming algorithm are diffcult to construct, error-prone to implement, and almost impossible to debug.
This article introduces an algebraic style of dynamic programming over sequence data. We define the formal framework including a formalization of Bellman’s principle, specify an executable specification language, and show how algorithm design decisions and tuning for efficiency can be described on a convenient level of abstraction.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
A. V. Aho, J. E. Hopcroft, and J. D. Ullman. Data Structures and Algorithms. Addison-Wesley, Reading, MA, USA, 1983.
R. Bellman. Dynamic Programming. Princeton University Press, 1957.
R. S. Bird and O. de Moor. From dynamic programming to greedy algorithms. In B. Moeller, editor, State-of-the-Art Seminar on Formal Program Development. Springer LNCS 755, 1993.
W. S. Brainerd. Tree generating regular systems. Information and Control, 14:217–231, 1969.
G. Brassard and P. Bratley. Algorithmics: Theory and Practice. Prentice-Hall, 1988.
T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. MIT Press, Cambridge, MA, 1990.
S. Curtis. Dynamic programming: A different perspective. In R. Bird and L. Meertens, editors, Algorithmic Languages and Calculi, pages 1–23. Chapman & Hall, London, U. K., 1997.
R. Durbin, S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge University Press, 1998.
D. Evers and R. Giegerich. Reducing the conformation space in RNA structure prediction. In German Conference on Bioinformatics, 2001.
R. Giegerich. A Systematic Approach to Dynamic Programming in Bioinformatics. Bioinformatics, 16:665–677, 2000.
R. Giegerich. Explaining and controlling ambiguity in dynamic programming. In Proc. Combinatorial Pattern Matching, pages 46–59. Springer Verlag, 2000.
R. Giegerich, M. Höchsmann, and S. Kurtz. Local Similarity Problems on Trees: A Uniform Model and its Implementation. 2002. (submitted).
R. Giegerich and K. Schmal. Code selection techniques: Pattern matching, tree parsing and inversion of derivors. In Proc. European Symposium on Programming 1988, pages 247–268. Springer LNCS 300, 1988.
R. Giegerich and P. Steffen. Implementing algebraic dynamic programming in the functional and the imperative paradigm. In E. A. Boiten and B. Möller, editors, Mathematics of Program Construction, pages 1–20. Springer LNCS 2386, 2002.
O. Gotoh. An improved algorithm for matching biological sequences. J. Mol. Biol., 162:705–708, 1982.
D. Gusfield. Algorithms on Strings, Trees, and Sequences. Cambridge University Press, 1997.
S. Kurtz. Fundamental Algorithms for a Declarative Pattern Matching System. Dissertation, Technische Fakultät der Universität Bielefeld, 1995.
K. Mehlhorn. Data structures and algorithms. Springer Verlag, 1984.
C. Meyer and R. Giegerich. Matching and Significance Evaluation of Combined Sequence-Structure Motifs in RNA. Z. Phys. Chem., 216:193–216, 2002.
L. Mitten. Composition principles for the synthesis of optimal multi-stage processes. Operations Research, 12:610–619, 1964.
O. de Moor. Dynamic Programming as a Software Component. In M. Mastorakis, editor, Proceedings of CSCC, July 4–8, Athens. WSES Press, 1999.
T. L. Morin. Monotonicity and the principle of optimality. Journal of Mathematical Analysis and Applications, 86:665–674, 1982.
S. B. Needleman and C. D. Wunsch. A general method applicable to the search for similarities in the amino acid sequence of two proteins. J. Mol. Biol., 48:443–453, 1970.
R. Sedgewick. Algorithms. Addison-Wesley, 2nd edition, 1989.
T. F. Smith and M. S. Waterman. The identification of common molecular subsequences. J. Mol. Biol., 147:195–197, 1981.
M. Zuker and S. Sankoff. RNA secondary structures and their prediction. Bull. Math. Biol., 46:591–621, 1984.
M. Zuker and P. Stiegler. Optimal computer folding of large RNA sequences using thermodynamics and auxiliary information. Nucleic Acids Res., 9(1):133–148, 1981.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Giegerich, R., Meyer, C. (2002). Algebraic Dynamic Programming. In: Kirchner, H., Ringeissen, C. (eds) Algebraic Methodology and Software Technology. AMAST 2002. Lecture Notes in Computer Science, vol 2422. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45719-4_24
Download citation
DOI: https://doi.org/10.1007/3-540-45719-4_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44144-1
Online ISBN: 978-3-540-45719-0
eBook Packages: Springer Book Archive