Search algorithms#
ODAT-SE searches the parameter space \(\mathbf{X}\ni x\) by using the search algorithm Algorithm and the result of Solver \(f(x)\).
The following search algorithms are available in ODAT-SE.
Click each item for detailed usage, including input parameters and output files.
- Optimization by local optimization algorithms minsearch
Performs optimization using the Nelder-Mead method (simplex method). A derivative-free direct search method that converges quickly for a small number of parameters. Requires scipy.
- Global optimization global_search
Performs global optimization using the routines of scipy.optimize. Differential evolution, shgo, and direct are available, with MPI-parallel evaluation of the candidate points (except direct). Requires scipy.
- mapper
Divides the parameter space into a grid and evaluates \(f(x)\) at all grid points. Supports MPI parallelization and is suitable for obtaining an overview of the parameter space.
- Random search random_search
Evaluates the objective function at randomly selected parameters. Samples parameters uniformly at random from a specified range, and is suitable for obtaining a global overview of the parameter space. Supports MPI parallelization.
- Bayesian optimization bayes
Searches using Bayesian optimization. Builds a surrogate model of \(f(x)\) using Gaussian process regression and selects the next evaluation point based on an acquisition function. Can efficiently find optimal solutions with a small number of evaluations. Requires physbo.
- Tensor Train Optimization ttopt
Searches using tensor train optimization. Models the objective function as a large tensor and finds minima by a gradient-free method based on cross approximation. Supports MPI parallelization.
- Replica exchange Monte Carlo exchange
Searches using the replica exchange Monte Carlo method (parallel tempering). By exchanging configurations between replicas at different temperatures, it avoids being trapped in local minima. Requires mpi4py.
- Population Annealing Monte Carlo pamc
Searches using the population annealing Monte Carlo method. Efficiently explores the parameter space by gradually cooling a large number of replicas (walkers) while resampling.