Results 1  10
of
14
P.: A discipline of dynamic programming over sequence data
 Science of Computer Programming
, 2004
"... Abstract. 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 ..."
Abstract

Cited by 27 (12 self)
 Add to MetaCart
Abstract. 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, errorprone 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
Code generation based on formal BURS theory and heuristic search
 Acta Informatica
, 1997
"... BURS theory provides a powerful mechanism to efficiently generate pattern matches in a given expression tree. BURS, which stands for bottomup rewrite system, is based on term rewrite systems, to which costs are added. We formalise the
underlying theory, and derive an algorithm that computes all pat ..."
Abstract

Cited by 17 (2 self)
 Add to MetaCart
BURS theory provides a powerful mechanism to efficiently generate pattern matches in a given expression tree. BURS, which stands for bottomup rewrite system, is based on term rewrite systems, to which costs are added. We formalise the
underlying theory, and derive an algorithm that computes all pattern matches. This algorithm terminates if the term rewrite system is finite. We couple this algorithm with
the wellknown search algorithm A* that carries out pattern selection. The search algorithm is directed by a cost heuristic that estimates the minimum cost of code that
has yet to be generated. The advantage of using a search algorithm is that we need to compute only those costs that may be part of an optimal rewrite sequence (and not the costs of all possible rewrite sequences as in dynamic programming). A system that implements the algorithms presented in this work has been built.
Algebraic dynamic programming
 Algebraic Methodology And Software Technology, 9th International Conference, AMAST 2002
, 2002
"... 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 avai ..."
Abstract

Cited by 9 (5 self)
 Add to MetaCart
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, errorprone 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.
Implementing algebraic dynamic programming in the functional and the imperative paradigm
 In E.A. Boiten and B. Möller, editors, Mathematics of Program Construction
, 2002
"... Abstract. Algebraic dynamic programming is a new method for developing and reasoning about dynamic programming algorithms. In this approach, socalled yield grammars and evaluation algebras constitute abstract specifications of dynamic programming algorithms. We describe how this theory is put to pr ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Abstract. Algebraic dynamic programming is a new method for developing and reasoning about dynamic programming algorithms. In this approach, socalled yield grammars and evaluation algebras constitute abstract specifications of dynamic programming algorithms. We describe how this theory is put to practice by providing a specification language that can both be embedded in a lazy functional language, and translated into an imperative language. Parts of the analysis required for the latter translation also gives rise to sourcetosource transformations that improve the asymptotic efficiency of the functional implementation. The multiparadigm system resulting from this approach provides increased programming productivity and effective validation. 1
Towards a discipline of dynamic programming
, 2002
"... frobertcmeyerpsteffengtechfakunibielefeldde 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 ow problems parsing ambiguous languages or biosequence an ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
frobertcmeyerpsteffengtechfakunibielefeldde 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 ow problems parsing ambiguous languages or biosequence analysis Yet heretofore no methodology was available guiding the design of such algorithms The matrix recurrences that typically describe a dynamic programming algorithm are dicult to construct error prone to implement and almost impossible to debug This article introduces an algebraic style of dynamic programming over sequence data We de ne its formal framework including a formalization of Bellmans principle We suggest a language for algorithm design on a convenient level of abstraction We outline three ways of implementation including an embedding in a lazy functional language The workings of the new method are illustrated by a series of examples from diverse areas of computer science The power and scope of dynamic programming Dynamic programming a world without rules Dynamic programming DP is one of the classic programming paradigms in troduced even before the term Computer Science was rmly established When applicable DP often allows to solve combinatorial optimization problems over a search space of exponential size in polynomial space and time Bellmans Prin ciple of Optimality Bel belongs to the core knowledge we expect from every
Ambiguity, Valuedness and Costs
, 1992
"... This survey reports results on the ambiguity of finite tree automata, the valuedness of bottomup finite state tree transducers and boundedness of cost automata. ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
This survey reports results on the ambiguity of finite tree automata, the valuedness of bottomup finite state tree transducers and boundedness of cost automata.
Code Generation = A* + BURS
 Compiler Construction
, 1996
"... A system called BURS that is based on term rewrite systems and a search algorithm A* are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is derived fro ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A system called BURS that is based on term rewrite systems and a search algorithm A* are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is derived from the term rewrite system to direct the search. The advantage of using a search algorithm is that we need to compute only those costs that may be part of an optimal rewrite sequence.
Algebraic Dynamic Programming Algebraic Dynamic Programming
"... 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 avai ..."
Abstract
 Add to MetaCart
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, errorprone 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 describedonaconvenientlevelofabstraction.
Code Generation = A+BURS
"... Abstract. A system called BURS that is based on term rewrite systems and a search algorithm A are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is de ..."
Abstract
 Add to MetaCart
Abstract. A system called BURS that is based on term rewrite systems and a search algorithm A are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is derived from the term rewrite system to direct the search. The advantage of using a search algorithm is that we need to compute only those costs that may be part of an optimal rewrite sequence. Key words: compiler generators, code generation, term rewrite systems, search algorithms, formal techniques Compiler building is a timeconsuming and errorprone activity. Building the frontend (i.e. scanner, parser and intermediatecode generator) is straightforward—the theory is well established, and there is ample tool support. The main problem lies with the backend, namely the code generator and optimiser—there is little theory and even less tool support. Generating a code generator from an abstract specification, also called automatic code generation, remains a very difficult problem.