## Recursion Schemes for Dynamic Programming

Venue: | Mathematics of Program Construction, 8th International Conference, MPC 2006 |

Citations: | 2 - 0 self |

### BibTeX

@INPROCEEDINGS{Kabanov_recursionschemes,

author = {Jevgeni Kabanov and Varmo Vene},

title = {Recursion Schemes for Dynamic Programming},

booktitle = {Mathematics of Program Construction, 8th International Conference, MPC 2006},

year = {},

pages = {235--252},

publisher = {Springer}

}

### OpenURL

### Abstract

Dynamic programming is an algorithm design technique, which allows to improve efficiency by avoiding re-computation of identical subtasks. We present a new recursion combinator, dynamorphism,which captures the dynamic programming recursion pattern with memoization and identify some simple conditions when functions defined by structured general recursion can be redefined as a dynamorphism. The applicability of the new recursion combinator is demonstrated on classical dynamic programming algorithms: Fibonacci numbers, binary partitions, edit distance and longest common subsequence.

### Citations

2611 |
Dynamic Programming
- Bellman
- 1957
(Show Context)
Citation Context .... The application of dynamic programming requires that the problem would have: a) optimal substructure, and b) overlapping subproblems. Optimal substructure (also known as the principle of optimality =-=[1]-=-) in this context means that to solve the problem we can break it into subproblems, solve them recursively and then combine the results to solve the original problem. Overlapping here means that the s... |

298 | Functional programming with bananas, lenses, envelopes and barbed wire
- Meijer, Fokkinga, et al.
- 1991
(Show Context)
Citation Context ...the original problem is split to some subproblems, these are solved recursively and then combined to a final solution. The corresponding program can then straightforwardly expressed as a hylomorphism =-=[9]-=-, where the decomposition of a problem is represented by some functor coalgebra and the forming of a final result by an algebra of the same functor. However, if the problem description contains identi... |

215 |
An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...ation can often be avoided using dynamic programming techniques. In this paper we study dynamic programming in the setting of categorical approach to recursive datatypes and constructive algorithmics =-=[2,7,8,5]-=-. We introduce a new recursion combinator, which captures the dynamic programming recursion pattern. It is a generalization of the combinator for a course-of-value iteration, histomorphism [10, 12], a... |

105 |
Data structures and program transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...ation can often be avoided using dynamic programming techniques. In this paper we study dynamic programming in the setting of categorical approach to recursive datatypes and constructive algorithmics =-=[2,7,8,5]-=-. We introduce a new recursion combinator, which captures the dynamic programming recursion pattern. It is a generalization of the combinator for a course-of-value iteration, histomorphism [10, 12], a... |

97 |
and Order in Algorithmics
- Law
- 1992
(Show Context)
Citation Context ...ation can often be avoided using dynamic programming techniques. In this paper we study dynamic programming in the setting of categorical approach to recursive datatypes and constructive algorithmics =-=[2,7,8,5]-=-. We introduce a new recursion combinator, which captures the dynamic programming recursion pattern. It is a generalization of the combinator for a course-of-value iteration, histomorphism [10, 12], a... |

96 |
and Oege de Moor. Algebra of Programming
- Bird
- 1997
(Show Context)
Citation Context ...briefly review the basic notions of categorical approach to recursive datatypes and its application to program calculation. For a more comprehensive and excellent introduction of the subject see e.g. =-=[3, 6]-=-. 2.1 Preliminaries Throughout the work we assume that the category we’re dealing with is CPO category of (pointed) complete partial orders with a least element ⊥ (cpos)and continuous partial function... |

67 | A Categorical Programming Language
- Hagino
- 1987
(Show Context)
Citation Context |

27 | Calculating Functional Programs
- Gibbons
- 2002
(Show Context)
Citation Context ...briefly review the basic notions of categorical approach to recursive datatypes and its application to program calculation. For a more comprehensive and excellent introduction of the subject see e.g. =-=[3, 6]-=-. 2.1 Preliminaries Throughout the work we assume that the category we’re dealing with is CPO category of (pointed) complete partial orders with a least element ⊥ (cpos)and continuous partial function... |

21 | Recursion schemes from comonads
- Uustalu, Vene, et al.
- 2001
(Show Context)
Citation Context ...ide necessary information for deriving instead of guessing the corresponding coalgebra. This is an important area of further work. It is known that histomorphism is an instance of comonadic recursion =-=[11]-=- and that the latter can be generalized in a recursive coalgebra setting [4]. What is the exact relationship between dynamorphisms and comonadic recursive coalgebras is another interesting topic to st... |

13 | Primitive (co)recursion and course-of-value (co)iteration, categorically
- Uustalu, Vene
- 1999
(Show Context)
Citation Context ...s [2,7,8,5]. We introduce a new recursion combinator, which captures the dynamic programming recursion pattern. It is a generalization of the combinator for a course-of-value iteration, histomorphism =-=[10, 12]-=-, and uses annotated tree-like intermediate structure to tabulate previously computed values, hence avoiding re-computation on identical subarguments. Like hylomorphism, it is parametrized by a coalge... |

9 | Recursive coalgebras from comonads
- Capretta, Uustalu, et al.
(Show Context)
Citation Context ...coalgebra. This is an important area of further work. It is known that histomorphism is an instance of comonadic recursion [11] and that the latter can be generalized in a recursive coalgebra setting =-=[4]-=-. What is the exact relationship between dynamorphisms and comonadic recursive coalgebras is another interesting topic to study. Acknowledgments. We are grateful to our anonymous referees for their co... |

9 |
Categorical programming with inductive and coinductive types
- Vene
- 2000
(Show Context)
Citation Context ...s [2,7,8,5]. We introduce a new recursion combinator, which captures the dynamic programming recursion pattern. It is a generalization of the combinator for a course-of-value iteration, histomorphism =-=[10, 12]-=-, and uses annotated tree-like intermediate structure to tabulate previously computed values, hence avoiding re-computation on identical subarguments. Like hylomorphism, it is parametrized by a coalge... |