株式会社Jij(以下Jij・本社:東京都文京区、代表取締役CEO:山城 悠)は、2024年7月17日に、数理最適化の相互運用性を向上させる新しいオープンソースソフトウェア「OMMX(Open Mathematical prograMming eXchange・読み方:オミキス)」をリリースしました。このツールは、数理計画法と最適化の開発者・研究者を支援するオープンエコシステムとして設計され、複雑な最適化のワークフローを簡素化し、異なるツール間のデータ交換を容易にすることで、全ての数理最適化プレイヤーの生産性を向上させます。数理最適化実験の現状と課題、OMMXが解決する問題ー背景と課題数理最適化の分野は、近年ますます複雑化する現実世界の問題に直面しています。多くの実践的な最適化問題は、離散変数と連続変数が混在し、変数の数も膨大になっているため、単一のソルバーでは効果的な解決が困難になっています。 量子・イジング最適化計算などの先進的な技術は大きな可能性を秘めていますが、現状では適用範囲が限定的であり、実社会への本格的な実装には課題が残されています。さらに、数理最適化の分野では多様なツールやプラットフォームが存在し、それぞれが独自のデータ形式を採用しているため、異なるツール間でのデータ交換や統合が困難です。この相互運用性の欠如は、研究開発の効率を著しく低下させる要因となっています。 また、最適化モデルとその解の関係性を、ファイルやデータベースに保存した後も維持することが難しく、大量のデータを効率的に管理し、必要時に適切に参照する仕組みが不足しています。特に、OROps(Operations Research Operations)の実践において、多くの開発者が様々なツールを使用・作成する中で、ツール間の互換性と効率的なデータ交換を実現する標準的なフォーマットの必要性が高まっています。ーOMMXが解決する問題OMMXは、これらの課題に対して包括的なソリューションを提供します。標準的なデータ交換フォーマット言語やフレームワークに依存しない標準的なデータ交換フォーマットを確立し、異なるツールやプラットフォーム間でのシームレスなデータ交換を実現します。メタデータと参照システムメタデータと参照システムを導入することで、データ間の関係性を維持しつつ効率的な管理を可能にします。これにより、再現性の高い実験や異なるチーム間での効果的な協働が促進されます。ハイブリッドアルゴリズムの支援量子・古典ハイブリッドアルゴリズムの開発と実装を加速させ、複雑な最適化問題に対する革新的なソリューションの創出を支援します。開発プロセスの効率化異なるツール間のシームレスな統合を実現することで、開発プロセス全体の効率を大幅に向上させます。拡張性と柔軟性ユーザー定義のアノテーションやカスタマイズを可能にする拡張性と柔軟性を提供し、多様なニーズに対応します。これらの特長により、OMMXは数理最適化分野における標準的なエコシステムとなり、研究開発から実用化まで幅広い場面で活用されることが期待されます。OMMXの主要な機能OMMXは、2つのデータを定義することで数理最適化のワークフローを新たなレベルへと引き上げます。1.OMMX Message:Protocol Buffersベースのデータスキーマにより、言語やフレームワークに依存しない最適化モデルとソリューションの保存を可能にします。a) OROps(Operations Research Operations)での使用学術分野で長年研究されてきた数理計画法を実際のビジネスプロセスに適用する際、ツール間の相互運用性の欠如が大きな課題となっています。OMMX Messageは、この問題を解決するために設計されました。b) スキーマの必要性OROpsでは多くの開発者が多数のツールを使用・作成するため、ツール間の相互運用性が重要な問題となります。OMMX Messageは機械可読なスキーマを導入することで、この課題に対応します。c) Protocol Buffersの採用Protocol Buffersは、構造化されたデータのシリアル化に優れた性能を持ち、言語やプラットフォームに依存しない柔軟性を提供します。d) 互換性の保証OMMX Messageは、バージョン管理された Protocol Buffers スキーマ(例:v1, v2)を定義し、各バージョン内での互換性を保証します。これにより、長期的な安定性と柔軟な進化を両立させています。2.OMMX Artifact:OCI(Open Container Initiative)アーティファクトベースのパッケージング・配布仕様により、メタデータ付きデータの保存とコンテナイメージとしての交換を実現します。a) メタデータと参照の問題解決OMMX Artifactは、データ間の参照関係を維持する重要な課題に取り組みます。例えば、ソルバープロセス内ではSolutionがどのInstanceに対応するかが明確ですが、ファイルやDBに保存された後はその関係が不明確になる問題を解決します。b) 効率的なデータ管理SolutionとInstanceを常に一緒に保存するのではなく、参照メカニズムを導入することで、データ量の増加を抑えつつ、関連性を維持します。これは特に、単一のInstanceに対して多くのSolutionが生成されるケースで効率的です。c) 柔軟な参照システムマシン間でデータを共有する場合、URIを使用した参照システムを採用し、インターネット上でのデータの保持と取得を容易にします。d) OCI Artifactとしての実装OMMX Artifactは、application/org.ommx.v1.artifactのメディアタイプを持つOCI Artifactとして表現され、config、layers、およびアノテーションのコレクションとして構成されています。e) 豊富なメタデータサポートSolutionに関する詳細情報(対応するinstance、ソルバー情報、パラメータ、開始・終了時間など) Instanceに関する情報(タイトル、作成日時) NumPyのndarrayやDataFrameのParquet形式など、多様なデータ形式のサポートf) 拡張性と柔軟性ユーザーは任意のレイヤーに独自のアノテーションを追加でき、org.ommx.user.プレフィックスを使用してカスタマイズが可能です。使用イメージOMMXは、数理最適化の研究プロセスにおいてモデリング、データ管理、ソルバー連携、そして相互運用性において重要な役割を果たし、研究開発の生産性を向上させます。Design: 多様な最適化問題に対応できるハイブリッドアルゴリズムを設計Development:設計されたアルゴリズムを効率的に実装できる環境を提供Testing: 開発されたアルゴリズムを様々な最適化問題に対してベンチマークし、性能を評価Deployment: 検証済みのアルゴリズムを実社会の問題に適用し、実証実験を実施Operations: 実際の産業現場でアルゴリズムを運用し、パフォーマンスを監視Optimization: 運用データに基づいてアルゴリズムの性能を継続的に改善Feedback: 実運用から得られた知見を次のアルゴリズム設計にフィードバック使用方法notebooksをローカルで実行するには、必要なパッケージをインストールする必要があります。# Optional: create a virtual environmentpython -m venv .venv && source .venv/bin/activate# Install required packages (including Jupyter)pip install -r requirements.txt# Start Jupyterjupyter labチュートリアルOMMXの導入と活用を容易にするために、詳細なチュートリアルを提供しています。Jupyter Notebook形式で、OMMX Message、OMMX Artifact、Cookbookのチュートリアルが用意されており、Binder、Google Colabで利用可能です。コミュニティとサポートOMMXの開発と普及には、活発なコミュニティのサポートが不可欠です。GitHubリポジトリでの議論やコントリビューションを歓迎します。開発者コメント本日、OMMXをリリースできたことを嬉しく思います。このツールが、数理最適化の分野で標準的なデータ交換フォーマットとして広く採用され、研究者や開発者の皆様の作業を大幅に効率化することを期待しています。OMMXは、Apache License 2.0およびMITライセンスのデュアルライセンスで提供されており、商用利用を含む様々な目的での使用が可能です。また、オープンソースプロジェクトとして、誰でもソースコードの改善や機能追加に参加できます。今後も継続的な改善と機能拡張を行っていく予定ですので、皆様のフィードバックやコントリビューションをお待ちしております。OMMXの今後の発展にご期待ください!Go to the repository: https://github.com/Jij-Inc/ommx本プロジェクトは、内閣府 戦略的イノベーション創造プログラム(SIP)「先端的量子技術の社会実装の推進」の支援を受けて実施されました。量子ハイブリッド最適化アルゴリズム基盤の開発: https://www.qst.go.jp/site/bridge/r5-04-bridge-r6.html