0 / 0

Decision Optimization ノートブック

最終更新: 2025年6月26日
Decision Optimization ノートブック

DOcplex( Decision Optimization用のネイティブ Python API) を使用して、 Python ノートブックDecision Optimization モデルを作成および実行できます。 いくつかの Decision Optimization ノートブック は、既に使用可能になっています。

Decision OptimizationPython 3.11で使用できます。 以下のランタイムでは、CPLEX エンジンの Community Edition にアクセスできます。 Community Edition は、最大 1000 個の制約と 1000 個の変数を持つ問題の求解、または制約プログラミングの問題の場合は 1000 X 1000 個の検索スペースを持つ問題の求解に制限されています。
  • Runtime 24.1 on Python 3.11 S/XS/XXS
より大きな問題を実行するには、完全な CPLEX 商用エディションを含むランタイムを選択します。 Decision Optimization 環境 (DOcplex) は、以下のランタイム (完全な CPLEX 商用エディション) で使用できます。
  • NLP + DO runtime 24.1 on Python 3.11CPLEX 22.1.1.0

「環境」タブ を使用して、 ノートブック 内の環境 (ランタイムおよび Python バージョン) を簡単に変更できます ( ノートブックの環境の変更を参照)。 したがって、最適化モデルを作成し、それらを 1 つの環境内の小さなデータ・セットでテストすることができます。 その後、より大きなデータ・セットを持つモデルを求解するために、 ノートブック ・コードを再作成したりコピーしたりすることなく、別の環境に切り替えることができます。

Decision Optimization ノートブック の複数の例は、以下のような リソース・ハブで入手できます。
  • Sudoku の例では、 9x9 の数独グリッドを解決することを目的とする制約プログラミングの例を挙げます。
  • パスタ生産問題の例。一部のパスタ製品の生産コストを最小化し、顧客の製品需要が満たされるようにすることを目的とした線形計画法の例です。
これらの例やその他の例は jupyter フォルダにあります

すべての Decision Optimization ノートブック は、 DOcplexを使用します。

DOcplex

Decision Optimization ノート Python は を使用し、 問題をモデル化し、解決するためのネイティブな API である。 DOcplex(ドコンプレックス Decision Optimization デフォルトでは、API は Python 環境の一部として使用可能です。

これは、以下の 2 つのモジュールから構成されています。
  • 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 ドキュメントを参照。 前述の例は、 jupyter DO サンプルのフォルダー。

Decision Optimization ノートブック の実行

制約プログラミングと線形計画法のどちらに関心があるかに応じて、前述の 2 つの ノートブック のいずれかを選択し、以下のように実行します。

watsonx.aiに既にプロジェクトがある場合は、以下のようにします。
  1. 「リソース・ハブ」から、操作する ノートブック を開きます。
  2. 既にプロジェクトを作成している場合は、 「プロジェクトに追加」をクリックします。
  3. ドロップダウン リストで既存のプロジェクトを選択し、ランタイムを選択します。例えば、Python 上のランタイム 24.1 3.11 XS (または、CPLEX エンジンの商用版を必要とする大規模なモデルの場合は、DO + NLP ランタイム 24.1 on Python 3.11 XS)を選択し、作成をクリックします。 ノートブック がプロジェクトに追加されます。

プロジェクトをまだお持ちでない場合は、ダウンロードボタン( 「ダウンロード」ボタン )をクリックして、サンプルをコンピューターにダウンロードしてください。

  1. 新規プロジェクトを作成します (メニューから「プロジェクト」>「すべてのプロジェクトの表示」を選択して、「新しいプロジェクト」ボタンをクリックします)。
  2. 「空のプロジェクトを作成」 を選択し、開いたウィンドウで名前を入力して、 「作成」をクリックします。
  3. 「資産」 タブを選択します。
  4. モデルの処理 セクションで 新規資産> Python または R ノートブックでのデータおよびモデルの処理 を選択します。
  5. 「ローカル・ファイル」を選択します。 次に、 ファイルをドラッグ・アンド・ドロップするか、 をクリックして、コンピューター上の ノートブック を参照します。
  6. ノートブックの作成をクリックします。 ノートブック がプロジェクトに追加されます。
ノートブック が自動的に開きます。

ノートブックを実行するには、 「セル」>「すべて実行」をクリックします。

サンプルの Python ノートブック は、 Decision Optimization GitHubで提供されています。 これらのノートブックを使用するには、 Jupyter ノートブックのサンプルを参照してください。 これらの例では、 エクスペリメント UIは使用されません。

また、複数のシナリオを生成し、ランダム化されたデータを使用する方法を示した Python ノートブックが jupyter フォルダにあります。 この方法は、さまざまなデータ・セットを使用して エクスペリメント UI で作成されたモデルをテストするのに役立ちます。 詳細については、 複数のシナリオを生成するを参照してください。

Decision Optimization のチュートリアル

DOcplex のサンプルは、DOcplex Python API の Decision Optimization GitHub: にもあります

線形計画法
このノートブックの詳しい説明は、 線形計画法(CPLEX Part 1)のチュートリアルをご覧ください。 この Decision Optimization 線形計画ノートブックは Githubからクローンまたはダウンロードできる。
線形計画法を超える
このノートブックの詳しい説明は、 線形計画法(CPLEX Part 2)のチュートリアルをご覧ください。 この Decision Optimization Beyond Linear Programming ノートブックは Githubからクローンまたはダウンロードできる。
CPLEX for Python でのスケジューリングの概要
このノートブックの詳しい説明は、 CPLEX for Python チュートリアルのスケジューリングで読むことができる。 この Getting started with Scheduling in CPLEX for Python ノートブックは Githubからクローンまたはダウンロードできます。