Skip to main content

Module smc

Module smc 

Source
Expand description

Tempered SMC over the Boltzmann posterior, built on fugue’s SMC engine

The old EvolutionarySMC hand-rolled the whole tempering loop (linear β ladder, weight normalization, ESS, systematic resampling, MH sweeps) and carried a weight-model bug: it reweighted by dβ · f(x) on top of a β·f(x) factor, double-counting β. This rebuild deletes all of it. The driver is [fugue::adaptive_smc_with_kernel] run against the model’s untempered target (factor(f), see EvolutionModel::smc_model): fugue supplies β by likelihood-tempering with an adaptive ESS-driven ladder, applies it exactly once, and returns an unbiased log-evidence estimate for free.

Crossover is fugue’s [CrossoverKernel] — a population-coupled Metropolis move on the product target — driven by an address mask supplied here (genome knowledge stays downstream; trace-space mechanics live upstream).

Structs§

CrossoverConfig
Configuration of the crossover population kernel.
EvoSmcConfig
Configuration for EvolutionSMC::run.
EvolutionPosterior
The result of a tempered-SMC evolution run: fugue particles (traces + normalized weights) approximating the Boltzmann posterior π ∝ p·exp(f), plus the log-evidence estimate.
EvolutionSMC
The tempered-SMC evolution driver.

Functions§

score_genome
Score a genome’s canonical trace under an arbitrary model — convenience used by readouts and tests.