チュートリアル#
このチュートリアルでは、解析関数の最小化問題を例として、ODAT-SEによる逆問題解析の方法を説明します。
本チュートリアルでは、以下のアルゴリズムを取り上げます。
このほかに global_search (scipy.optimize による大域最適化) も利用できます。
利用可能なアルゴリズムの一覧は 探索アルゴリズム を参照してください。
minsearchNelder-Mead法
mapper与えられたパラメータの探索グリッドを全探索する
random_search与えられた範囲からランダムにパラメータを選び、関数値を評価する
bayesベイズ最適化
ttoptテンソル列最適化
exchangeレプリカ交換モンテカルロ法
pamcポピュレーションアニーリング法
以下ではこれらのアルゴリズムを用いた実行方法を説明します。
また、制約式を用いて探索範囲を制限できる [runner.limitation] セクションを使用した実行方法も説明しています。
最後に、自分で順問題ソルバーを定義する簡単な例と、ソルバーを二層 MPI 並列化する例について説明します。
実行前の準備#
チュートリアルの実行には、ODAT-SE のインストール (インストール 参照) に加えてサンプルファイルが必要です。 サンプルファイルはソースパッケージに同梱されています。 以下のようにリポジトリを取得し、取得したディレクトリに移動してください。
$ git clone https://github.com/issp-center-dev/ODAT-SE.git
$ cd ODAT-SE
各チュートリアルの手順は、この ODAT-SE ディレクトリの直下から始めることを想定しています。
注釈
mapper, exchange, pamc などの MPI 並列を用いるチュートリアルを実行するには、
mpi4py (python3 -m pip install 'ODAT-SE[all]') に加えて、
MPI 実装本体と mpiexec / mpirun コマンドが利用できる必要があります。