Abstract
Dynamic programming is a strategy for solving optimisation problems. In this paper, we show how many problems that may be solved by dynamic programming are instances of the same abstract specification. This specification is phrased using the calculus of relations offered by topos theory. The main theorem underlying dynamic programming can then be proved by straightforward equational reasoning.The generic specification of dynamic programming makes use of higher-order operators on relations, akin to the fold operators found in functional programming languages. In the present context, a data type is modelled as an initial F-algebra, where F is an endofunctor on the topos under consideration. The mediating arrows from this initial F-algebra to other F-algebras are instances of fold – but only for total functions. For a regular category ε, it is possible to construct a category of relations Rel(ε). When a functor between regular categories is a so-called relator, it can be extended (in some canonical way) to a functor between the corresponding categories of relations. Applied to an endofunctor on a topos, this process of extending functors preserves initial algebras, and hence fold can be generalised from functions to relations.It is well-known that the use of dynamic programming is governed by the principle of optimality. Roughly, the principle of optimality says that an optimal solution is composed of optimal solutions to subproblems. In a first attempt, we formalise the principle of optimality as a distributivity condition. This distributivity condition is elegant, but difficult to check in practice. The difficulty arises because we consider minimum elements with respect to a preorder, and therefore minimum elements are not unique. Assuming that we are working in a Boolean topos, it can be proved that monotonicity implies distributivity, and this monotonicity condition is easy to verify in practice.
Publisher
Cambridge University Press (CUP)
Subject
Computer Science Applications,Mathematics (miscellaneous)
Reference66 articles.
1. Cockett R. (1991) Personal Communication.
2. Formal derivation of a pattern matching algorithm
3. Cockett R. and Fukushima T. (1991) Draft: About Charity, Dept. of Computer Science, University of Calgary, Calgary, Alberta, Canada. Available via anonymous ftp from cpsc.ucalgary.ca.
4. A 2-Categorical Approach to Geometric Morphisms I;Carboni;Cahiers de Topologie et Geometrie Differentielle Categoriques,1991
5. Program inversion
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Allegories of Symbolic Manipulations;2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS);2023-06-26
2. The Geometry of Syntax and Semantics for Directed File Transformations;2020 IEEE Security and Privacy Workshops (SPW);2020-05
3. Functional algorithm design;Science of Computer Programming;1996-05
4. Polytypic programming;Advanced Functional Programming;1996
5. Adding design strategies to fork algebras;Lecture Notes in Computer Science;1996