Data structures and algorithms 3: multi-dimensional searching and computational geometry
Data structures and algorithms 3: multi-dimensional searching and computational geometry
Algorithmics: theory & practice
Algorithmics: theory & practice
Algorithms (2nd ed.)
Introduction to algorithms
Algebra of programming
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
Dynamic programming: a different perspective
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Dynamic programming algorithms for RNA secondary structure prediction with pseudoknots
Discrete Applied Mathematics - Special volume on combinatorial molecular biology
Dynamic Programming
Data Structures and Algorithms
Data Structures and Algorithms
Code Selection Techniques: Pattern Matching, Tree Parsing, and Inversion of Derivors
ESOP '88 Proceedings of the 2nd European Symposium on Programming
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
From Dynamic Programming to Greedy Algorithms
Proceedings of the IFIP TC2/WG 2.1 State-of-the-Art Report on Formal Program Development
Implementing Algebraic Dynamic Programming in the Functional and the Imperative Programming Paradigm
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Dynamic Programming
Local Similarity in RNA Secondary Structures
CSB '03 Proceedings of the IEEE Computer Society Conference on Bioinformatics
Calculating PSSM probabilities with lazy dynamic programming
Journal of Functional Programming
Challenges in the compilation of a domain specific language for dynamic programming
Proceedings of the 2006 ACM symposium on Applied computing
A graphical programming system for molecular motif search
Proceedings of the 5th international conference on Generative programming and component engineering
Table design in dynamic programming
Information and Computation
QoS allocation algorithms for publish-subscribe information space middleware
Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware
A Short Cut to Optimal Sequences
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Analyzing ambiguity of context-free grammars
CIAA'07 Proceedings of the 12th international conference on Implementation and application of automata
Prediction of RNA secondary structure including kissing hairpin motifs
WABI'10 Proceedings of the 10th international conference on Algorithms in bioinformatics
GPU parallelization of algebraic dynamic programming
PPAM'09 Proceedings of the 8th international conference on Parallel processing and applied mathematics: Part II
Semantics and Ambiguity of Stochastic RNA Family Models
IEEE/ACM Transactions on Computational Biology and Bioinformatics (TCBB)
Yield grammar analysis in the Bellman's GAP compiler
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Bellman's GAP: a declarative language for dynamic programming
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Sneaking around concatMap: efficient combinators for dynamic programming
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Forest alignment with affine gaps and anchors, applied in RNA structure comparison
Theoretical Computer Science
Hi-index | 0.00 |
Dynamic programming is a classical programming technique, applicable in a wide variety of domains such as stochastic systems analysis, operations research, combinatorics of discrete structures, flow problems, parsing of ambiguous languages, and biosequence analysis. Little methodology has hitherto been available to guide the design of such algorithms. The matrix recurrences that typically describe a dynamic programming algorithm are difficult to construct, error-prone to implement, and, in nontrivial applications, almost impossible to debug completely.This article introduces a discipline designed to alleviate this problem. We describe an algebraic style of dynamic programming over sequence data. We define its formal framework, based on a combination of grammars and algebras, and including a formalization of Bellman's Principle. We suggest a language used for algorithm design on a convenient level of abstraction. We outline three ways of implementing this language, including an embedding in a lazy functional language. The workings of the new method are illustrated by a series of examples drawn from diverse areas of computer science.