skip to main content
10.1145/2003476.2003484acmotherconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
research-article

Bellman's GAP: a declarative language for dynamic programming

Published:20 July 2011Publication History

ABSTRACT

Dynamic programming is a well-established technique to solve combinatorial optimization problems. In several areas of applied computer science, such as operations research, natural language processing, or biosequence analysis, dynamic programming problems arise in many variations and with a considerable degree of sophistication. The simple way dynamic programming problems are normally presented in computer science textbooks -- as a set of table recurrences -- scales poorly for real world problems, where the search space is deeply structured and the scoring model is elaborate. Coming up with pages of correct recurrences is difficult, implementation is error-prone, and debugging is tedious. Algebraic Dynamic Programming (ADP) is a language-independent, declarative approach which alleviates these problems for a relevant class of dynamic programming problems over sequence data.

Bellman's GAP implements ADP by providing a declarative language (GAP-L) with a Java-reminiscent syntax, and a compiler (GAP-C) translating declarative programs into C++ code, which is competitive to handwritten code, and arguably more reliable. This article introduces the GAP-L language, demonstrates the benefits of developing dynamic programming algorithms in a declarative framework by educational example, and reports on the practice of programming bioinformatics applications with Bellman's GAP.

References

  1. M. I. Abouelhoda, R. Giegerich, B. Behzadi, and J.-M. Steyaert. Alignment of minisatellite maps based on run-length encoding scheme. J Bioinform Comput Biol, 7(2):287--308, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  2. R. E. Bellman. Dynamic Programming. Princeton University Press, 1957.Google ScholarGoogle Scholar
  3. E. Birney and R. Durbin. Dynamite: A flexible code generating language for dynamic programming methods used in sequence comparison. In Proc. of the 5th ISCB, pages 56--64, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. MIT Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Eisner, E. Goldlust, and N. A. Smith. Compiling comp ling: Weighted dynamic programming and the Dyna language. In Proc. of HLT-EMNLP, pages 281--290, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. P. Gardner, J. Daub, J. G. Tate, E. P. Nawrocki, D. L. Kolbe, S. Lindgreen, A. C. Wilkinson, R. D. Finn, S. Griffiths-Jones, S. R. Eddy, and A. Bateman. Rfam: updates to the RNA families database. Nucl. Acids Res., 37(suppl_1):D136--140, Jan. 2009.Google ScholarGoogle Scholar
  7. R. Giegerich. A systematic approach to dynamic programming in bioinformatics. Bioinformatics, 16:665--677, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  8. R. Giegerich and C. Meyer. Algebraic Dynamic Programming. In H. Kirchner and C. Ringeissen, editors, AMAST 2002, volume 2422 of Springer Lecture Notes in Computer Science, pages 349--364, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. Giegerich, C. Meyer, and P. Steffen. A discipline of dynamic programming over sequence data. Science of Computer Programming, 51(3):215--263, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Giegerich and G. Sauthoff. Yield grammar analysis in the Bellman's GAP compiler. In Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications, LDTA'11. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Giegerich and P. Steffen. Challenges in the Compilation of a Domain Specific Language for Dynamic Programming. In H. Haddad, editor, Proceedings of the 2006 ACM Symp. on Appl. Comp., 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. Giegerich, B. Voß, and M. Rehmsmeier. Abstract shapes of RNA. Nucleic Acids Research, 32(16):4843, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  13. R. Giegerich and C. H. zu Siederdissen. Semantics and ambiguity of stochastic rna family models. IEEE/ACM Transactions on Computational Biology and Bioinformatics, 8(2):499--516, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. I. L. Hofacker, W. Fontana, P. F. Stadler, L. S. Bonhoeffer, M. Tacker, and P. Schuster. Fast folding and comparison of RNA secondary structures. Monatshefte für Chemie, 125(2):167--188, 1994.Google ScholarGoogle ScholarCross RefCross Ref
  15. T. L. Morin. Monotonicity and the principle of optimality. Journal of Mathematical Analysis and Applications, 86:665--674, 1982.Google ScholarGoogle ScholarCross RefCross Ref
  16. E. P. Nawrocki, D. L. Kolbe, and S. R. Eddy. Infernal 1.0: inference of RNA alignments. Bioinformatics, 25(10):1335--1337, May 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. L. Pachter and B. Sturmfels. Algebraic Statistics for Computational Biology. Cambridge University Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Reeder and R. Giegerich. Design, implementation and evaluation of a practical pseudoknot folding algorithm based on thermodynamics. BMC Bioinformatics, 5:104, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  19. M. Rehmsmeier, P. Steffen, M. Höchsmann, and R. Giegerich. Fast and effective prediction of microRNA/target duplexes. RNA, 10:1507--1517, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  20. G. Sauthoff. Bellman's GAP: A 2nd Generation Language and System for Algebraic Dynamic Programming. PhD thesis, Bielefeld University, 2011.Google ScholarGoogle Scholar
  21. G. Sauthoff and R. Giegerich. Bellman's gap language report. Technical report, Bielefeld University, 2010.Google ScholarGoogle Scholar
  22. P. Steffen and R. Giegerich. Versatile and declarative dynamic programming using pair algebras. BMC Bioinformatics, 6(1):224, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  23. C. Theis, S. Janssen, and R. Giegerich. Prediction of RNA Secondary Structure Including Kissing Hairpin Motifs. In V. Moulton and M. Singh, editors, Algorithms in Bioinformatics, volume 6293 of Lecture Notes in Computer Science, chapter 5, pages 52--64. Springer Berlin / Heidelberg, Berlin, Heidelberg, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. Zuker and P. Stiegler. Optimal computer folding of large RNA sequences using thermodynamics and auxiliary information. Nucleic Acids Research, 9(1):133--148, 1981.\endthebibliographyGoogle ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Bellman's GAP: a declarative language for dynamic programming

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      PPDP '11: Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
      July 2011
      202 pages
      ISBN:9781450307765
      DOI:10.1145/2003476

      Copyright © 2011 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 July 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate230of486submissions,47%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader