Histo− and Dynamorphisms Revisited

Dynamic programming algorithms embody a widely used programming technique that optimizes recursively defined equations that have repeating subproblems. The standard solution uses arrays to share common results between successive steps, and while effective, this fails to exploit the structural proper...

Full description

Bibliographic Details
Main Authors: Hinze, R, Wu, N
Format: Conference item
Published: ACM 2013
_version_ 1797065125043109888
author Hinze, R
Wu, N
author_facet Hinze, R
Wu, N
author_sort Hinze, R
collection OXFORD
description Dynamic programming algorithms embody a widely used programming technique that optimizes recursively defined equations that have repeating subproblems. The standard solution uses arrays to share common results between successive steps, and while effective, this fails to exploit the structural properties present in these problems. Histomorphisms and dynamorphisms have been introduced to expresses such algorithms in terms of structured recursion schemes that leverage this structure. In this paper, we revisit and relate these schemes and show how they can be expressed in terms of recursion schemes from comonads, as well as from recursive coalgebras. Our constructions rely on properties of bialgebras and dicoalgebras, and we are careful to consider optimizations and efficiency concerns. Throughout the paper we illustrate these techniques through several worked-out examples discussed in a tutorial style, and show how a recursive specification can be expressed both as an array-based algorithm as well as one that uses recursion schemes.
first_indexed 2024-03-06T21:24:10Z
format Conference item
id oxford-uuid:42838128-d046-4128-8e84-c3b29a05c0cd
institution University of Oxford
last_indexed 2024-03-06T21:24:10Z
publishDate 2013
publisher ACM
record_format dspace
spelling oxford-uuid:42838128-d046-4128-8e84-c3b29a05c0cd2022-03-26T14:49:54ZHisto− and Dynamorphisms RevisitedConference itemhttp://purl.org/coar/resource_type/c_5794uuid:42838128-d046-4128-8e84-c3b29a05c0cdDepartment of Computer ScienceACM2013Hinze, RWu, NDynamic programming algorithms embody a widely used programming technique that optimizes recursively defined equations that have repeating subproblems. The standard solution uses arrays to share common results between successive steps, and while effective, this fails to exploit the structural properties present in these problems. Histomorphisms and dynamorphisms have been introduced to expresses such algorithms in terms of structured recursion schemes that leverage this structure. In this paper, we revisit and relate these schemes and show how they can be expressed in terms of recursion schemes from comonads, as well as from recursive coalgebras. Our constructions rely on properties of bialgebras and dicoalgebras, and we are careful to consider optimizations and efficiency concerns. Throughout the paper we illustrate these techniques through several worked-out examples discussed in a tutorial style, and show how a recursive specification can be expressed both as an array-based algorithm as well as one that uses recursion schemes.
spellingShingle Hinze, R
Wu, N
Histo− and Dynamorphisms Revisited
title Histo− and Dynamorphisms Revisited
title_full Histo− and Dynamorphisms Revisited
title_fullStr Histo− and Dynamorphisms Revisited
title_full_unstemmed Histo− and Dynamorphisms Revisited
title_short Histo− and Dynamorphisms Revisited
title_sort histo and dynamorphisms revisited
work_keys_str_mv AT hinzer histoanddynamorphismsrevisited
AT wun histoanddynamorphismsrevisited