―実務で使える数理最適化モデリングへ、 型安全性と表現力を刷新―株式会社JIJ(本社:東京都港区、代表取締役 CEO:山城 悠、以下 JIJ)は、数理最適化モデリング用 Python ライブラリ 「JijModeling 2」 を正式リリースしたことをお知らせします。JijModeling 2 は、従来版で培った「数式に近い形でモデルを記述できる」という思想を継承しつつ、実務や研究の現場で求められる安全性、可読性、表現力を重視して設計を全面刷新した次世代バージョンです。専用の型システムによる早期エラー検出、Pythonネイティブな記法、実務の複雑なデータ構造への対応により、研究段階から実運用まで、チームでのモデル開発を強力に支援します。あわせて、JijModeling 2 に対応した新ドキュメントおよび移行ガイドを公開しました。開発の背景JijModeling は、数理最適化モデルを数式に近い形で記述できるPython ライブラリとして、数理モデルの開発/研究の現場で活用されてきました。一方で、実務プロジェクトを通じて以下のような課題が顕在化していました。モデルの安全性に関する課題型の不一致やインデックスエラーが実行時まで検出されず、大規模データでの検証時に初めて問題が発覚データ投入前のモデル検証が不十分で、開発サイクルが長期化記述性と保守性に関する課題Python本来の書き方から乖離した記法(Element 定義など)により、Python エンジニアにとって学習コストが高い実務データへの対応に関する課題非連続なID、カテゴリカル変数、疎なデータ構造など、実務で頻出するデータ形式の扱いに制約があるサプライチェーン、製造、金融などの複雑な組合せ最適化問題を自然に表現しづらいJijModeling 2 は、これらの課題に応えるため、構文・API・内部設計をゼロから再設計しました。「より安全に書けて、モデルの意図が伝わりやすく、実務の複雑さに対応できる」数理モデリング環境の実現を目指して開発されました。JijModeling 2 の主な特徴1. 数理モデルとパラメータの分離JijModeling では、数理モデルの記号的な定義と、入力されるパラメータ(インスタンスデータ)を分離しています。 インスタンスデータは数理モデルにおける決定変数以外の係数などに相当し、数理モデルはインスタンスデータを入力されて初めてソルバーへの入力(インスタンス)へと変換(コンパイル)されます。このように、JijModeling では個々の数理モデルは個別のインスタンスデータからインスタンスを生成するためのスキーマとして機能し、インスタンスデータのサイズに影響されずに数理モデルを変更することが可能になっています。2. ソルバーに依存しないモデリングJijModeling で定義された数理モデルは、最終的にOMMX Message形式で表現されたインスタンスへとコンパイルされます。OMMX Message はソルバーに依存しない数理最適化用のデータ交換形式であるため、JIJ が提供しているソルバー(JijZeptSolver、OpenJij など)やその他のソルバー(SCIP、Gurobi、FixstarsAmplify など)を自由に切り替えて問題を解くことができます。3. 型検査による記述の誤りの早期発見JijModeling は独自の型システムを搭載しており、添え字の成分数の食い違いなどの誤りを、数理モデルの記述時に発見できるようになっています。 特に、大規模なインスタンスデータを入力する前に間違いを即座に検出することができ、定式化の加速が図られます。4. 制約条件のパターンの検出機能数理最適化ソルバーには、特定の形をした制約条件に対してより高速な求解アルゴリズムを提供しているものがあります。 こうした高速化用の機能は、通常ユーザーが意識的に明示して呼び出す必要があります。 一方、JijModeling は自動でこうした制約条件の存在を検出し、OMMX Message を介してソルバーにその情報を渡すことで、ユーザーの介在なしに自動的に求解を高速化します。 以下の例では、検出機能を有効化しただけで圧倒的な速度改善が見られています。5. 数理モデルの数式表示JijModeling は非常に強力な数式出力機能を備えており、JijZept IDE や Google Colab、あるいは一般の Jupyter Notebook 上で数理モデルの定義を直感的に把握でき、数理モデルが期待通りに構築されているかどうかを迅速かつ対話的に確認できます。 以下は、ナップサック問題の定式化と、その数式出力の例です。ドキュメントについてJijModeling 2 対応ドキュメントを刷新JijModeling 2 の設計・記法に合わせて、公式ドキュメントを刷新しました。https://jij-inc-jijmodeling-tutorials-ja.readthedocs-hosted.com/jaJijModeling 1 ユーザー向け移行ガイドを公開既存ユーザー向けに、JijModeling 1 からJijModeling 2 への移行ポイントを整理したガイドを用意しています。https://jij-inc-jijmodeling-tutorials-ja.readthedocs-hosted.com/ja/latest/references/migration_guide_to_jijmodeling2.html開発者による技術背景の公開JijModeling 2 の設計思想や変更点の背景については、開発を主導したリードソフトウェアエンジニアの石井による技術記事で詳しく解説しています。https://zenn.dev/jij_inc/articles/2025-12-09-jijmodeling2-a-new-code提供・利用についてpip install jijmodeling などで新規にインストールした場合、JijModeling 2 系統が導入されますJijModeling 1 系統はメンテナンスモードに移行し、重大な問題を除き新規リリースは行われませんJijZept AI が生成するコードは、現時点では JijModeling 1 系統を利用しています(切り替え時期は別途案内予定)今後の展望JIJは、JijModeling 2 を研究・検証から実務展開まで一貫して支える基盤として位置づけ、ユーザーの皆様との対話を通じて、今後も数理最適化の開発体験を向上させてまいります。会社概要会社名:株式会社JIJ(ジェイアイジェイ)代表者:代表取締役 CEO 山城 悠所在地:〒108-0023 東京都港区芝浦三丁目3番6号 東京科学大学田町キャンパス・イノベーションセンター INDEST403号室創立:2018年11月事業内容:量子・古典ハイブリッド技術を活用した企業向け最適化ソリューションの販売・提供URL:https://www.j-ij.com/ja/本件に関するお問い合わせ先株式会社JIJ コミュニケーションチームE-mail:pr@j-ij.com