Affiliation:
1. Imperial College London, UK
Abstract
Weighted search is an essential component of many fundamental and useful algorithms. Despite this, it is relatively under explored as a computational effect, receiving not nearly as much attention as either depth- or breadth-first search. This paper explores the algebraic underpinning of weighted search, and demonstrates how to implement it as a monad transformer.
The development first explores breadth-first search, which can be expressed as a polynomial over semirings. These polynomials are generalised to the free semimodule monad to capture a wide range of applications, including probability monads, polynomial monads, and monads for weighted search. Finally, a monad transformer based on the free semimodule monad is introduced. Applying optimisations to this type yields an implementation of pairing heaps, which is then used to implement Dijkstra's algorithm and efficient probabilistic sampling. The construction is formalised in Cubical Agda and implemented in Haskell.
Funder
Engineering and Physical Sciences Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference54 articles.
1. Circular programs and self-referential structures
2. Thorsten Altenkirch Thomas Anberrée and Nuo Li. 2011. Definable Quotients in Type Theory. http://www.cs.nott.ac.uk/~psztxa/publ/defquotients.pdf Thorsten Altenkirch Thomas Anberrée and Nuo Li. 2011. Definable Quotients in Type Theory. http://www.cs.nott.ac.uk/~psztxa/publ/defquotients.pdf
3. Equationally complete classes of commutative monoids with monus
4. Free Applicative Functors
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Monadic Framework for Name Resolution in Multi-phased Type Checkers;Proceedings of the 22nd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences;2023-10-22
2. Modular Models of Monoids with Operations;Proceedings of the ACM on Programming Languages;2023-08-30
3. Breadth-First Traversal via Staging;Lecture Notes in Computer Science;2022
4. Structured Handling of Scoped Effects;Programming Languages and Systems;2022