Skip to main content

Algebraic Dynamic Programming

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2422))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, J. E. Hopcroft, and J. D. Ullman. Data Structures and Algorithms. Addison-Wesley, Reading, MA, USA, 1983.

    MATH  Google Scholar 

  2. R. Bellman. Dynamic Programming. Princeton University Press, 1957.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. W. S. Brainerd. Tree generating regular systems. Information and Control, 14:217–231, 1969.

    Article  MATH  MathSciNet  Google Scholar 

  5. G. Brassard and P. Bratley. Algorithmics: Theory and Practice. Prentice-Hall, 1988.

    Google Scholar 

  6. T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. MIT Press, Cambridge, MA, 1990.

    MATH  Google Scholar 

  7. 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.

    Google Scholar 

  8. R. Durbin, S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge University Press, 1998.

    Google Scholar 

  9. D. Evers and R. Giegerich. Reducing the conformation space in RNA structure prediction. In German Conference on Bioinformatics, 2001.

    Google Scholar 

  10. R. Giegerich. A Systematic Approach to Dynamic Programming in Bioinformatics. Bioinformatics, 16:665–677, 2000.

    Article  Google Scholar 

  11. R. Giegerich. Explaining and controlling ambiguity in dynamic programming. In Proc. Combinatorial Pattern Matching, pages 46–59. Springer Verlag, 2000.

    Google Scholar 

  12. R. Giegerich, M. Höchsmann, and S. Kurtz. Local Similarity Problems on Trees: A Uniform Model and its Implementation. 2002. (submitted).

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Chapter  Google Scholar 

  15. O. Gotoh. An improved algorithm for matching biological sequences. J. Mol. Biol., 162:705–708, 1982.

    Article  Google Scholar 

  16. D. Gusfield. Algorithms on Strings, Trees, and Sequences. Cambridge University Press, 1997.

    Google Scholar 

  17. S. Kurtz. Fundamental Algorithms for a Declarative Pattern Matching System. Dissertation, Technische Fakultät der Universität Bielefeld, 1995.

    Google Scholar 

  18. K. Mehlhorn. Data structures and algorithms. Springer Verlag, 1984.

    Google Scholar 

  19. C. Meyer and R. Giegerich. Matching and Significance Evaluation of Combined Sequence-Structure Motifs in RNA. Z. Phys. Chem., 216:193–216, 2002.

    Google Scholar 

  20. L. Mitten. Composition principles for the synthesis of optimal multi-stage processes. Operations Research, 12:610–619, 1964.

    Article  MATH  MathSciNet  Google Scholar 

  21. O. de Moor. Dynamic Programming as a Software Component. In M. Mastorakis, editor, Proceedings of CSCC, July 4–8, Athens. WSES Press, 1999.

    Google Scholar 

  22. T. L. Morin. Monotonicity and the principle of optimality. Journal of Mathematical Analysis and Applications, 86:665–674, 1982.

    Article  MathSciNet  Google Scholar 

  23. 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.

    Article  Google Scholar 

  24. R. Sedgewick. Algorithms. Addison-Wesley, 2nd edition, 1989.

    Google Scholar 

  25. T. F. Smith and M. S. Waterman. The identification of common molecular subsequences. J. Mol. Biol., 147:195–197, 1981.

    Article  Google Scholar 

  26. M. Zuker and S. Sankoff. RNA secondary structures and their prediction. Bull. Math. Biol., 46:591–621, 1984.

    MATH  Google Scholar 

  27. 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics