Python SDKとAdapterのインストール#
ここから案内する例では、OMMX Python SDK v3のプレビュー版を使います。まずSDKを導入し、ソルバーを使う場合だけ必要なAdapterを追加してください。
バージョンを指定せずにインストールすると、安定版のv2が選ばれるため、Tutorialのv3 APIを使えません。ここでは、公開済みの3.0.0b7で実行を確認した手順を示します。
1. 仮想環境を作る#
Python 3.12を用意し、作業用のディレクトリで次を実行します。動作確認環境はmacOS(Apple Silicon)・Python 3.12.12です。
注釈
3.0.0b7にはIntel Mac向けのwheelがありません。配布対象はPyPIのファイル一覧で確認できます。
python -m venv .venv
macOS・Linuxでは、次のコマンドで仮想環境を有効にします。
source .venv/bin/activate
WindowsのPowerShellでは、代わりに次を実行します。
.\.venv\Scripts\Activate.ps1
以降のインストールとサンプルコードの実行には、この仮想環境を使ってください。
Notebookを使う場合は、この仮想環境に実行カーネルも追加します。
python -m pip install ipykernel
お使いのJupyter対応エディターで、この仮想環境のPythonを実行カーネルに指定してください。既存のJupyter環境へカーネルを登録する場合は、有効化した仮想環境で次を実行し、Notebook側で「OMMX Book」を選びます。
python -m ipykernel install --user --name ommx-book --display-name "OMMX Book"
2. Python SDKをインストールする#
python -m pip install "ommx==3.0.0b7"
Instanceを変換して結果を確認する場合は、ここまでで準備が完了です。InstanceClassの説明のmembership例もSDKだけで実行できます。
既存の問題と候補解を評価する場合も、ここまでで準備が完了です。既存の問題の入手と候補評価にAdapterは使いません。それぞれのページに記載した公開データの初回取得には、ネットワーク接続が必要です。
3. ソルバーを使う場合だけAdapterを追加する#
PySCIPOpt Adapter#
python -m pip install "ommx-pyscipopt-adapter==3.0.0b7"
このAdapterで、最初の二つのTutorialと独自Policyの操作ガイドを実行できます。
PySCIPOpt Adapterで0-1ナップサック問題を解く:変換せずに求解し、結果を読む。
PySCIPOpt Adapterで特殊制約をそのまま解く:IndicatorとSOS1を使う。
HiGHS Adapter#
python -m pip install "ommx-highs-adapter==3.0.0b7"
このAdapterで、3つ目のTutorialAdapter向けにInstanceを準備するを実行できます。ページ内でモデルを作り直すため、前のTutorialの実行状態やPySCIPOpt Adapterは必要ありません。
複数のAdapterで結果を比較するでは、両方のAdapterと、グラフ描画用のmatplotlibを用意してください。
python -m pip install matplotlib
OpenJij Adapter#
手順1・2で用意したSDKの3.0.0b7の環境に、同じバージョンのAdapterを追加します。
python -m pip install "ommx-openjij-adapter==3.0.0b7"
OpenJij Adapterで小さな問題をサンプリングするための環境です。OpenJij本体も依存関係として導入されるため、別途の導入やソルバーのライセンス設定は必要ありません。PySCIPOptやHiGHSなど、ほかのAdapterは使いません。
任意の応用例であるTSPのNotebookでは、図を描くためにmatplotlibも追加します。
python -m pip install matplotlib
注釈
このBookはv3の開発版に対応しており、API Referenceなどには未公開の機能が含まれる場合があります。上記のバージョンで実行を確認した範囲は、ここから案内するInstance変換How-toとmembership例、既存問題の入手How-toと候補評価Tutorial、3つのAdapter Tutorialと2つのAdapter How-to、およびOpenJijの小さなサンプリングHow-toとTSPのNotebookです。ほかの機能や外部ツールの導入条件は、それぞれのページを確認してください。