Smart Choices and the Selection Monad

07/17/2020
by   Martín Abadi, et al.
0

Describing systems in terms of choices and their resulting costs and rewards offers the promise of freeing algorithm designers and programmers from specifying how those choices should be made; in implementations, the choices can be realized by optimization techniques and, increasingly, by machine learning methods. We study this approach from a programming-language perspective. We define two small languages that support decision-making abstractions: one with choices and rewards, and the other additionally with probabilities. We give both operational and denotational semantics. In the case of the second language we consider three denotational semantics, with varying degrees of correlation between possible program values and expected rewards. The operational semantics combine the usual semantics of standard constructs with optimization over spaces of possible execution strategies. The denotational semantics, which are compositional and can also be viewed as an implementation by translation to a simpler language, rely on the selection monad, to handle choice, combined with an auxiliary monad, to handle other effects such as rewards or probability. We establish adequacy theorems that the two semantics coincide in all cases. We also prove full abstraction at ground types, with varying notions of observation in the probabilistic case corresponding to the various degrees of correlation. We present axioms for choice combined with rewards and probability, establishing completeness at ground types for the case of rewards without probability.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/11/2019

A Simple Differentiable Programming Language

Automatic differentiation plays a prominent role in scientific computing...
research
05/03/2020

Certified Semantics for Relational Programming

We present a formal study of semantics for the relational programming la...
research
03/29/2022

On Reinforcement Learning, Effect Handlers, and the State Monad

We study the algebraic effects and handlers as a way to support decision...
research
11/02/2018

Probabilistic Programming with Densities in SlicStan: Efficient, Flexible and Deterministic

Stan is a probabilistic programming language that has been increasingly ...
research
01/27/2021

Compositional Semantics for Probabilistic Programs with Exact Conditioning

We define a probabilistic programming language for Gaussian random varia...
research
07/30/2018

A Metalanguage for Guarded Iteration

Notions of guardedness serve to delineate admissible recursive definitio...
research
03/22/2020

A Trustful Monad for Axiomatic Reasoning with Probability and Nondeterminism

The algebraic properties of the combination of probabilistic choice and ...

Please sign up or login with your details

Forgot password? Click here to reset