kumulant

knnDistanceRegistry

Built-in distance functions referenced by KnnContextualSpec.distance. Extend by passing a custom map when constructing the bandit programmatically.

materialize

Build a live BanditPolicy from its spec.

Arm and Posterior are themselves @Serializable sealed hierarchies, so ThompsonSamplingSpec consumes them directly without an intermediate factory hop.


fun MultiArmedSpec<*>.materialize(random: Random = Random.Default): MultiArmedBandit<Result>(source)

Build a live UnivariateBandit from its spec.


Build a live RouletteWheelBandit from its spec.


fun BoltzmannSpec.materialize(random: Random = Random.Default): BoltzmannBandit(source)

Build a live BoltzmannBandit from its spec.


fun Exp3Spec.materialize(random: Random = Random.Default): Exp3Bandit(source)

Build a live Exp3Bandit from its spec, resolving null eta / gamma to defaults.


Build a live TopTwoThompsonBandit from its spec.


fun UnivariateBanditSpec.materialize(random: Random = Random.Default): Bandit(source)

Dispatch any UnivariateBanditSpec to its concrete bandit.


fun RegressionContextualSpec.materialize(random: Random = Random.Default, concurrency: Concurrency = Concurrency.None): RegressionContextualBandit<out LinearRegressionResult>(source)

Build a live RegressionContextualBandit from its spec.


fun KnnContextualSpec.materialize(random: Random = Random.Default, distanceRegistry: Map<String, (VectorView, VectorView) -> Double> = knnDistanceRegistry): KnnContextualBandit(source)

Build a live KnnContextualBandit from its spec, resolving the distance function via distanceRegistry (defaults to knnDistanceRegistry).


fun ContextualBanditSpec.materialize(random: Random = Random.Default, concurrency: Concurrency = Concurrency.None): Bandit(source)

Dispatch any ContextualBanditSpec to its concrete bandit.