Algebraic Dynamic Programming

  • Authors:
  • Robert Giegerich;Carsten Meyer

  • Affiliations:
  • -;-

  • Venue:
  • AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

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