資料の 英語版 に戻るインポートされたデータの参照とモデルでの解の出力の定義
Decision Optimization エクスペリメントでのモデル内のインポートされたデータの参照
最終更新: 2024年8月06日
Python DOcplex モデルまたは OPL モデルの場合、以下の構文を使用して、インポートされたデータを参照できます。
Python モデル
Python DOcplex モデルの場合、 エクスペリメント UI の 「データの準備」 ビュー でインポートしたデータには、入力辞書からアクセスできます。 インポートしたデータにアクセスするには、構文
inputs['tablename']
を使用して各表を定義する必要があります。 例えば、次のコード行では、food は diet_food
という表から定義されたエンティティーです。food = inputs['diet_food']
同様に、 エクスペリメント UI の 「ソリューションの探索」 ビュー に表を表示するには、構文
outputs['tablename']
を使用してそれらを指定する必要があります。 例:outputs['solution'] = solution_df
solution
という出力テーブルを定義します。 Python モデルのエンティティー solution_df
がこのテーブルを定義します。この国会の例は、 DO-samplesの Model_Builder フォルダーにあります。 実験UIでインポートして実行(解く)するには、Decision Optimizationモデルの解と分析:ダイエット問題を参照してください。
OPL モデル
OPLモデルでは、
tupleset
インポートした各テーブルについて、データを準備するビューそして同じ名前です。 各タプルセットのスキーマには、テーブルと同じ数の列があり、同じフィールド名を使用する必要があります。 例えば、 「Prepare data」 ビュー に、属性 name, demand, insideCost,
および outsideCost
を持つ Product
という入力表がある場合、OPL モデルには以下の定義が含まれている必要があります。tuple TProduct {
key string name;
float demand;
float insideCost;
float outsideCost;
};
{TProduct} Product = ...;
OPL入力としてタプルとタプルセットのみを使用するという制限は、データソースとの統合を容易にするためです。 例えば、SQLデータ・ソースにアクセスして、最小限の労力でデータ・ストリームすることができます。NoSQLデータ・ソースにアクセスして、データを自動的にテーブルに変換することができます。 必要であれば、最適化モデル開発者は、最適化中に他のデータ構造にデータを取り込むためにデータを再設計できますが、この操作が入力データまたは出力データに影響しないようにしてください。
同様に、ソリューションを探すビューを定義する必要があります
tupleset
OPL モデルのこの出力テーブル用です。 例えば、以下のコードは、解に 3 つの列を持つ出力表を生成します。/// solution
tuple TPlannedProduction {
key string productId;
float insideProduction;
float outsideProduction;
}
{TPlannedProduction} plan = {<p.name, Inside[p], Outside[p]> | p in Products};
DO-samplesのModel_Builderフォルダに、パスタ製造問題のOPLモデル例があります。 すべてのサンプルをダウンロードして解凍できます。 該当する製品およびバージョンのサブフォルダーを選択します。
詳細情報
- Python DOcplexモデルを作成するチュートリアルについては、Decision Optimizationモデルの解決と分析:ダイエット問題を参照してください。
- OPLモデルの詳細については、Decision OptimizationOPLモデルを参照してください。