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.
Build a live BoltzmannBandit from its spec.
Build a live Exp3Bandit from its spec, resolving null eta / gamma to defaults.
fun <R : Result> TopTwoThompsonSpec<R>.materialize(random: Random = Random.Default): TopTwoThompsonBandit<R>(source)
Build a live TopTwoThompsonBandit from its spec.
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.
Build a live KnnContextualBandit from its spec.
fun ContextualBanditSpec.materialize(random: Random = Random.Default, concurrency: Concurrency = Concurrency.None): Bandit(source)
Dispatch any ContextualBanditSpec to its concrete bandit.