Typed Component Algebras for Simulated Annealing and Markov-Chain Monte Carlo

arXiv:2302.028115.71 citationsh-index: 6Has Code
Predicted impact top 77% in SE · last 90 daysOriginality Incremental advance
AI Analysis

For researchers and practitioners using optimization or sampling, this work provides a modular, verifiable framework that reduces duplication and enables safe reuse of algorithmic components across diverse solvers.

The authors unify simulated annealing and MCMC variants into a typed algebra of five components, enabling modular improvements without rewriting solvers. The open-source package anneal outperforms a budget-matched CMA-ES restart heuristic on the CUTEst collection, reaching the best observed basin on more problems while providing convergence guarantees.

Simulated annealing (SA) and fixed-temperature Markov-chain Monte Carlo (MCMC) run the same Metropolis-Hastings kernel over a tempered objective, but the variants appear as separate monolithic drivers, so improving one ingredient requires rewriting and re-verifying a whole solver. The shared kernel becomes a typed algebra of five components (objective, cooling schedule, neighborhood, move kernel, and acceptance rule) whose four local composition laws the construction checks; a single Sampler<f64> step then runs any point of the algebra. A surrogate proposal, a fitted generalized-Langevin thermostat, a quasi-Monte Carlo polish, or a noise-aware acceptance rule is implemented once and becomes available to every classical, fast, generalized, Hamiltonian, or parallel-tempered driver that shares the interface. The same typing carries the correctness artifacts: SymPy-checked reductions of Generalized SA to its Boltzmann, fast, and Metropolis limits (the reductions surfaced a sign error that had stood in the visiting-distribution literature for three decades); a TLA+ specification model-checked for four safety and two liveness properties; and a three-channel finite-precision audit showing that fixing one channel of the acceptance path does not let float16 reproduce float64 basin selection. The implementation is the open-source Rust-and-Python package anneal, with an Array-API/DLPack device boundary and a portfolio optimizer whose only argument is a budget. On the CUTEst collection under a shared work-unit budget it reaches the best observed basin on more problems than a budget-matched CMA-ES restart heuristic, while carrying the almost-sure convergence and regret guarantees that heuristic lacks. Every reported number and figure regenerates from the reproducibility package with its pinned environment.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes