mod bayesian_mixing¶
- module bayesian_mixing¶
Automatic Bayesian chain-mixing driver.
The public surface deliberately has one tuning knob: a proposal budget. Chain count, incumbent protection, and proposal allocation are derived online from a Beta-Bernoulli posterior over global-best improvements.
Structs and Unions
- struct BayesianMixingResult¶
Result of an automatic Bayesian chain-mixing run.
- best_pos: Vec<f64>¶
Best-seen position across all chains.
- best_val: f64¶
Best-seen objective value across all chains.
- n_chains: usize¶
Number of chains inferred from the budget and dimension.
- proposal_counts: Vec<usize>¶
Proposal counts allocated to each chain.
Implementations
- impl BayesianMixingResult¶
Functions
- fn total_proposals(&self) -> usize¶
Total proposal calls made after chain initialisation.
- struct BayesianMixingSampler<S: Sampler<f64>>¶
Automatic Bayesian chain mixer around any inner sampler.
- sampler: S¶
Shared inner sampler.
- max_proposals: usize¶
Total proposal budget after chain initialisation.
Implementations
- impl<S: Sampler<f64>> BayesianMixingSampler<S>¶
Functions
- fn new(sampler: S, max_proposals: usize) -> Self¶
Creates a Bayesian mixer with a single user-visible budget.
- fn run(&self, seed: u64) -> BayesianMixingResult¶
Runs the online allocation loop.