DOcplex( Decision Optimization用のネイティブ Python API) を使用して、 Python ノートブック で Decision Optimization モデルを作成および実行できます。 いくつかの Decision Optimization ノートブック は、既に使用可能になっています。
Python 3.11 and 3.10
(deprecated)
で使用できます。 以下のランタイムでは、CPLEX エンジンの Community Edition にアクセスできます。 Community Edition は、最大 1000 個の制約と 1000 個の変数を持つ問題の求解、または制約プログラミングの問題の場合は 1000 X 1000 個の検索スペースを持つ問題の求解に制限されています。Runtime 24.1 on Python 3.11 S/XS/XXS
Runtime 23.1 on Python 3.10 (deprecated) S/XS/XXS
NLP + DO runtime 24.1 on Python 3.11
でCPLEX 22.1.1.0
DO + NLP runtime 23.1 on Python 3.10 (deprecated)
でCPLEX 20.1.0.1
「環境」タブ を使用して、 ノートブック 内の環境 (ランタイムおよび Python バージョン) を簡単に変更できます ( ノートブックの環境の変更を参照)。 したがって、最適化モデルを作成し、それらを 1 つの環境内の小さなデータ・セットでテストすることができます。 その後、より大きなデータ・セットを持つモデルを求解するために、 ノートブック ・コードを再作成したりコピーしたりすることなく、別の環境に切り替えることができます。
- Sudoku の例では、 9x9 の数独グリッドを解決することを目的とする制約プログラミングの例を挙げます。
- パスタ生産問題の例。一部のパスタ製品の生産コストを最小化し、顧客の製品需要が満たされるようにすることを目的とした線形計画法の例です。
すべての Decision Optimization ノートブック は、 DOcplexを使用します。
DOcplex
Decision Optimization ノートブック は、 Decision Optimization の問題をモデル化して解決するためのネイティブ Python API である DOcplexを使用します。 デフォルトでは、API は Python 環境の一部として使用可能です。
docplex.mp
を使用する Python の数理計画法モデリングdocplex.cp
を使用する Python の制約プログラミング・モデリング
from docplex.mp.model import Model
この API は、Apache ライセンス V2.0 の下でライセンス交付され、 numpy/pandas
に適しています。
rawgit に関する DOcplex API ドキュメント のフル版を確認できます。 DOcplex の例は、 Decision Optimization GitHubにあります。
Decision Optimization クライアント API
DOcplexに加えて、シナリオを作成し、 Decision Optimization エクスペリメント UIで作成されたモデルを処理するための Decision Optimization クライアント API を使用できます。 例えば、複数のDecision Optimizationシナリオを生成するを参照してください。
Decision Optimization クライアント API 資料を参照してください。 上記の例は、 DO-samplesの jupyter フォルダーにもあります。
Decision Optimization ノートブック の実行
制約プログラミングと線形計画法のどちらに関心があるかに応じて、前述の 2 つの ノートブック のいずれかを選択し、以下のように実行します。
- 「リソース・ハブ」から、操作する ノートブック を開きます。
- 既にプロジェクトを作成している場合は、 「プロジェクトに追加」をクリックします。
- ドロップダウン リストで既存のプロジェクトを選択し、ランタイムを選択します。例えば、Python 上のランタイム 24.1 3.11 XS (または、CPLEX エンジンの商用版を必要とする大規模なモデルの場合は、DO + NLP ランタイム 24.1 on Python 3.11 XS)を選択し、作成をクリックします。 ノートブック がプロジェクトに追加されます。
まだプロジェクトがない場合は、「ダウンロード」ボタン をクリックして、サンプルをコンピューターにダウンロードします。
- 新規プロジェクトを作成します (メニューから「プロジェクト」>「すべてのプロジェクトの表示」を選択して、「新しいプロジェクト」ボタンをクリックします)。
- 「空のプロジェクトを作成」 を選択し、開いたウィンドウで名前を入力して、 「作成」をクリックします。
- 「資産」 タブを選択します。
- モデルの処理 セクションで 新規資産> Python または R ノートブックでのデータおよびモデルの処理 を選択します。
- 「ローカル・ファイル」を選択します。 次に、 ファイルをドラッグ・アンド・ドロップするか、 をクリックして、コンピューター上の ノートブック を参照します。
- ノートブックの作成をクリックします。 ノートブック がプロジェクトに追加されます。
ノートブックを実行するには、 「セル」>「すべて実行」をクリックします。
サンプルの Python ノートブック は、 Decision Optimization GitHubで提供されています。 これらのノートブックを使用するには、 Jupyter ノートブックのサンプルを参照してください。 これらの例では、 エクスペリメント UIは使用されません。
また、複数のシナリオを生成する方法と、ランダム化されたデータを使用する方法を示す Python ノートブック も、 DO-samplesの jupyter フォルダーに用意されています。 この方法は、さまざまなデータ・セットを使用して エクスペリメント UI で作成されたモデルをテストするのに役立ちます。 詳しくは、 複数のシナリオの生成を参照してください。
Decision Optimization のチュートリアル
DOcplex のサンプルは、DOcplex Python API の Decision Optimization GitHub: にもあります
- 線形計画法
- この ノートブック について詳しくは、この 線形計画法 (CPLEX Part 1) チュートリアルを参照してください。 この Decision Optimization 線形計画法 ノートブック は、Githubから複製またはダウンロードできます。
- 線形計画法を超える
- この ノートブック について詳しくは、この 線形計画法 (CPLEX パート 2) チュートリアルを参照してください。 この Decision Optimization Beyond Linear Programming ノートブック は、Githubから複製またはダウンロードできます。
- CPLEX for Python でのスケジューリングの概要
- この ノートブック の詳細な説明については、 CPLEX for Python のチュートリアルを参照してください。 この Getting started with Scheduling in CPLEX for Python ノートブック を Githubから複製またはダウンロードできます。