Tutorials#
In these tutorials, how to perform inverse problem analyses using ODAT-SE is explained by examples taken from minimization of analytical functions.
The following algorithms are covered in these tutorials.
global_search (global optimization with scipy.optimize) is also available;
see Search algorithms for the complete list of the algorithms.
minsearchNelder-Mead method.
mapperExhaustive search over a grid of the given parameters.
random_searchRandom search.
bayesBayesian optimization.
ttoptTensor train optimization.
exchangeSampling by the replica exchange Monte Carlo method.
pamcSampling by the population annealing Monte Carlo method.
In the following sections, the procedures to run these algorithms are provided.
In addition, the usage of [runner.limitation] to apply limitations to the search region will be described. At the end of the section, a description of how to implement a direct problem solver is provided, as well as tutorials describing some applications.
Preparation#
To run the tutorials, the sample files are required in addition to the installation of ODAT-SE (see Installation of ODAT-SE). The sample files are included in the source package. Clone the repository and move into the obtained directory as follows:
$ git clone https://github.com/issp-center-dev/ODAT-SE.git
$ cd ODAT-SE
The steps in each tutorial are assumed to start from this ODAT-SE directory.
Note
To run the tutorials that use MPI parallelization (mapper, exchange, pamc, and so on),
mpi4py (python3 -m pip install 'ODAT-SE[all]') is required in addition to a working
MPI implementation providing the mpiexec / mpirun command.
- Minimization of an analytical function
- Search by Nelder-Mead method
- Grid search
- Random search
- Search by Bayesian optimization
- Tensor train optimization (TTOpt)
- Search by replica exchange Monte Carlo
- Search by population annealing
- Replica Exchange Monte Carlo search with limitation
- Adding a direct problem solver
- Two-level MPI parallelization of the solver