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§
- Crossover
Config - Configuration of the crossover population kernel.
- EvoSmc
Config - Configuration for
EvolutionSMC::run. - Evolution
Posterior - 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.