数理最適化の実用化を支援する OMMX のデータ形式標準化の取り組み

656 Views

May 30, 25

スライド概要

人工知能学会2025 の数理最適化オーガナイズドセッションでOMMXについて発表した際のスライドです。

profile-image

株式会社Jijは、数理最適化・量子技術の専門家が集い、開発プラットフォームJijZeptをグローバルに提供するスタートアップです。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

数理最適化の実用化を支援する OMMX のデータ形式標準化の取り組み OMMX: An Open Standard for Mathematical Programming Interoperability 寺村俊紀, 清水太朗, 石井大海 株式会社 Jij 2025 年度人工知能学会全国大会 OS-17 数理最適化 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 1 / 17

2.

目次 1 実務における数理最適化とデータ形式の標準化 2 OMMX Design Concept 3 数理最適化ソフトウェアのモジュール化 4 今後の展望 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 2 / 17

3.

実務における数理最適化 pandas DuckDB 実務では多くのソフトウェアが連携する 業務データ分析 JijModeling 数理モデル作成 PaPILO 前処理・エンコード Jupyter 汎用なデータ分析ソフトウェア (pandas や matplotlib など) 数理最適化専用のソフトウェア (SCIP, Gurobi, JijModeling など) 開発・実験・運用プラットフォーム (Jupyter, Kubeflow など) SCIP Gurobi 最適化 JijSolver matplotlib MINTO Kubeflow 可視化・検証 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 3 / 17

4.

データ形式の標準化と進化 ソフトウェア間の効率的なデータ交換には共通データ形式が必要 しかしデータ形式は最適化手法の変化に応じて変化する コードの寿命 v.s. データの寿命 一度定式化した数理モデルは長期間使用したい 複数のアルゴリズムで同じモデルがどのくらい解けるかを比較したい 日々新しいアルゴリズムを開発・実装し、既存の数理モデルに対して 実験し、デプロイする必要がある 新しいアルゴリズムを実装するために新しいデータを追加し、それを 交換する必要がある 互換性の寿命 ソフトウェアの問題は広く使われて初めて判明する 互換性が維持できるに越したことはないが、非互換性が避けられない 場合もあり、そのための準備が重要 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) 『データ指向アプリケーションデ ザイン ―信頼性、拡張性、保守性 の高い分散システム設計の原理』 (Martin Kleppmann 著、斉藤 太 郎 監訳、玉川 竜司 訳)表紙 JSAI2025 (4P1-OS-17a-04) 2025/5/30 4 / 17

5.

目次 1 実務における数理最適化とデータ形式の標準化 2 OMMX Design Concept 3 数理最適化ソフトウェアのモジュール化 4 今後の展望 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 5 / 17

6.

OMMX: Open Mathematical prograMming eXchange OMMX Message OMMX Artifact ソフトウェア同士の交換用データ形式 人間同士の交換用パッケージ形式 OMMX SDK OMMX Adapter 多言語のソフトウェア開発環境 数理最適化ソフトウェアとの連携 OMMX は数理最適化のデータ形式を標準化する OSS プロジェクト ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 6 / 17

7.

OMMX Message: ソフトウェア同士の交換用データ形式 Protocol Buffers を採用 プログラミング言語・OS に依存しないバイナリの シリアライズ形式 スキーマでデータ構造を定義 各言語向けのコードを自動生成 後方及び前方互換性を維持する仕組み OMMX Message を各ソルバー向けの入出力に変換 ommx-pyscipopt-adapter ommx-highs-adapter ommx-python-mip-adapter ommx-openjij-adapter ommx-da4-adapter ommx-dwave-adapter ommx-fixstars-amplify-adapter ommx-gurobi-adapter ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 7 / 17

8.
[beta]
Protocol Buffers: スキーマの進化
数理最適化は問題に応じて最適なアルゴリズムが変化する

様々なアルゴリズムを作る必要があり、新たなデータ構造が必要になる
共通のデータ形式はそれに対応する必要がある

Protocol Buffers におけるスキーマの進化

【後方互換性】古いバージョンのデータを新しいバージョンで読み込むことができる
【前方互換性】新しいバージョンのデータを古いバージョンで読み込むことができる
コード生成を行うため、言語毎の静的検査と連携可能

message Instance {
repeated DecisionVariable decision_variables = 2;
Function objective = 3;
repeated Constraint constraints = 4;
Sense sense = 5;
ConstraintHints constraint_hints = 7;
map<uint64, Function> decision_variable_dependency = 9;
} // ommx.v1.Instance より抜粋
©2025 Jij Inc.

OMMX のデータ形式標準化の取り組み (寺村)

JSAI2025 (4P1-OS-17a-04) 2025/5/30

8 / 17

9.

OMMX Artifact: 人間同士の交換用パッケージ形式 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 9 / 17

10.

OCI Artifact: コンテナを使ったデータの管理と交換 OCI Artifact は『コンテナ』として任意のデータをやり取りするための標準仕様 コンテナの実態は特殊なディレクトリ構成をした Tar アーカイブ コンテナのように Push/Pull でき、認証もそのまま使える 不特定多数に公開することも、プライベートに使うこともできる 特に GitHub Container Registry を使うと GitHub で完結する OMMX Artifact は OCI (Open Container Initiative) Artifact をベースにしている OCI Artifact は保存したデータの種類を Media Type で指定する OMMX では application/org.ommx.v1.artifact や application/org.ommx.v1.instance などを定義 OCI Artifact には任意の Annotation を付与できるので、数理モデルの作成者や実行環境な どの情報を付与でき、OMMX Artifact ではこのメタデータの保存方法を規定している 実験管理ツールである MINTO のバックエンドとして利用 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 10 / 17

11.

OMMX Python/Rust SDK OMMX Message / Artifact の読み書き・変換 Protocol Buffers のスキーマでは表現しきれない不変条件を管理 Artifact の Push/Pull のためのコンテナレジストリクライアント 簡易モデラー データの解釈・可視化支援 決定変数の名前や添字に基づいた API Instance のもつ決定変数や制約条件、Solution の Pandas DataFrame への変換 Instance に対する変換 QUBO 化(不等式制約の等式制約化、バイナリ変数へのエンコーディング) 制約条件の緩和・復元 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 11 / 17

12.

目次 1 実務における数理最適化とデータ形式の標準化 2 OMMX Design Concept 3 数理最適化ソフトウェアのモジュール化 4 今後の展望 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 12 / 17

13.

OMMX Ecosystem: 数理最適化ソフトウェアのモジュール化 OMMX は数理最適化ソフトウェアのモジュール化を支援する ソルバーは OMMX の Instance を入力とし Solution を出力する 列生成法のようにソルバーの中で別のソルバーを呼び出す際に、どのソルバーも同じ API で呼び出せるのでソルバーの入れ替えが容易になる 例えば TSP 特化ソルバーを組み込む時も API を揃えれば簡単に組み替えられる Presolve を Instance を入力とし Instance を出力するモジュールとして実装できる 自分が興味がある部分だけを作ることができる OMMX Message はプログラミング言語に依存しないので、個々のコンポーネントを自 分の好きな言語で実装できる OSS のコンポーネントと商用コンポーネントを組み合わせて使うことができる ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 13 / 17

14.

JijPresolve: OMMX を入出力とした Presolve ライブラリ Presolve では決定変数や制約条件を追加・削除することになる 例えば変数の Bound が x ∈ [2, 2] であれば x = 2 に置換して決定変数を取り除ける 制約条件として ax = b があればこの条件は取り除いて x = b/a を代入する ソルバーには前処理された状態の数理モデルを渡したい しかしユーザーは元の数理モデルに戻してもらわないと意味がわからないので、取り除か れた情報を保持する必要がある Presolve は数理モデル自体を変換するので Instance を入出力とする OMMX 本体でこれらの情報を保持できるようになっている JijPresolve は JijZept IDE 上で近日中に公開予定 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 14 / 17

15.

今後の展望 OMMX SDK Rust/Python SDK 2.0.0 データのランダム生成機構・プロパティベーステスト機能 API の整理・性能向上 C++, Julia, TypeScript SDK OMMX Message SOS や one-hot などの特殊な制約条件の追加 数理最適化向け「コンパイラ基盤」 LLVM Pass のように Presolve などの Instance に対する操作をモジュール化する OMMX Artifact OpenTelemetry を使った求解メトリクスの収集・可視化 ブラウザで動作する Dashboard OMMX Adapters SOS などの特殊な制約条件の API を対応 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 15 / 17

16.

謝辞 本研究 (の一部) は, 内閣府総合科学技術・イノベーション会議の戦略的イノベーション創造 プログラム (SIP)「先進的量子技術基盤の社会課題への応用促進」(管理法人: 量研 (又は QST)) によって実施されました。 ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 16 / 17

17.

Summary OMMX は数理最適化におけるデータ交換のための OSS プロ ジェクト OMMX Message Protocol Buffers による多言語対応・互換性の管理に優れた データ形式 OMMX Artifact コンテナを使った人間同士の交換用パッケージ形式 OMMX Adapters 既存の数理最適化ソフトウェアとの連携を容易にする ©2025 Jij Inc. OMMX のデータ形式標準化の取り組み (寺村) JSAI2025 (4P1-OS-17a-04) 2025/5/30 17 / 17