拡張#

ODAT-SE は、順問題ソルバー Solver と探索アルゴリズム Algorithm を組み合わせて逆問題を解くフレームワークです。 定義済みの SolverAlgorithm に加えて、ユーザーが独自のものを定義して利用できます。

        flowchart LR
    A["<b>Algorithm</b><br/>(探索)"] -->|"パラメータ x を提案"| R["<b>Runner</b><br/>(仲介)"]
    R -->|"座標変換・制約チェック"| S["<b>Solver</b><br/>(目的関数)"]
    S -->|"f(x) を計算"| R
    R -->|"f(x) を返す"| A
    

本章では、最も一般的なユースケースである 独自のソルバーを追加する方法 をチュートリアル形式で解説した後、 APIの詳細を説明します。

チュートリアル: 独自ソルバーの追加

独自の目的関数を ODAT-SE で最適化するチュートリアルです。コピペして動かせる完全な例を用いて、ファイル作成から実行・結果確認までの手順を説明します。プログラムに不慣れな方はまずこちらをお読みください。

Solver の定義

Solver クラスの API リファレンスです。SolverBase を継承して evaluate メソッドを実装する方法を詳しく解説します。

Algorithm の定義

Algorithm クラスの API リファレンスです。独自の探索アルゴリズムを定義する方法を解説します。

共通事項

Info, Runner, Mapping, Limitation などの共通クラスと、初期化関数 odatse.initialize, MPI アクセサ odatse.mpi の説明です。

実行方法

カスタム Solver / Algorithm を組み合わせて実行する際のコード例です。

API リファレンス

ソースコードの docstring から自動生成された全公開 API のリファレンスです。 本章で扱わないモジュール (odatse.util.*, odatse.domain.*, odatse.mpi など) の仕様はこちらを参照してください。