Source-linked AI summary
ODAT-SE: A modular and parallel framework for simulation-based inverse problems
Tatsumi Aoyama, Kazuyoshi Yoshimi, Yuichi Motoyama, Akito Nakano, Hengyu Li, Yusuke Konishi, Takeo Hoshi
TL;DR
Simulation-based inverse problems often require uncertainty and competing-solution analysis beyond a best fit, even when forward evaluations are costly. ODAT-SE integrates interchangeable search and sampling methods with simulation solvers; its examples validate Bayesian estimates and recover correlated structural solutions while revealing incomplete convergence of mode weights.
Problem
Costly forward simulations and correlated or nearly degenerate solutions make inverse analysis require more than a single best-fit parameter set.
Source: §1 · pp. 3–4Method
ODAT-SE integrates optimization and sampling algorithms with application-specific solvers through a modular interface for simulation-based inverse analysis.
Source: §1 · p. 5, §2.1 · p. 5, §3.1 · p. 9Results
The examples validate Bayesian estimates against closed-form results, benchmark tensor-train optimization, and recover correlated diffraction solutions with a noise scale near the imposed perturbation, while mode weights remain unconverged.
Source: §5 · p. 27Takeaways & Limitations
Independent solver packages, templates, and worked examples support using ODAT-SE as a general platform for inverse-problem analysis.
Source: §3.6 · p. 19The SciPy optimizers in minsearch and global_search cannot be restarted.
Source: §5 · p. 27
Abstract
from arXiv · showhide
Open Data Analysis Tool for Science and Engineering (ODAT-SE) is an open-source Python framework for inverse problems that are solved by repeated forward simulations. It succeeds 2DMAT, which was developed for surface-structure analysis with quantum-beam diffraction and has since been applied to other fields. In version 3, the search algorithms were separated from the application-specific solvers, which became independent packages, and the software was renamed; this paper describes the current version 4.0. The framework connects optimization and sampling algorithms to solvers through a common interface for parameter mapping, constraints, and objective evaluation, so that an existing simulation code can be used with any of the algorithms. Relative to the previously published 2DMAT, it provides two-level MPI parallelism, which distributes candidate evaluations over processes and each evaluation over a parallel solver, checkpoint and continuation facilities, random search, global optimizers from SciPy, tensor-train optimization, and a Bayesian workflow that estimates partition-function ratios, model evidence, effective noise levels, and marginal posterior distributions. We validate the Bayesian workflow against closed-form results for a linear regression, benchmark tensor-train optimization on continuous, binary, and mixed-integer problems, and verify the two-level parallelization by the same optimum for all process decompositions. Taking up the positron-diffraction example of the 2DMAT paper, the workflow identifies the correlated structural solutions and an effective noise scale close to the imposed perturbation, while exposing incomplete convergence of symmetry-related mode weights. Solver packages, templates, and a gallery of examples support the use of the framework as a general platform for inverse-problem analysis.
PROGRAM SUMMARY
ODAT-SE is a Python framework for inverse problems that separates search algorithms from simulation solvers through a common interface. It combines optimization and sampling methods with parallel, restartable execution and Bayesian analysis.
- ODAT-SE connects search algorithms to direct-problem solvers through a common interface for parameter mapping, constraints, and objective evaluation.The framework targets inference from measured data using repeated, often expensive forward simulations.Source: PROGRAM SUMMARY · p. 2
- Its methods include local and global optimization, random and tensor-train search, and replica-exchange and population-annealing Monte Carlo.The Bayesian workflow estimates partition-function ratios, model evidence, effective noise levels, and marginal posterior distributions.Source: PROGRAM SUMMARY · p. 3
- Two-level MPI distributes candidate evaluations across processes and can run each evaluation with a parallel solver; supported algorithms can be checkpointed and resumed.Random search, SciPy global optimizers, and tensor-train optimization are among the additions described relative to 2DMAT.Source: PROGRAM SUMMARY · pp. 2–3
- Some methods cannot be restarted, and solver-level parallelism requires a compatible solver implementation.Nonlinear constraints require solver-level treatment.Source: PROGRAM SUMMARY · p. 3
1. Introduction
Simulation-based inverse problems require more than a best fit: costly forward models, correlated parameters, and competing minima motivate efficient search and uncertainty analysis. ODAT-SE presents a modular framework that integrates optimization and sampling with simulation codes, including MPI-parallel solvers.
- Forward simulations can dominate computational cost, while inverse analyses may need parameter uncertainties, correlations, and competing solutions beyond a single optimum.Diffraction objectives can have nearly degenerate minima and correlated parameter directions.Source: §1 · pp. 3–4
- Related packages address sampling, black-box optimization, or domain-specific fitting, while ODAT-SE focuses on interchangeable methods linked to simulation codes, including MPI-parallel solvers.Source: §1 · p. 4
- Version 4.0 integrates a modular solver architecture, two-level parallelism with selected restart support, additional optimization methods, and Bayesian post-processing.The workflow connects Monte Carlo normalization estimates to evidence-based noise estimation and posterior analysis.Source: §1 · pp. 4–5
- The paper evaluates the developments with controlled benchmarks and synthetic diffraction data, with supporting examples and normalization details in appendices.Source: §1 · p. 5
2. Overview of ODAT-SE
ODAT-SE lets users pair search algorithms and direct-problem solvers independently, with an adapter handling their interface. The overview covers available methods, installation, and a worked calculation.
2.1. What ODAT-SE provides
- ODAT-SE applies a selected search algorithm to a direct-problem solver to minimize an objective or sample parameter distributions.The core includes analytical test functions and a wrapper for user Python functions; separate solver packages and templates support other simulation codes.Source: §2.1 · pp. 5–6
- Users can run calculations through the odatse command or drive the same components from a Python script.A manual, API reference, and Gallery of worked examples accompany the software.Source: §2.1 · pp. 5–6
2.2. Installation
- ODAT-SE requires Python 3.9 or later; SciPy, mpi4py, PHYSBO, and tqdm are optional dependencies for particular features.The package is installed with pip, while solver packages and their external simulators are installed separately.Source: §2.2 · p. 6
2.3. Quick guide
- A TOML input file sets shared, solver, and algorithm options, and the worked Nelder–Mead example reaches the Himmelblau minimum at (3, 2) after 79 objective evaluations.MPI-capable algorithms are launched through an MPI launcher.Source: §2.3 · pp. 6–7
3. New features
ODAT-SE v4.0 builds on 2DMAT v2 with a modular algorithm–solver architecture and new parallel, search, Bayesian, and ecosystem capabilities. Its additions support reusable simulation-based inverse analysis while preserving important operational and inference boundaries.
3. New features
- Version 4.0 adds two-level MPI, SciPy global optimization, tensor-train optimization, expanded local methods, collective error handling, and command-line post-processing tools.Earlier releases separated solver packages and added checkpointing, Bayesian post-processing, and random search.Source: §3 · pp. 7–8
3.1. Modular framework
- Algorithm, Runner, and Solver separate search, parameter constraints and mappings, and application-specific objective evaluation, so different algorithms can use the same solver interface.Runner maps search coordinates x to solver coordinates y when needed and rejects constraint-violating points.Source: §3.1 · pp. 9–10
3.2. Two-level MPI parallelization
- Two-level MPI distributes candidate evaluations across algorithm ranks and each candidate’s solver work across a process group, when the solver explicitly supports that distribution.Solver collectives must use the group communicator; the framework does not automatically parallelize serial or external programs.Source: §3.2 · pp. 10–11
3.3. Checkpoint, restart, and error handling
- Checkpointing saves algorithm state and random-number generators for resume or continuation, but solver settings must remain unchanged and external-simulator work after the last checkpoint may be repeated.Coordinated error handling terminates the job after a rank exception, but cannot recover failures inside collective operations.Source: §3.3 · pp. 12–13
3.4. New and extended search algorithms
- The eight algorithm modules span optimization, Monte Carlo sampling, and feedback-free random search; new random, global, and tensor-train methods broaden the available search strategies.TTOpt discretizes continuous parameters and can represent binary variables, but does not guarantee global optimality or automatically enforce nonlinear constraints.Source: §3.4 · pp. 13–15
- Replica exchange and population annealing estimate partition-function ratios, while population-annealing participation ratios diagnose weight concentration but do not establish convergence between separated modes.The ratios can be referenced to β = 0 in population annealing, matching the Bayesian workflow’s prior reference.Source: §3.4 · pp. 15–16
3.5. Bayesian inference workflow
- The Bayesian workflow uses population annealing and a Gaussian-error model to estimate effective noise from the evidence maximum and obtain parameter marginals conditional on that estimate.These marginals do not marginalize uncertainty in β or distinguish measurement noise from model discrepancy; the prior is uniform in search coordinates.Source: §3.5 · pp. 16–17
3.6. Ecosystem: solver packages, documentation, and Gallery
- ODAT-SE’s general-platform ecosystem separates application-specific solvers into independent packages and provides documentation, solver templates, and Gallery examples.The packages include diffraction solvers and examples from other materials-science applications.Source: §3.6 · p. 19
4. Applications
The applications validate ODAT-SE’s Bayesian workflow, tensor-train search, and two-level MPI execution on controlled benchmarks, then apply Bayesian analysis to synthetic TRHEPD data. Together, they test numerical agreement, search behavior, parallel correctness, and recovery of structural modes while identifying convergence limits.
4. Applications
- The applications use increasingly complex examples: closed-form linear regression, analytical-function benchmarks, a distributed singular-value solver, and synthetic TRHEPD structure analysis.The regression uses six noisy points and a uniform prior on [−20, 20]; the TRHEPD setup analyzes 70 normalized intensities with a working independent-Gaussian likelihood despite multiplicative noise and normalization-induced correlations.Source: §4 · p. 20, §4.1 · p. 20, §4.3 · p. 23
4.1. Noise-level estimation by model evidence
- The 1000-replica regression run’s partition-function ratio agreed with the analytical curve within 0.06, and its evidence curves coincided at figure scale.The evidence maximum gave σ*=0.147, close to the residual standard error of 0.152; a 10-replica tutorial run instead showed a 0.4–0.7 ratio offset from incomplete equilibration.Source: §4.1 · pp. 20–21, Figure 5 · p. 22
4.2. Tensor-train optimization
- With a fixed evaluation budget, tensor-train search reached the nearest attainable grid point for Ackley, Exponential, Himmelblau, Qing, Rastrigin, and Schwefel, while four other named functions were not converged.The benchmark illustrates representation and search capabilities, not a budget-matched ranking against other optimizers.Source: §4.2 · p. 22, Table 3 · p. 23
4.3. Two-level parallel execution
- All fifteen tested process decompositions returned the same minimum, s=15 with f=500.1006; with 16 processes, mixed splits took 19.2–20.8 seconds versus 22.6 seconds for 16 × 1 and 41.8 seconds for 1 × 16.The best split depends on workload because controller broadcasts and uneven task counts affect scaling.Source: §4.3 · pp. 23–24
4.4. Bayesian structure analysis using simulated TRHEPD data
- The TRHEPD workflow selected β*=2.5 × 10^5 and estimated σ*=1.41 × 10^-3, close to the imposed perturbation, while recovering two exchange-related structural modes.The two modes’ sampled weights were unequal, indicating incomplete global equilibration.Source: §4.4 · pp. 25–26
- Within the selected TRHEPD mode, the posterior is elongated along z1−z2=const, and the reported coordinate spreads agree between runs within 0.003 Å.The widths describe a local mode conditional on β* and the chosen likelihood; global mode weights and absolute evidence require further sampling tests.Source: §4.4 · p. 26
5. Summary
ODAT-SE separates search and sampling algorithms from application-specific solvers and integrates additional optimization, parallelization, and Bayesian analysis capabilities. Its examples validate those features while showing that some optimizer restart and sampling-convergence limitations remain.
5. Summary
- The reorganization separates search and sampling algorithms from independently maintained application-specific solvers, and MPL-2.0 eases use of the framework as a library.Added capabilities include checkpoint and restart support, random search, SciPy global optimizers, tensor-train optimization, and a Bayesian workflow from partition-function estimates to posterior distributions.Source: §5 · pp. 26–27
- Across the examples, ODAT-SE validates Bayesian estimates against closed-form results, reaches grid resolution on most tensor-train test functions, returns the same parallel optimum across decompositions, and recovers correlated TRHEPD modes with noise close to the imposed perturbation.The TRHEPD mode weights remain unequal, indicating further sampling is needed for global convergence.Source: §5 · p. 27
- The SciPy optimizers in minsearch and global_search cannot be restarted.The paper also identifies adaptive surrogate models and connections to additional simulation codes as future work.Source: §5 · p. 27
Appendix A.1. Finite reference temperature
For samplers referenced to a finite starting inverse temperature, the absolute evidence needs a reference-temperature correction. This correction does not affect the evidence maximum’s location, but it matters for absolute evidence and model comparisons.
Appendix A.1. Finite reference temperature
- The partition-function ratios from population annealing without a β=0 start and from replica exchange are referenced to the schedule’s first inverse temperature, βref.For replica exchange, the reference is the ladder’s lowest inverse temperature.Source: Appendix A.1 · p. 28
- The absolute evidence requires an additional constant when the sampler uses a finite reference temperature.For a uniform prior with βref=0, this term vanishes.Source: Appendix A.1 · p. 29
- Because the correction is independent of β, it leaves the evidence maximum unchanged but affects absolute evidence and comparisons between models.For discrete-mesh Monte Carlo with a uniform prior, the integrals become sums and VΩ is the number of admissible mesh points.Source: Appendix A.1 · p. 29
Appendix A.2. Partition function of the linear regression
The appendix derives the partition function for the one-parameter linear regression used to check the Bayesian workflow. With a uniform prior, it expresses the objective as a quadratic around the least-squares estimate and gives the prior-volume normalization.
Appendix A.2. Partition function of the linear regression
- For y=ax, the least-squares estimate is ba=Σxiyi/S, where S is the sum of squared x values, and the residual minimum is f*=f(ba).The supplied regression has six data points.Source: Appendix A.2 · p. 29
- The objective decomposes as f(a)=f*+S(a−ba)^2, a quadratic centered on the least-squares estimate.The expression is stated for a uniform prior on [a−, a+] and β>0.Source: Appendix A.2 · p. 29
- At β=0, the partition function is the prior volume, Z0=VΩ=a+−a−.For the archived data, the prior volume is 40.Source: Appendix A.2 · p. 29
Appendix B.1. Fixed-surrogate integration
The appendix demonstrates that a learned Gaussian-process predictor can serve as an ODAT-SE solver through the same interface as a physical simulation. In this fixed-surrogate test, minsearch finds a point near Himmelblau’s minimum, but sampling does not automatically propagate the predictor’s uncertainty.
Appendix B.1. Fixed-surrogate integration
- A Gaussian-process regressor trained on 500 uniformly distributed Himmelblau evaluations was wrapped as an ODAT-SE solver whose evaluate method returns the predicted mean.The training values included Gaussian noise with standard deviation 0.01, and the training set remained fixed during optimization.Source: Appendix B.1 · pp. 29–30
- At (3.006, 1.999), minsearch on the surrogate yields an original-function value of 1 × 10−3, near the (3, 2) minimum; a rerun gave (3.002, 1.996).The surrogate value at the first optimized point was −2 × 10−3, slightly below the true minimum of 0.Source: Appendix B.1 · p. 30
- On 500 held-out points, the surrogate’s mean squared error was 4×10−5 and its root-mean-square error was about 7 × 10−3 in original function units.Signed error stayed within ±0.07 over the box, with the largest deviations at its boundary.Source: Appendix B.1 · p. 30
- When a predictor is used as a sampler’s objective, its Gaussian-process uncertainty is not propagated automatically, so final candidates should be checked with the original forward model.The authors describe this as an interface example, not an adaptive surrogate-assisted algorithm.Source: Appendix B.1 · p. 30
Appendix B.2. Binary and mixed-integer problems
The appendix benchmarks tensor-train optimization on binary QUBO and mixed-variable problems. Results are close to the stated references, while the authors caution that numerical feasibility is not an exact optimality certificate.
Appendix B.2. Binary and mixed-integer problems
- All quadratic-knapsack instances at N = 50 and 100 and most at N = 200 match the tabu-search reference; minimum-vertex-cover deviations are at most 0.03%, while max-cut deviations grow to 0.47%.The tabu-search reference solutions are heuristic, not certified optima; Table B.4 reports relative deviations and run times.Source: Appendix B.2 · p. 31, Table B.4 · p. 32
- The binary tests use QUBO instances encoding max-cut, minimum vertex cover, and quadratic knapsack on random graphs or with random values and weights.Ten instances per class and size were solved with ten seeds each, using 16 MPI processes.Source: Appendix B.2 · pp. 30–31, Table B.4 · p. 32
- Mixed-variable searches use staged quadratic penalties, doubling the penalty weight over 20 stages and passing each stage’s best points to the next.The test set includes alan, synthes2, and cvxnonsep_normcon20; equality constraints are eliminated by substitution.Source: Appendix B.2 · pp. 31–32
- Alan agrees with the MINLPLib optimum to displayed precision, synthes2 differs by 4 × 10−4 %, and cvxnonsep_normcon20 by 0.46%; final constraint violations are about 10−12 or zero, not an exact certificate.For cvxnonsep_normcon20, the search ends at an integer assignment different from the reference solution.Source: Appendix B.2 · p. 32, Table B.5 · p. 33