Skip to main content

Algorithm Design with the Selection Monad

Johannes Hartmann and Jeremy Gibbons

Abstract

The selection monad has proven useful for modelling exhaustive search algorithms. It is well studied in the area of game theory as an elegant way of expressing algorithms that calculate optimal plays for sequential games with perfect information; composition of moves is modeled as a ‘product’ of selection functions. This paper aims to expand the application of the selection monad to other classes of algorithms. The structure used to describe exhaustive search problems can easily be applied to greedy algorithms; with some changes to the product function, the behaviour of the selection monad can be changed from an exhaustive search behaviour to a greedy one. This enables an algorithm design framework in which the behaviour of the algorithm can be exchanged modularly by using different product functions.

Book Title
Trends in Functional Programming
Editor
Wouter Swierstra and Nicolas Wu
Pages
126−143
Series
LNCS
Volume
13401
Year
2022