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の操作ガイドを実行できます。

  1. PySCIPOpt Adapterで0-1ナップサック問題を解く:変換せずに求解し、結果を読む。

  2. 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です。ほかの機能や外部ツールの導入条件は、それぞれのページを確認してください。