Anytime#

Read more in the user guide.

Protocol#

agent.BanditAgent

Base class for anytime stochastic bandit agents.

environment.StochasticBanditEnv

Stochastic multi-armed bandit environment.

interaction.BanditInteraction

Interaction loop for the anytime stochastic bandit setting.

Agents#

agents.IMED.IMED

Indexed Minimum Empirical Divergence, an asymptotically optimal bandit algorithm.

agents._Oracle.Oracle

Baseline that always plays the best arm.

agents._Random.Random

Uniform exploration: pull an arm uniformly at random every round.

Environments#

Factories building a StochasticBanditEnv from a vector of arm means.

envs.parametric.BernoulliBandit

Build a Bernoulli bandit from a vector of arm means.

envs.parametric.BinomialBandit

Build a Binomial bandit from a vector of per-trial success probabilities.

envs.parametric.GaussianBandit

Build a Gaussian bandit from vectors of means and variances.

envs.parametric.TruncatedGaussianBandit

Build a bandit whose arms are Gaussians truncated to [low, high].

envs.parametric.RandomBernoulliBandit

Draw a random Bernoulli instance with a prescribed optimality gap.

Reward distributions#

The individual arms the factories above are built from.

envs.distributions.Arm

One bandit arm, adapting a frozen scipy.stats distribution.

envs.distributions.Bernoulli

Bernoulli arm with success probability p, so rewards are 0 or 1.

envs.distributions.Binomial

Binomial arm: the number of successes in n trials of probability p.

envs.distributions.Gaussian

Gaussian arm of mean mu and variance var (unbounded rewards).

envs.distributions.Exponential

Exponential arm of rate p, hence mean 1 / p.

envs.distributions.TruncatedGaussian

Gaussian truncated to [low, high].

envs.distributions.TruncatedExponential

Exponential arm clipped at trunc, with mass piling on the boundary.

Renderers#

renderers.textrenderer.Textrenderer

Print each bandit round to stdout, one line per pull.