インポートされたデータの参照とモデルでの解の出力の定義
最終更新: 2024年8月12日
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モデルを参照してください。
トピックは役に立ちましたか?
0/1000